[ https://issues.apache.org/jira/browse/PDFBOX-4508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16811798#comment-16811798 ]
ASF subversion and git services commented on PDFBOX-4508: --------------------------------------------------------- Commit 1857075 from Tilman Hausherr in branch 'pdfbox/branches/2.0' [ https://svn.apache.org/r1857075 ] PDFBOX-4508: add comment > Unexpected slowness filling forms with CJK > ------------------------------------------ > > Key: PDFBOX-4508 > URL: https://issues.apache.org/jira/browse/PDFBOX-4508 > Project: PDFBox > Issue Type: Improvement > Components: AcroForm, Documentation > Affects Versions: 2.0.14 > Reporter: Tilman Hausherr > Priority: Major > Labels: Optimization > Attachments: NotoSansCJKsc-Medium.ttf, i-130.pdf > > > As reported by William Pietri in the users mailing list: > {quote}If I go through this and fill every field with roman text using the > default font, it takes circa 2 seconds, which is fine. If I fill it with an > added Arabic font, it takes circa 7 seconds. And if I use a CJK font, it > takes circa 140 seconds, which seems like a lot. This is with PDFBox 2.0.14 > and the Oracle 1.8.201 JDK on Linux. > {quote} > And the message "OpenType Layout tables used in font NotoSansCJKsc-Medium are > not implemented in PDFBox and will be ignored " comes up for every field, > which suggests that the font is opened each time. > I can confirm this, also with a different font (ArialUni). > {code:java} > PDDocument doc = PDDocument.load(new File("i-130.pdf")); > PDResources res = > doc.getDocumentCatalog().getAcroForm().getDefaultResources(); > PDFont font = PDType0Font.load(doc, new FileInputStream(new > File("NotoSansCJKsc-Medium.ttf")), false); > String fontName = res.add(font).getName(); > long start = System.currentTimeMillis(); > for (Iterator<PDField> it = > doc.getDocumentCatalog().getAcroForm().getFieldIterator(); it.hasNext();) > { > PDField field = it.next(); > if (field instanceof PDTextField) > { > PDTextField textField = (PDTextField) field; > textField.setDefaultAppearance("/" + fontName + " 0 Tf 0 g"); > textField.setValue("中国"); > long end = System.currentTimeMillis(); > System.out.println("Filled " + textField.getFullyQualifiedName() + " > in " + (end - start) + "ms"); > start = end; > } > } > doc.save(new File("i-130-filled.pdf")); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org