我使用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)。
问题出在哪里?我如何解决它?谢谢
答案 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();
}
}