首页 文章

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

提问于
浏览
5

我使用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 回答

  • 3

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

  • 2

    我可以't seem to replicate the problem you'遇到,但请考虑到您可能遇到的任何异常情况导致的潜在资源泄漏,并正确 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();
            }
        }
    

相关问题