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=markup

Unfortunately 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.java

Opening 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/pdfexamples

I 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)

Attachment: 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

Reply via email to