【发布时间】:2011-07-02 09:23:57
【问题描述】:
在我的应用程序中,我正在将数据表数据导出为 pdf,它现在可以正常工作了这页纸。我该怎么做?
我写的代码是这样的:
public void ExportToPdf(DataTable ExDataTable)
{
//Here set page size as A4
Document pdfDoc = new Document(PageSize.A4, 10, 10, 10, 10);
try
{
PdfWriter.GetInstance(pdfDoc, System.Web.HttpContext.Current.Response.OutputStream);
pdfDoc.Open();
//Set Font Properties for PDF File
Font fnt = FontFactory.GetFont("Times New Roman", 6);
DataTable dt = ExDataTable;
if (dt != null)
{
PdfPTable PdfTable = new PdfPTable(dt.Columns.Count);
PdfPCell PdfPCell = null;
//Here we create PDF file tables
for (int rows = 0; rows < dt.Rows.Count; rows++)
{
if (rows == 0)
{
for (int column = 0; column < dt.Columns.Count; column++)
{
PdfPCell = new PdfPCell(new Phrase(new Chunk(dt.Columns[column].ColumnName.ToString(), fnt)));
PdfTable.AddCell(PdfPCell);
}
}
for (int column = 0; column < dt.Columns.Count; column++)
{
PdfPCell = new PdfPCell(new Phrase(new Chunk(dt.Rows[rows][column].ToString(), fnt)));
PdfTable.AddCell(PdfPCell);
}
}
// Finally Add pdf table to the document
pdfDoc.Add(PdfTable);
}
pdfDoc.Close();
Response.ContentType = "application/pdf";
//Set default file Name as current datetime
Response.AddHeader("content-disposition", "attachment; filename=" + "Line-Shift Report" + ".pdf");
System.Web.HttpContext.Current.Response.Write(pdfDoc);
Response.Flush();
Response.End();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
protected void Button1_Click1(object sender, EventArgs e)
{
if (Session["source_table"] != null)
{
ExportToPdf(Session["source_table"] as DataTable);
}
else
{
Response.Write("No data to Export!");
}
}
谁能帮我解决这个问题?
【问题讨论】:
-
您使用什么库来生成 PDF?文档应该说明如何做你想做的事情。无论如何,如果您说明您正在使用什么库(例如 ActivePDF 等),您可能更有可能获得答案。
-
@Tim-Im 使用 itextsharp 库
-
我建议在 ITextSharp 上进行搜索并添加页眉/页脚、页码等 - 这里有很多关于这些主题的帖子。您可能还想为您的问题添加 ITextSharp 的标签。不幸的是,我没有使用过 ITextSharp。
-
@Sweety 你有解决方案吗?实际上我正在尝试使用itextsharp。在搜索时我发现了你的帖子。如果你有解决方案,你能告诉我我应该如何达到同样的效果吗?
-
我最近添加了一个不使用pageEvents的答案-stackoverflow.com/questions/18996323/…
标签: c# asp.net itextsharp