我有这个代码:
private static byte[] ConvertPdfDocument(Document document, PdfPTable headerTable, PdfPTable affidavitsTable)
{
byte[] b;
using (MemoryStream ms = new MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(document, ms);
if (document.IsOpen() == false)
{
document.Open();
}
document.Add(headerTable);
document.Add(affidavitsTable);
document.Close();
writer.Close();
b = ms.ToArray();
}
return b;
}
“文档”对象被打开(使用document.Open()
在这个方法之外然后传入。
条件document.IsOpen()
评估结果为 True。通过查看调试器中“文档”对象的私有属性,我进一步确认文档实际上已打开;它表明“Open”是“true”。
因此,执行转移到document.Add(headerTable)
line.
此时会抛出异常:“文档未打开。”
当调试器停止时(由于抛出异常),使用上述两种相同的方法,我可以still看到文档已打开。
怎么可能呢?
我已经谷歌搜索了一段时间,但除了发布相同的问题之外找不到任何东西here http://www.tagwith.com/question_1458483_itextsharp-the-document-is-not-open-but-it-is-open没有答案...
任何帮助将不胜感激。
非常感谢,
埃利泽
该文档必须在使用后打开PdfWriter.GetInstance()
否则就没有关联的作家,它什么也不做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)