读取器初始化中的 ItextSharp-Exception “文档没有页面根目录”
本文关键字:根目录 文档 初始化 ItextSharp-Exception 读取 | 更新日期: 2023-09-27 18:32:32
嗨,我正在尝试使用 ItextSharp.dll 阅读各种 pdf 文件,当我尝试阅读它时,其中一些文件会给我抛出异常。 例外情况是:"文档没有页面根目录(意思是:它是无效的PDF)。我在合并示例中,在Itext网页(合并示例)中进行了一些测试,这些测试都成功了。那么,有人可以引导我看看我做错了什么吗?这是我的代码:
public void MergeFiles(String[] strFiles, String strFileresult)
{
Document document = new Document(); ;
PdfCopy copy;
copy = new PdfCopy(document, new FileStream(strFileresult, FileMode.Create));
document.Open();
PdfReader[] reader = new PdfReader[3];
for (int i = 0; i < strFiles.Count(); i++)
{
reader[i] = new PdfReader(strFiles[i]);
copy.AddDocument(reader[i]);
}
document.Close();
for (int i = 0; i < reader.Count(); i++)
{
reader[i].Close();
}
}
我不确定是什么导致了您的确切问题,但是一旦我们摆脱了不必要的内部数组并切换到using
模式以获得自动清理,一切正常。
public void MergeFiles(string[] strFiles, String strFileresult) {
using( var document = new Document()) {
using (var copy = new PdfCopy(document, new FileStream(strFileresult, FileMode.Create))) {
document.Open();
foreach( var file in strFiles) {
using (var reader = new PdfReader(file)) {
copy.AddDocument(reader);
}
}
document.Close();
}
}
}