【发布时间】:2012-05-26 09:37:18
【问题描述】:
我有一个程序可以为提交到网站的 PDF 添加第二页。我使用 C# 和 PDFSharp。大多数文档工作正常,但少数用户收到“对象引用未设置为对象实例”。
using PdfSharp;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing.Layout;
PdfDocument rosterInput = PdfReader.Open(FilePath, PdfDocumentOpenMode.Import);
PdfPage rpage = rosterInput.Pages[0];
错误发生在第二行。当我调试时,它显示 PageCount = 0,这很奇怪,因为它是一个 1 页文档。
【问题讨论】:
-
我没有在您的代码中看到 任何 错误检查或错误处理。就是这样。
-
可能是输入 PDF 已损坏,即页面字典缺少适当的
NumKids条目。您可以尝试转储元数据并检查您的库是否支持。 -
错误在用户看到之前就被捕获了。
-
也许您无法加载的文件是 PDF 格式,但尚不支持。看看这个链接:pdfsharp.net/wiki/….
-
PDF 1.3 应该没有问题 - 如果文件严格遵循 Adobe PDF 参考。但许多第三方 PDF 生成器不遵循 PDF 参考。 PDFsharp 团队正在尝试使 PDFsharp 与不完全符合参考的文件兼容,但他们需要示例文件。