Ich weiß, diese Frage ist alt und hat eine akzeptierte Antwort, aber die Frage kommt unter den ersten, wenn für eine PDFsharp Lösung zu suchen.
Für die Aufzeichnung, das in PDFsharp zu erreichen, ist einfach. Die PdfDocument
-Klasse, die unter dem PdfSharp.Pdf
-Namespace gefunden wird, enthält eine Sammlung von Seiten (PdfDocument.Pages
). Sie müssen lediglich die Auflistung durchlaufen und den Seitenzähler irgendwo auf jeder Seite hinzufügen, indem Sie ein XGraphics
Objekt verwenden, das Sie unter Verwendung von XGraphics.FromPdfPage(PdfPage)
instanziieren können.
using PdfSharp.Pdf; // PdfDocument, PdfPage
using PdfSharp.Drawing; // XGraphics, XFont, XBrush, XRect
// XStringFormats
// Create a new PdfDocument.
PdfDocument document = new PdfDocument();
// Add five pages to the document.
for(int i = 0; i < 5; ++i)
document.AddPage();
// Make a font and a brush to draw the page counter.
XFont font = new XFont("Verdana", 8);
XBrush brush = XBrushes.Black;
// Add the page counter.
string noPages = document.Pages.Count.ToString();
for(int i = 0; i < document.Pages.Count; ++i)
{
PdfPage page = document.Pages[i];
// Make a layout rectangle.
XRect layoutRectangle = new XRect(0/*X*/, page.Height-font.Height/*Y*/, page.Width/*Width*/, font.Height/*Height*/);
using (XGraphics gfx = XGraphics.FromPdfPage(page))
{
gfx.DrawString(
"Page " + (i+1).ToString() + " of " + noPages,
font,
brush,
layoutRectangle,
XStringFormats.Center);
}
}
Es ist erwähnenswert, dass, wenn ein XGraphics bereits das Objekt für eine bestimmte Seite vorhanden ist, bevor Sie einen neuen zu schaffen, die alte entsorgt werden muss. Dies würde fehlschlagen:
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx1 = XGraphics.FromPage(page);
XGraphics gfx2 = XGraphics.FromPage(page);
Könnten Sie bitte einen Code anzeigen? – sarseyn