Ich habe 3 verschiedene Möglichkeiten ausprobiert, um die Seitenzahlen anzuzeigen, der Inhalt von OnCloseDocument
wird auf der Seite nicht angezeigt, keine davon hat funktioniert.
Meine Absicht ist es, Seitenzahlen wie folgt anzuzeigen:
1 von 10
2 von 10
..............
............
10 von 10 auf jeder Seite
Ich weiß, wie man das anzeigt:
1
2
3
4
....
10
aber ich weiß nicht, wie man die Gesamtanzahl der Seiten anzeigt
Ich verwende OnCloseDocument, um die Anzahl der Seiten anzuzeigen, aber der Inhalt wird nicht angezeigt.
public class MyPdfPageEventHelpPageNo : iTextSharp.text.pdf.PdfPageEventHelper
{
protected PdfTemplate total;
protected BaseFont helv;
private bool settingFont = false;
public override void OnOpenDocument(PdfWriter writer, Document document)
{
template= writer.DirectContent.CreateTemplate(100, 100);
bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
}
public override void OnCloseDocument(PdfWriter writer, Document document)
{
//siehe unten
}
1. WEG:
public override void OnCloseDocument(PdfWriter writer, Document document)
{
//Ich erstelle eine Tabelle mit einer Spalte wie unten.
PdfPTable pageNumber2 = new PdfPTable(1);
pageNumber2.TotalWidth = 50;
pageNumber2.HorizontalAlignment = Element.ALIGN_RIGHT;
pageNumber2.AddCell(BuildTable2RightCells("Seite " + writer.PageNumber));
pageNumber.AddCell(BuildTable2LeftCells(writer.PageCount));
pageNumber2.WriteSelectedRows(0, -1, 500,
(document.PageSize.GetBottom(140)), cb);
}
2. WEG:
public override void OnCloseDocument(PdfWriter writer, Document document)
{
ColumnText.ShowTextAligned(template,Element.ALIGN_CENTER,new
Phrase(writer.PageNumber.ToString()), 500, 140, 0);
}
3. WEG:
public override void OnCloseDocument(PdfWriter writer, Document document)
{
template.BeginText();
template.SetFontAndSize(bf, 8);
template.SetTextMatrix(500, 140);
template.ShowText(Convert.ToString((writer.PageNumber - 1)));
template.EndText();
}
Mache ich etwas falsch?