Я пытался добавить заголовок на все страницы моего PDF, используя пакет iText в .NET C #, но он не работает.
Примечание. Я использую iText версии 7
Я попробовал следующие ответы переполнения стека, они демонстрировались только для нижнего колонтитула (т. Е. END_PAGE ), а не для START_PAGE
Мой код :
class Program {
static void Main(string[] args) {
var writer = new PdfWriter("E:/pdfSample/bala.pdf");
var pdf = new PdfDocument(writer);
var document = new Document(pdf,PageSize.A4);
document.SetMargins(120,40,100,40);
// Create a PdfFont
var font = PdfFontFactory.CreateFont(StandardFonts.TIMES_ROMAN);
List list = new List();
// Add ListItem objects
list.Add(new ListItem("Never gonna give you up"))
.Add(new ListItem("Never gonna let you down"))
.Add(new ListItem("Never gonna run around and desert you"))
.Add(new ListItem("Never gonna make you cry"))
.Add(new ListItem("Never gonna say goodbye"))
.Add(new ListItem("Never gonna tell a lie and hurt you"));
// Add the list
document.Add(list);
// Add a Paragraph
document.Add(new Paragraph("iText is:").SetFont(font));
document.Add(logo);
var tree = new Image(ImageDataFactory.CreateJpeg(new Uri("E:/pdfSample/RelatednessTree.jpg")));
// document.Add(tree);
pdf.AddEventHandler(PdfDocumentEvent.START_PAGE,new Paragraph("HEADER TEXT"));
pdf.AddEventHandler(PdfDocumentEvent.END_PAGE,new Paragraph("FOOTER TEXT"));
document.Close();
}
}
public class TableFooter : IEventHandler {
private Paragraph para;
public TableFooter(Paragraph paraObj) {
para = paraObj;
}
public void HandleEvent(Event @event) {
PdfDocumentEvent docEvent = @event as PdfDocumentEvent;
PdfDocument doc = docEvent.GetDocument();
PdfPage page = docEvent.GetPage();
PdfCanvas canvas = new PdfCanvas(page.NewContentStreamBefore(),page.GetResources(),doc);
new Canvas(canvas,doc, new Rectangle(20, -20, page.GetPageSize().GetWidth() - 80,80)).Add(para);
}
}
Пожалуйста, помогите мне, как добавить Заголовок (т. е. START_PAGE ) и какая конфигурация требуется для отображения заголовка на всех страницах PDF.