C#、iTextSharp 5.5.10 在文档关闭命令中显示 "Cannot access a closed file."
C#, iTextSharp 5.5.10 Shown "Cannot access a closed file." on document close command
我不知道如何解决这个问题,因为文档似乎在实际命令之前关闭,即使我再次输入命令打开它。请帮忙。
这是我的代码。当我单击该按钮时,它将执行此操作并且错误将发生在 doc.close()
行。它显示 "Cannot access a closed file." 即使我把 doc.open()
放在上面。
private void run_Click(object sender, EventArgs e)
{
Document doc = new Document(PageSize.A4);
using(FileStream op = new FileStream("text.pdf", FileMode.Create))
{
PdfWriter wri = PdfWriter.GetInstance(doc, op);
Paragraph p = new Paragraph("test");
doc.Open();
doc.Add(p);
}
using (FileStream op = new FileStream("text.pdf", FileMode.Append, FileAccess.Write))
{
PdfWriter wri = PdfWriter.GetInstance(doc, op);
Paragraph p = new Paragraph("test2");
doc.Open();
doc.Add(p);
doc.Close();
}
}
首先,通过附加PDF文件的方式向现有PDF添加一些内容是不正确的。如果您想将内容添加到现有 PDF,请勾选 ITextSharp insert text to an existing pdf。
但是,如果你只是想让它工作,你只需要每次都创建一个新的 Document 实例。
private void run_Click(object sender, EventArgs e)
{
Document doc = new Document(PageSize.A4);
using(FileStream op = new FileStream("text.pdf", FileMode.Create))
{
PdfWriter wri = PdfWriter.GetInstance(doc, op);
Paragraph p = new Paragraph("test");
doc.Open();
doc.Add(p);
}
using (FileStream op = new FileStream("text.pdf", FileMode.Append, FileAccess.Write))
{
doc = new Document(PageSize.A4); // this is the fix
PdfWriter wri = PdfWriter.GetInstance(doc, op);
Paragraph p = new Paragraph("test2");
doc.Open();
doc.Add(p);
doc.Close();
}
}
我不知道如何解决这个问题,因为文档似乎在实际命令之前关闭,即使我再次输入命令打开它。请帮忙。
这是我的代码。当我单击该按钮时,它将执行此操作并且错误将发生在 doc.close()
行。它显示 "Cannot access a closed file." 即使我把 doc.open()
放在上面。
private void run_Click(object sender, EventArgs e)
{
Document doc = new Document(PageSize.A4);
using(FileStream op = new FileStream("text.pdf", FileMode.Create))
{
PdfWriter wri = PdfWriter.GetInstance(doc, op);
Paragraph p = new Paragraph("test");
doc.Open();
doc.Add(p);
}
using (FileStream op = new FileStream("text.pdf", FileMode.Append, FileAccess.Write))
{
PdfWriter wri = PdfWriter.GetInstance(doc, op);
Paragraph p = new Paragraph("test2");
doc.Open();
doc.Add(p);
doc.Close();
}
}
首先,通过附加PDF文件的方式向现有PDF添加一些内容是不正确的。如果您想将内容添加到现有 PDF,请勾选 ITextSharp insert text to an existing pdf。
但是,如果你只是想让它工作,你只需要每次都创建一个新的 Document 实例。
private void run_Click(object sender, EventArgs e)
{
Document doc = new Document(PageSize.A4);
using(FileStream op = new FileStream("text.pdf", FileMode.Create))
{
PdfWriter wri = PdfWriter.GetInstance(doc, op);
Paragraph p = new Paragraph("test");
doc.Open();
doc.Add(p);
}
using (FileStream op = new FileStream("text.pdf", FileMode.Append, FileAccess.Write))
{
doc = new Document(PageSize.A4); // this is the fix
PdfWriter wri = PdfWriter.GetInstance(doc, op);
Paragraph p = new Paragraph("test2");
doc.Open();
doc.Add(p);
doc.Close();
}
}