itextsharp创建一个损坏/空白的pdf文件,i-9文件

时间:2010-12-14 23:42:31

标签: c# pdf asp.net-2.0 itextsharp

我一直在使用Itextsharp预填充.aspx页面中的可填写pdf。但是,当我试图用i-9文件(从国土安全部下载)完全相同的事情时,它给我一个0号文件,无法打开(我得到一个错误信息说,它是一个损坏的文件)

我只是复制代码片段(我在我的解决方案中有所有必要的Itestsharp引用),这会生成一个损坏的pdf文件(大小为0)

string pdfTemplate = @"c:\PDF\i-9.pdf";
  string newFile = @"c:\PDF\completed_i-9.pdf";
  PdfReader pdfReader = new PdfReader(pdfTemplate);
  PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(
                                                               newFile, FileMode.Create));
  pdfStamper.Close();

但是,如果我对任何其他可填写的pdf做同样的事情,例如w4它完美无缺。任何想法的人,这里出了什么问题?

由于

1 个答案:

答案 0 :(得分:0)

阿。有了tracked down the PDF,我看到了问题。它有一个空白的打开密码,但是有一些文档安全性。

iText的安全实现不够精细(尚未)允许某些内容而不允许其他内容,因此当您打开受密码保护的PDF文件时,我们会抛出异常(此PDF的开放密码为空字符串,除非你用OWNER密码打开它,否则它会自动打开,但它仍然存在。在这种情况下,任何事情都会发生。

如果您查看日志,则会看到异常。

只有国土安全局知道所有者密码,我怀疑他们会告诉你。好消息是,其他人问了一个更具体的“我如何使用iText修改一个带有”开放式“密码”类型问题的文件并自行计算出来。

然而,使用他们的答案是合法可疑的,所以我不会提供链接或告诉你答案(我已经知道,并且没有告诉其他提问者)。