我正在编写一些代码来使用iTextSharp连接PDF。在这个阶段,我简化了代码以连接一个PDF:
public static void Concat(string outputFilePath, string inputFilePath)
{
using (var document = new Document())
{
using (var fileStream = new FileStream(outputFilePath, FileMode.Create, FileAccess.ReadWrite))
using (var copier = new PdfCopy(document, fileStream))
{
copier.SetMergeFields();
document.Open();
var reader = new PdfReader(inputFilePath);
copier.AddDocument(reader);
copier.AddJavaScript(reader.JavaScript);
copier.Close();
}
document.Close();
}
}
我有一个特定的PDF打破了这段代码:
输入文件在福昕阅读器中工作正常:除了可以编辑的底部的大字段外,所有字段都是只读的。
但是,输出文件在Foxit Reader中无法正常工作。编辑底部字段并单击其他位置会产生错误TypeError: Cannot read property '__validate' of undefined
我已经比较了AcroForm字段的结构,但我无法确定哪个差异会导致此错误。我还试图找出the Javascript的哪个部分导致错误,但据我所知,错误不会发生在PDF的javascript中,而是当Foxit Reader试图调用时{{} 1}} __validate()
中不存在的条目。
使用Adobe Reader,该文件似乎工作正常。
有什么想法吗?