0

我有一个 PDF 文件,我正在使用 PDF Clown 阅读该文件,然后为其添加一些注释。之后,我尝试使用 org.pdfclown.files.File 的 Save 方法将文件序列化到磁盘。这样做我得到以下错误

运行示例时发生异常:org.pdfclown.util.parsers.PostScriptParseException: Unknown type beginning: 'False' at org.pdfclown.tokens.BaseParser.ParsePdfObject() in d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclow .lib\src\org\pdfclown\tokens\BaseParser.cs:第 149 行,位于 d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.lib\src\org\pdfclown 中的 org.pdfclown.tokens.FileParser.ParsePdfObject() \tokens\FileParser.cs:第 150 行,位于 d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.lib\src\org\pdfclown\tokens\FileParser.cs 中的 org.pdfclown.tokens.FileParser.ParsePdfObject(XRefEntry xrefEntry) : d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.lib\src\org\pdfclown\objects\PdfIndirectObject.cs 中 org.pdfclown.objects.PdfIndirectObject.get_DataObject() 的第 221 行:org.pdfclown 的第 275 行。对象。PdfIndirectObject.WriteTo(IOutputStream stream, File context) in d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclow.lib\src\org\pdfclown\objects\PdfIndirectObject.cs: org.pdfclown.tokens.PlainWriter.WriteStandard 的第 248 行() 在 d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.lib\src\org\pdfclown\tokens\PlainWriter.cs:line 205 at org.pdfclown.tokens.Writer.Write(SerializationModeEnum 模式) 在 d:\ eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.lib\src\org\pdfclown\tokens\Writer.cs: d:\eProof\testProjects 中 org.pdfclown.files.File.Save(IOutputStream 流,SerializationModeEnum 模式)的第 132 行\pdf_clown_svn\dotNET\pdfclown.lib\src\org\pdfclown\files\File.cs: d:\eProof\testProjects\pdf_clown_svn\ 中 org.pdfclown.files.File.Save(字符串路径,SerializationModeEnum 模式)的第 315 行dotNET\pdf 小丑。lib\src\org\pdfclown\files\File.cs: org.pdfclown.samples.cli.HelloWorldSample.UzairTestFunc() 中的第 272 行,位于 d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.samples.cli\src\ org\pdfclown\samples\cli\HelloWorldSample.cs:第 40 行,位于 d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.samples.cli\src\org\ 中的 org.pdfclown.samples.cli.HelloWorldSample.Run() pdfclown\samples\cli\HelloWorldSample.cs:第 20 行,位于 org.pdfclown.samples.cli.SampleLoader.Run(String inputPath, String outputPath) in d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.samples.cli\src \org\pdfclown\samples\cli\SampleLoader.cs:第 123 行samples.cli.HelloWorldSample.Run() 在 d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.samples.cli\src\org\pdfclown\samples\cli\HelloWorldSample.cs: org.pdfclown.samples 中的第 20 行。 cli.SampleLoader.Run(String inputPath, String outputPath) in d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.samples.cli\src\org\pdfclown\samples\cli\SampleLoader.cs:line 123samples.cli.HelloWorldSample.Run() 在 d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.samples.cli\src\org\pdfclown\samples\cli\HelloWorldSample.cs: org.pdfclown.samples 中的第 20 行。 cli.SampleLoader.Run(String inputPath, String outputPath) in d:\eProof\testProjects\pdf_clown_svn\dotNET\pdfclown.samples.cli\src\org\pdfclown\samples\cli\SampleLoader.cs:line 123

现在我无法在此处共享 PDF,但我看到它无法处理 PDF 中的以下对象
...
96 0 obj
False
endobj
...

任何想法如何在 PDF Clown 中解决这个问题?

4

1 回答 1

1
96 0 obj
False
endobj

这个对象是无效的,布尔值都是小写的:

7.3.2 布尔对象

布尔对象表示真假的逻辑值。它们使用关键字truefalse出现在 PDF 文件中。

(ISO 32000-1 和 ISO 32000-2)

因此,要修复您的 PDF,请替换Falsefalse.

于 2018-02-07T14:45:29.917 回答