使用iTextSharp创建的简单PDF无法通过Acrobat Reader打开?

时间:2010-08-13 12:50:37

标签: c# pdf pdf-generation itextsharp itext

我使用iTextSharp创建简单的测试PDF文档。我只是使用PdfContentByte来显示一些文字。这是代码:

    Document document = new Document();
    Stream outStream = new FileStream("D:\\aaa\\test.pdf", FileMode.OpenOrCreate);
    PdfWriter writer = PdfWriter.GetInstance(document, outStream);
    document.Open();
    PdfContentByte to = writer.DirectContent;
    to.BeginText();
    to.SetFontAndSize(BaseFont.CreateFont(), 12);
    to.SetTextMatrix(0, 0);
    to.ShowText("aaa");
    to.EndText();
    document.Close();
    outStream.Close();

该文件已创建,但当我尝试打开它时(使用Acrobat Reader),我得到的是以下消息:

  

打开此错误   文献。阅读时出现问题   这份文件(14)。

问题出在哪里?我如何解决它?谢谢

2 个答案:

答案 0 :(得分:3)

重启VS后问题解决了。没有进行任何代码更改。

答案 1 :(得分:2)

我似乎无法复制您遇到的问题,但请考虑因您可能遇到的任何异常情况而导致的潜在资源泄漏,并正确Dispose()这些对象:

    using (Stream outStream = new FileStream("D:\\aaa\\test.pdf", FileMode.OpenOrCreate))
    {
        Document document = new Document();
        PdfWriter writer = PdfWriter.GetInstance(document, outStream);

        document.Open();
        try
        {
            PdfContentByte to = writer.DirectContent;

            to.BeginText();
            try
            {
                to.SetFontAndSize(BaseFont.CreateFont(), 12);
                to.SetTextMatrix(0, 0);
                to.ShowText("aaa");
            }
            finally
            {
                to.EndText();
            }
        }
        finally
        {
            document.Close();
        }
    }