Вы создаете новый документ, используя пару Document
/ PdfWriter
, и хотите добавить некоторые украшения (будь то граница, как в вашем случае, или тексты верхнего или нижнего колонтитула, или некоторый фоновый рисунок, ...), чтобыкаждая страница.Наиболее распространенный (и обычно единственный надежный) способ сделать это - использовать события страницы, например, в вашем случае вы можете использовать этот прослушиватель событий страницы:
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."));
}
}
Результат:
![Screen shot](https://i.stack.imgur.com/aLCID.png)
Если в противном случае вы хотите добавить рамку в существующий PDF, вы делаете это, используя PdfReader
/ PdfStamper
пара, как объяснено в этом ответе .