我一直在使用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它完美无缺。任何想法的人,这里出了什么问题?
由于
答案 0 :(得分:0)
阿。有了tracked down the PDF,我看到了问题。它有一个空白的打开密码,但是有一些文档安全性。
iText的安全实现不够精细(尚未)允许某些内容而不允许其他内容,因此当您打开受密码保护的PDF文件时,我们会抛出异常(此PDF的开放密码为空字符串,除非你用OWNER密码打开它,否则它会自动打开,但它仍然存在。在这种情况下,任何事情都会发生。
如果您查看日志,则会看到异常。
只有国土安全局知道所有者密码,我怀疑他们会告诉你。好消息是,其他人问了一个更具体的“我如何使用iText修改一个带有”开放式“密码”类型问题的文件并自行计算出来。
然而,使用他们的答案是合法可疑的,所以我不会提供链接或告诉你答案(我已经知道,并且没有告诉其他提问者)。