C# 将页眉、页脚和aslo页码添加到pdf
在我的应用程序中,我正在将datatable数据导出为pdf格式,它工作正常。现在,我想向它添加页眉和页脚,还想向它添加页码,并且我想在所有页面中,页眉都包含报告名称。我该怎么做 我编写了如下代码:C# 将页眉、页脚和aslo页码添加到pdf,c#,asp.net,itextsharp,C#,Asp.net,Itextsharp,在我的应用程序中,我正在将datatable数据导出为pdf格式,它工作正常。现在,我想向它添加页眉和页脚,还想向它添加页码,并且我想在所有页面中,页眉都包含报告名称。我该怎么做 我编写了如下代码: public void ExportToPdf(DataTable ExDataTable) { //Here set page size as A4 Document pdfDoc = new Document(PageSize.A4, 10, 10, 10, 10);
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!");
}
}
public void exporttopf(DataTable ExDataTable)
{
//这里设置页面大小为A4
文档pdfDoc=新文档(PageSize.A4、10、10、10、10);
尝试
{
GetInstance(pdfDoc,System.Web.HttpContext.Current.Response.OutputStream);
pdfDoc.Open();
//设置PDF文件的字体属性
Font fnt=FontFactory.GetFont(“新罗马时代”,6);
DataTable dt=ExDataTable;
如果(dt!=null)
{
PdfPTable PdfTable=新的PdfPTable(dt.Columns.Count);
PdfPCell PdfPCell=null;
//这里我们创建PDF文件表
for(int rows=0;rows
有人能帮我吗?您必须为页眉和页脚创建pdftables。用标题图像/标题填充单元格。在页脚表中,您必须用页码填充单元格。创建一个新的页面事件类:
public class PageEvents : PdfPageEventHelper
{
public override void OnStartPage(PdfWriter writer, Document document)
{
base.OnStartPage(writer, document);
document.Add(...header...);
}
}
现在在您的代码中:
class Program
{
static void Main(string[] args)
{
using (var pdfDoc = new Document(...))
{
var pdfWriter = PdfWriter.GetInstance(pdfDoc, new FileStream("Test.pdf", FileMode.Create));
pdfWriter.PageEvent = new PageEvents();
....
您使用哪个库生成PDF?文档应该说明如何做您希望做的事情。在任何情况下,如果你说明你使用的是什么库(如ActivePDF等),你可能会有更好的机会得到答案。@Tim我使用的是itextsharp库我建议在itextsharp上搜索并添加页眉/页脚、页码等-这里有很多关于这些主题的帖子。您可能还希望在问题中添加ITextSharp的标记。不幸的是我没用过它。@Sweety你有解决办法吗?实际上我也在用itextsharp做同样的尝试。搜索时我找到了你的帖子。如果你有解决方案,你能告诉我如何实现同样的效果吗?我最近添加了一个不使用pageEvents的答案-