Конвертировать SVG в PDF с текстом в виде контуров - PullRequest
0 голосов
/ 29 сентября 2019

Я использую 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.

...