打开asp.net生成的PDF文件时出错
本文关键字:PDF 文件 出错 asp net 打开 | 更新日期: 2023-09-27 18:16:26
我正在尝试为我的网站生成PDF。目前,我正试图从数据库中获取数据,并将其显示在我的PDF文件上,但我的主要优先事项实际上是从asp:标签中获取值并将其导出为PDF格式。不幸的是,当我打开生成的PDF文件时,我得到了这个错误。
错误:打开此文档出错。此文件已打开或正在被其他应用程序使用
protected void btnPDF_Click(object sender, EventArgs e)
{
var doc1 = new Document();
var filename = DDLCase.SelectedItem.Text + ".pdf";
var output = new FileStream(Path.Combine("C:''Users''apr12mpsip''Desktop", filename), FileMode.Create);
doc1.Open();
PdfPTable table = new PdfPTable(3);
PdfPCell cell = new PdfPCell(new Phrase("Header spanning 3 columns"));
cell.Colspan = 3;
cell.HorizontalAlignment = 1;
table.AddCell(cell);
table.AddCell("Col 1 Row 1");
table.AddCell("Col 2 Row 1");
doc1.Add(table);
SqlConnection con = new SqlConnection("Data Source = localhost; Initial Catalog = project; Integrated Security = SSPI");
SqlCommand cm = new SqlCommand("Select typeofcrime, citizenreport from MemberReport where memberreportid='"+DDLCase.SelectedValue+"'", con);
con.Open();
SqlDataReader dr;
dr = cm.ExecuteReader();
while (dr.Read())
{
table.AddCell(dr[0].ToString());
table.AddCell(dr[1].ToString());
}
dr.Close();
doc1.Close();
}
我检查了我的代码,我找不到任何方法来解决错误并成功获得值
你可以
var doc1 = new Document();
var filename = DDLCase.SelectedItem.Text + ".pdf";
var output = new FileStream(Path.Combine("C:''Users''apr12mpsip''Desktop", filename), FileMode.Create);
doc1.Open();
[... fetching some data and adding that to`doc1 ...]
doc1.Close();
很明显,您没有以任何方式将output
与Document doc1.
关联起来,因此,您的文件根本没有被写入,但也没有被关闭。
很可能您还想实例化一个PdfWriter
,它写入output
并从doc1:
接收
var doc1 = new Document();
var filename = DDLCase.SelectedItem.Text + ".pdf";
var output = new FileStream(Path.Combine("C:''Users''apr12mpsip''Desktop", filename), FileMode.Create);
PdfWriter.GetInstance(doc1, output); // instantiate a PdfWriter for doc1 and output
doc1.Open();
[... fetching some data and adding that to`doc1 ...]
doc1.Close();