iTextSharp:"文档未打开"错误 - 实际上是

Eli*_*zer 5 itextsharp

我有这个代码:

    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;
    }
Run Code Online (Sandbox Code Playgroud)

打开"document"对象(document.Open()在此方法之外使用,然后传入.

条件document.IsOpen()评估为True.通过查看调试器中"document"对象的私有属性,我进一步确认文档实际上是打开的; 它表明"开放"是"真实的".

因此,执行移动到该document.Add(headerTable)行.

并且在那时抛出异常:"文档未打开." 虽然调试器已停止(由于抛出异常),但使用上述相同的两种方法,我仍然可以看到文档是打开的.

怎么会这样?

我已经谷歌搜索了一段时间但找不到任何东西,除了这里发布的相同问题没有答案...

任何帮助将不胜感激.

非常感谢,Eliezer

Pau*_*res 12

文档必须在使用后打开,PdfWriter.GetInstance()否则没有编写器关联,它什么都不做.