Corinna Kinchin created PDFBOX-2482:
---------------------------------------

             Summary: Support for creating PDF containing OTF fonts
                 Key: PDFBOX-2482
                 URL: https://issues.apache.org/jira/browse/PDFBOX-2482
             Project: PDFBox
          Issue Type: New Feature
          Components: FontBox
            Reporter: Corinna Kinchin
            Priority: Critical


Good morning!

I have tried posting this question on the users list and stackOverflow, but no 
luck ... other than Tilman Hausher's suggestion that I log an enhancement 
request ... so here it is - it would be beyond wonderful if you might consider 
supporting OTF fonts in PDF. 

Here's the background - I've just (last week) downloaded the latest PDFbox 
source from github and am trying to create a HelloWorldOTF.java, based on the 
HelloWorldTTF.java example, with the hope of creating a PDF file which uses an 
OTF font (in this case, Adobe Caslon Pro Regular) to add text to the output PDF.

Here's what I have so far:
{code:java}
        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!");
{code}
I can load a CFFFont using this code: (loadCFFFont()):
{code:java}
            CFFFont cff = null;
            input = new FileInputStream(file);
            byte[] bytes = IOUtils.toByteArray(input);
            CFFParser cffParser = new CFFParser();
            cff = cffParser.parse(bytes).get(0);
{code}
... but can't for the life of me figure out how to get from a CFFFont to a 
PDFont in order to be able to use it to set the font via setFont().

Any help or pointers would be hugely appreciated ...

Thanks a million for reading this far ;)




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to