Использование PDFbox для создания PDF-ссылок на шрифты OTF

Доброе утро!

У меня есть вопрос новичка PDFbox, который я надеюсь на некоторую помощь с...

Я только что (на прошлой неделе) загрузил последний источник PDFbox с github и пытаюсь создать файл HelloWorldOTF.java, основанный на примере HelloWorldTTF.java, в надежде создать файл PDF, который использует шрифт OTF (в данном случае Adobe Caslon Pro Regular) для добавления текста в выходной PDF.

Вот что у меня так далеко:

        doc = new PDDocument();

        PDPage page = new PDPage();
        doc.addPage(page);

        String testOtfFontFile =  "c:/windows/fonts/ACaslonPro-Regular.otf";
        String testTtfFontFile = "c:/windows/fonts/arial.ttf";
        String testPdfFile = "c:/tmp/pdfboxtest.pdf";

        CFFFont font = loadCFFFont(testOtfFontFile);

        PDFont ttfFont = PDTrueTypeFont.loadTTF(doc, new File(testTtfFontFile));

        PDPageContentStream contentStream = new PDPageContentStream(doc,
                page);
        contentStream.beginText();
        // How to set the CFFFont?
        contentStream.setFont(ttfFont, 12);
        contentStream.moveTextPositionByAmount(100, 700);
        contentStream.drawString(text);
        contentStream.endText();
        contentStream.close();
        doc.save(testPdfFile);
        System.out.println(testPdfFile + " created!");

Я могу загрузить CFFFont, используя этот код: (loadCFFFont ()):

            CFFFont cff = null;
            input = new FileInputStream(file);
            byte[] bytes = IOUtils.toByteArray(input);
            CFFParser cffParser = new CFFParser();
            cff = cffParser.parse(bytes).get(0);

... но я не могу понять, как перейти от CFFFont к PDFont, чтобы иметь возможность использовать его для установки шрифта с помощью setFont().

Любая помощь или указатели будут с благодарностью...

Спасибо миллион за чтение этого далеко;)

0 ответов

Это сработало для меня, перейдя по этой ссылке.

Использование OTFParser для преобразования otf в ttf.

OTFParser otfParser = new OTFParser();
OpenTypeFont otf = otfParser.parse(new File("C:/Users/beder/Downloads/code/CODE Light.otf"));

PDFont font = PDType0Font.load(document, otf, false);
Другие вопросы по тегам