Hi all,I am using pdfbox for the first time and trying to run the example code provided here on a pdf which I have stored locally:
https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/interactive/form/FillFormField.java?view=markupUnfortunately when running the code I number of IOExceptions are thrown with the message "Missing TTC Header" (full error message attached). Looking at the source code I see that the reason is that the constructor of the TrueTypeCollection class throws the error because the "tag" of the .ttc font is not what it expected namely the String value "ttcf":
https://github.com/apache/pdfbox/blob/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeCollection.javaOpening one of the files for which the exception was thrown (NotoSerifCJK-Regular.ttc, also attached) where an exception was thrown, it does seem to me that the file simply contains html, and it does seem to be that the expected tag is simply not present as the error states. If anyone could help me resolve this error or provide any further insights to highlight something I'm misunderstanding it would be greatly appreciated. The code as well as the document I use to run this example can be found on github:
https://github.com/JacobMacWilliams/pdfexamplesI apologize if any of these questions come across as naive, this my first time working on a similar project.
Best, Jacob MacWilliams
Sep 05, 2022 2:42:08 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider loadDiskCache WARNING: New fonts found, font cache will be re-built Sep 05, 2022 2:42:08 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider <init> WARNING: Building on-disk font cache, this may take a while Sep 05, 2022 2:42:08 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider addTrueTypeCollection SEVERE: Could not load font file: /usr/share/fonts/noto/NotoSerifCJK-Regular.ttc java.io.IOException: Missing TTC header at org.apache.fontbox.ttf.TrueTypeCollection.<init>(TrueTypeCollection.java:73) at org.apache.fontbox.ttf.TrueTypeCollection.<init>(TrueTypeCollection.java:45) at org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.addTrueTypeCollection(FileSystemFontProvider.java:604) at org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.scanFonts(FileSystemFontProvider.java:378) at org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.<init>(FileSystemFontProvider.java:350) at org.apache.pdfbox.pdmodel.font.FontMapperImpl$DefaultFontProvider.<clinit>(FontMapperImpl.java:135) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.getProvider(FontMapperImpl.java:154) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.findFont(FontMapperImpl.java:418) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.findFontBoxFont(FontMapperImpl.java:381) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.getFontBoxFont(FontMapperImpl.java:355) at org.apache.pdfbox.pdmodel.font.PDType1Font.<init>(PDType1Font.java:146) at org.apache.pdfbox.pdmodel.font.PDType1Font.<clinit>(PDType1Font.java:63) at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:75) at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:143) at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processSetFont(PDDefaultAppearanceString.java:169) at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processOperator(PDDefaultAppearanceString.java:132) at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processAppearanceStringOperators(PDDefaultAppearanceString.java:109) at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.<init>(PDDefaultAppearanceString.java:87) at org.apache.pdfbox.pdmodel.interactive.form.PDVariableText.getDefaultAppearanceString(PDVariableText.java:93) at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.<init>(AppearanceGeneratorHelper.java:115) at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructAppearances(PDTextField.java:261) at org.apache.pdfbox.pdmodel.interactive.form.PDTerminalField.applyChange(PDTerminalField.java:210) at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.setValue(PDTextField.java:218) at com.example.fillform.FillFormField.main(FillFormField.java:46) Sep 05, 2022 2:42:08 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider addTrueTypeCollection SEVERE: Could not load font file: /usr/share/fonts/noto/NotoSansCJK-Regular.ttc java.io.IOException: Missing TTC header at org.apache.fontbox.ttf.TrueTypeCollection.<init>(TrueTypeCollection.java:73) at org.apache.fontbox.ttf.TrueTypeCollection.<init>(TrueTypeCollection.java:45) at org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.addTrueTypeCollection(FileSystemFontProvider.java:604) at org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.scanFonts(FileSystemFontProvider.java:378) at org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.<init>(FileSystemFontProvider.java:350) at org.apache.pdfbox.pdmodel.font.FontMapperImpl$DefaultFontProvider.<clinit>(FontMapperImpl.java:135) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.getProvider(FontMapperImpl.java:154) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.findFont(FontMapperImpl.java:418) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.findFontBoxFont(FontMapperImpl.java:381) at org.apache.pdfbox.pdmodel.font.FontMapperImpl.getFontBoxFont(FontMapperImpl.java:355) at org.apache.pdfbox.pdmodel.font.PDType1Font.<init>(PDType1Font.java:146) at org.apache.pdfbox.pdmodel.font.PDType1Font.<clinit>(PDType1Font.java:63) at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:75) at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:143) at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processSetFont(PDDefaultAppearanceString.java:169) at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processOperator(PDDefaultAppearanceString.java:132) at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.processAppearanceStringOperators(PDDefaultAppearanceString.java:109) at org.apache.pdfbox.pdmodel.interactive.form.PDDefaultAppearanceString.<init>(PDDefaultAppearanceString.java:87) at org.apache.pdfbox.pdmodel.interactive.form.PDVariableText.getDefaultAppearanceString(PDVariableText.java:93) at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.<init>(AppearanceGeneratorHelper.java:115) at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructAppearances(PDTextField.java:261) at org.apache.pdfbox.pdmodel.interactive.form.PDTerminalField.applyChange(PDTerminalField.java:210) at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.setValue(PDTextField.java:218) at com.example.fillform.FillFormField.main(FillFormField.java:46) Sep 05, 2022 2:42:08 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider <init> WARNING: Finished building on-disk font cache, found 709 fonts Sep 05, 2022 2:42:08 PM org.apache.pdfbox.pdmodel.font.PDType1Font <init> WARNING: Using fallback font LiberationSans for base font Symbol Sep 05, 2022 2:42:08 PM org.apache.pdfbox.pdmodel.font.PDType1Font <init> WARNING: Using fallback font LiberationSans for base font ZapfDingbats Sep 05, 2022 2:42:08 PM org.apache.pdfbox.pdmodel.PDDocument save WARNING: You are overwriting an existing file, this will produce a corrupted file if you're also reading from it Exception in thread "main" java.lang.IllegalStateException: PDF contains an encryption dictionary, please remove it with setAllSecurityToBeRemoved() or set a protection policy with protect() at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1505) at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1456) at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1010) at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:955) at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:912) at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:895) at com.example.fillform.FillFormField.main(FillFormField.java:55)
NotoSansCJK-Regular.ttc
Description: font/collection
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org For additional commands, e-mail: users-h...@pdfbox.apache.org