我有一些由未知来源生成的文件,可以在 PDF 浏览器(Reader/Foxit)中正常打开,但 iText 无法处理它们。对于特定文件,我得到:
Exception in thread "main" java.lang.IllegalArgumentException: Unexpected colorspace /CS0
at com.itextpdf.text.pdf.parser.InlineImageUtils.getComponentsPerPixel(InlineImageUtils.java:238)
at com.itextpdf.text.pdf.parser.InlineImageUtils.computeBytesPerRow(InlineImageUtils.java:251)
at com.itextpdf.text.pdf.parser.InlineImageUtils.parseUnfilteredSamples(InlineImageUtils.java:280)
at com.itextpdf.text.pdf.parser.InlineImageUtils.parseInlineImageSamples(InlineImageUtils.java:320)
at com.itextpdf.text.pdf.parser.InlineImageUtils.parseInlineImage(InlineImageUtils.java:153)
at com.itextpdf.text.pdf.parser.PdfContentStreamProcessor.processContent(PdfContentStreamProcessor.java:370)
at com.itextpdf.text.pdf.parser.PdfReaderContentParser.processContent(PdfReaderContentParser.java:79)
有时 /CS0 颜色空间会更改为 /CS1 到 /CS9(或类似的东西)。
是 iText 错误(我使用的是 java 1.7、iText 5.4.1)还是我的 pdf 文件刚刚损坏?即使pdf文件损坏了,有什么办法可以修复它们吗?(Adobe Reader 似乎以某种方式做到了这一点,但不幸的是,打开文件并再次保存它不起作用)。