Я использую PDF транскодер FOP2.3 для преобразования SVG в PDF документ.Я пытаюсь преобразовать шрифт / текст в фигуры при конвертации PDF.Я использую свойство ниже,
Transcoder transcoder = new PDFTranscoder();
transcoder.addTranscodingHint(PDFTranscoder.KEY_PIXEL_UNIT_TO_MILLIMETER, (25.4f/72f));
transcoder.addTranscodingHint(PDFTranscoder.KEY_STROKE_TEXT, true);
Когда я предоставляю KEY_STROKE_TEXT в качестве true, мой выходной документ PDF не отображается вообще или иногда отображается с шрифтом по умолчанию (Times / Sanseriff).
Принимая во внимание, что если T предоставит KEY_STROKE_TEXT как false, мой текст будет отображаться правильно в PDF, но как шрифт, а не как форма.
Это мой файл конфигурации FOP с одним пользовательским шрифтом,
<?xml version="1.0" encoding="UTF-8"?>
<fop version="1.0">
<fonts>
<font kerning="yes" embed-url="src/main/resources/static/custom-fonts/fullblock/fullblock.ttf" embedding-mode="subset">
<font-triplet name="FullBlockSub-RegularCustom" style="normal" weight="normal"/>
</font>
</fonts>
</fop>
Я что-то здесь не так делаю?Пожалуйста, предложите.
Спасибо
Я попытался отладить код PDFTranscoder и заметил, что метод drawString (который отвечает за преобразование текста в фигуру) в PDFDocumentGraphics2D никогда не вызывается.Попытался зарегистрировать шрифт также в графическом окружении,
GraphicsEnvironment ge = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment() ;
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("src/main/resources/static/custom-fonts/hardball/hardball-new.ttf")));
Приведенный выше код работает, только когда я использую KEY_STROKE_TEXT в качестве false.