3

我在 .net (c#) 项目中使用 iTextSharp 库收到特定 pdf 文件的未处理异常。我无法理解我要上传的 pdf 的具体内容,但我可以看到我从 Internet 下载的基本 pdf 功能有效。以下部分代码:

string pdfTemplate ="url 到特定的 pdf"; var pdfReader = new PdfReader(pdfTemplate);

抛出异常:重建失败:字典键 Z 不是名称。在文件指针 224;原始消息:字典键 Z 不是名称。在文件指针 224

请问,有什么建议吗?我没主意了...

4

1 回答 1

9

文档信息字典中有错误:

%PDF-1.4
1 0 obj
<<
/Title (þÿ)
/Creator (þÿ)
/Producer (þÿ Q t   4 . 8 . 2   \( C \)   2 0 1 1   N o k i a   C o r p o r a t i o n   a n d / o r   i t s   s u b s i d i a r y \( - i e s \))
/CreationDate (D:20131111142910)Z)
>>
endobj 

CreationDate值有两个右括号。iText 正确地假定第一个是正确的,即完成值,因此,认为Z是下一个条目的键。

但是键必须是名称,并且名称以斜线开头,但是这个要成为的名称没有斜线。语法错误!!因此:

字典键 Z 不是名称。在文件指针 224

作为PdfReader失败后的最后手段,尝试再次读取 PDF,这一次首先尝试重建交叉引用。由于问题根本与交叉引用无关,这显然再次失败。因此:

重建失败:字典键 Z 不是名称。在文件指针 224;原始消息:字典键 Z 不是名称。在文件指针 224

此语法错误的创建可能是 Qt 错误(此处将 Qt 4.8.2 命名为创建者)。

PS:您是否尝试过在 Adob​​e Reader 中打开此文件的文档属性?这里没有弹出任何内容,这肯定是由于该问题。

于 2013-11-11T16:12:32.073 回答