You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "John Hewson (JIRA)" <ji...@apache.org> on 2014/11/04 18:35:34 UTC
[jira] [Updated] (PDFBOX-2482) Support for creating PDF containing
OTF fonts
[ https://issues.apache.org/jira/browse/PDFBOX-2482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
John Hewson updated PDFBOX-2482:
--------------------------------
Affects Version/s: 2.0.0
> 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
> Affects Versions: 2.0.0
> Reporter: Corinna Kinchin
> Priority: Critical
> Fix For: 2.1.0
>
>
> 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)