使用iTextSharp创建的简单PDF无法由Acrobat Reader打开?
问题描述:
我使用iTextSharp创建简单的测试PDF文档。我只是使用PdfContentByte来显示一些文本。这是代码:使用iTextSharp创建的简单PDF无法由Acrobat Reader打开?
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)时出现问题。
问题在哪里?我如何解决它?谢谢
答
重新启动VS后问题解决了。没有更改代码。
答
我似乎无法复制您遇到的问题,但请考虑到资源的潜在泄漏,由于可能遇到的特殊情况,妥善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();
}
}
有什么建议吗?我想这只是非常简单的事情,就像我非常愚蠢的错误,但我只是不能看到它... – drasto 2010-08-13 12:56:38
我跑你的代码,并没有得到任何错误,你使用的是哪种版本的ITextSharp? – dada686 2010-08-13 12:59:56
甚至当试图打开生成的文件?当我运行C#代码时,我不会收到错误,只有当我打开生成的文件时。 – drasto 2010-08-13 13:03:11