如何使用C#在所有PDF页面中添加边框

时间:2018-10-24 09:33:53

标签: c# itext

我想使用ItextSharp在PDF的所有页面中添加边框,但它仅设置PDF字节的最后一页。

这是我的代码:

   if (Document Doc is null   || PDFWriter Writer is null)
        {
            throw new NullReferenceException();
        }

        //Add border to page
        PdfContentByte content = Writer.DirectContent;
        Rectangle rectangle = new Rectangle(Doc.PageSize);
        rectangle.Left += Doc.LeftMargin;
        rectangle.Right -= Doc.RightMargin;
        rectangle.Top -= Doc.TopMargin;
        rectangle.Bottom += Doc.BottomMargin;
        content.SetColorStroke(BaseColor.Black);
        content.Rectangle(rectangle.Left, rectangle.Bottom, rectangle.Width, rectangle.Height);
        content.Stroke();

1 个答案:

答案 0 :(得分:0)

您使用一对$account = Account::find($request->accountId); / ;创建一个新文档,并想添加一些修饰(例如您的情况下的边框,页眉或页脚文本或某些背景图形)。 ..)到每一页。执行此操作的最常见(通常是唯一可靠的方法)是使用页面事件,例如您可以使用此页面事件侦听器:

Document

像这样

PdfWriter

结果:

Screen shot


如果您不希望向现有PDF添加边框,请按照this answer中的说明使用一对public class Border : PdfPageEventHelper { public override void OnEndPage(PdfWriter Writer, Document Doc) { PdfContentByte content = Writer.DirectContent; Rectangle rectangle = new Rectangle(Doc.PageSize); rectangle.Left += Doc.LeftMargin; rectangle.Right -= Doc.RightMargin; rectangle.Top -= Doc.TopMargin; rectangle.Bottom += Doc.BottomMargin; content.SetColorStroke(BaseColor.BLACK); content.Rectangle(rectangle.Left, rectangle.Bottom, rectangle.Width, rectangle.Height); content.Stroke(); } } / using (Document document = new Document()) { PdfWriter writer = PdfWriter.GetInstance(document, DESTINATION_STREAM); writer.PageEvent = new Border(); document.Open(); for (int i = 0; i < 10; i++) { document.Add(new Paragraph("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")); } }