我需要在调整PDF页眉/页脚和文本区域方面得到一些帮助。第一页看起来还好,但之后就越来越糟了。是页眉和页脚侵入了现有的边距空间吗?
我想知道出了什么问题,并且要调整以下内容:
1.页面宽度 2.边距宽度 3.页眉 4.页脚 5.文本区域
我的页眉覆盖函数如下:
我想知道出了什么问题,并且要调整以下内容:
1.页面宽度 2.边距宽度 3.页眉 4.页脚 5.文本区域
我的页眉覆盖函数如下:
public partial class Header : PdfPageEventHelper
{
public override void OnStartPage(PdfWriter writer, Document doc)
{
PdfPTable headerTbl = new PdfPTable(2);
headerTbl.SetWidths(new float[] { 4, 1 });
headerTbl.TotalWidth = doc.PageSize.Width;
iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance(HttpContext.Current.Server.MapPath("~/Images/view.gif"));
logo.ScalePercent(5);
PdfPCell cell = new PdfPCell(logo);
cell.HorizontalAlignment = Element.ALIGN_RIGHT;
cell.PaddingRight = 20;
cell.Border = Rectangle.NO_BORDER;
Font timesH = new Font(Font.FontFamily.TIMES_ROMAN, 20);
Font times = new Font(Font.FontFamily.TIMES_ROMAN, 10);
Chunk c1= new Chunk("THIS IS MY HEADER TEXT", timesH);
Chunk c = new Chunk("\n", times);
Chunk c2=new Chunk("PLEASE HAVE A NICE DAY", times);
Phrase p = new Phrase();
p.Add(c1);
p.Add(c);
p.Add(c2);
PdfPCell cell2 = new PdfPCell(p);
cell2.Border = Rectangle.NO_BORDER;
headerTbl.AddCell(cell2);
headerTbl.AddCell(cell);
headerTbl.WriteSelectedRows(0, -1, 0, (doc.PageSize.Height - 10), writer.DirectContent);
}
}
stringWrite是一个包含一堆数据的StringWriter。更多明确信息请查看这里。
我按以下方式创建pdf:
StringReader sr = new StringReader(stringWrite.ToString());
Document pdfDoc = new Document(new Rectangle(288f, 144f), 10f, 10f, 30f, 30f);
pdfDoc.SetPageSize(PageSize.A4.Rotate());
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter pdfwriter = PdfWriter.GetInstance(pdfDoc, HttpContext.Current.Response.OutputStream);
pdfwriter.PageEvent = new Footer();
pdfwriter.PageEvent = new Header();
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
HttpContext.Current.Response.Write(pdfDoc);
HttpContext.Current.Response.End();
我在我的应用程序中使用iTextSharp、C#和Asp.net技术。
OnStartPage
中添加内容是不被鼓励的。您应该使用OnEndPage
。HTMLWorker
已经过时。您应该使用XMLWorker
。您为什么不在new Document
中从一开始就设置最终页面大小,而是分别设置呢?请提供一个样例 PDF 输出。 - mklOnEndPage
来设置页眉吗?我从各种教程的代码片段中编译了它。请帮帮我,我已经提供了我的 PDF 文件头的 3 页截图。 - divinediuOnEndPage
吗?是的,对于所有这样的内容操作,包括页眉、页脚、背景图像等等。我已经提供了我的 PDF 页眉的截图,它们看起来像你的new Document
的顶部和底部边距参数太小了。 - mkl