使用iTextSharp的PdfWriter生成PDF时触发空引用异常,求解决方案
解决iTextSharp生成PDF时的空引用异常
问题根源
你的代码存在几个关键疏漏,直接导致空引用异常:
- 未调用
document.Open()初始化文档,PdfWriter.GetInstance需要文档处于可操作状态 - FileStream未用
using包裹,可能引发资源占用或初始化失败 - 空文档在部分iTextSharp版本中会触发异常
修复后的完整代码
using (var file = new FileStream("output.pdf", FileMode.Create)) using (var document = new Document()) { PdfWriter writer = PdfWriter.GetInstance(document, file); // 必须打开文档才能进行后续操作 document.Open(); // 添加至少一段内容,避免空文档引发的异常 document.Add(new Paragraph("PDF测试内容")); }
额外排查点
- 权限检查:确认程序有写入当前目录的权限,可尝试使用绝对路径(如
@"D:\output.pdf") - 版本兼容:确保iTextSharp版本与你的.NET框架匹配,推荐使用稳定版5.5.13.3
- 依赖验证:检查项目是否正确引用iTextSharp的DLL,无缺失或版本冲突
内容的提问来源于stack exchange,提问作者Anmol
相关产品推荐
相关产品推荐

