PDFsharp: Y a-t-il un moyen de générer "Page X of Y" dans l'en-tête de la page?
Il semble assez simple, mais je ne peux pas trouver quelque chose comme getPageCount() de l'API. Je peux le faire pour retourner la page en cours, mais pas le nombre total de pages. Peut-être que je suis absent?
Je voudrais en quelque sorte être en mesure d'imprimer "à la Page 1 de 9' en haut de chaque page, où '1', bien sûr, le numéro de la page actuelle.
source d'informationauteur mkautzm
Vous devez vous connecter pour publier un commentaire.
Avec PDFsharp c'est à vous.
Je présume que vous utilisez MigraDoc: Avec MigraDoc vous pouvez ajouter un en-tête de page. Ajouter
paragraph.AddPageField()
pour le numéro de la page actuelle etparagraph.AddNumPagesField()
pour le nombre total de pages.De l'échantillon qui utilise AddPageField
Extrait de Code de l'échantillon:
Extrait de Code qui définit le taquet de tabulation (en supposant DIN A 4, avec un corps avec de 16 cm):
Les deux extraits pris à partir du site lié. Exemple de code est également disponible pour le téléchargement.
Assurez-vous d'inclure les
using MigraDoc.DocumentObjectModel;
déclaration de votre classe.Je sais que cette question est ancienne et a accepté de répondre, cependant, la question revient parmi les premiers lors de la recherche d'un PDFsharp solution.
Pour l'enregistrement, la réalisation de ce dans PDFsharp est facile. Le
PdfDocument
classe qui se trouve dans laPdfSharp.Pdf
espace de noms contient une collection de pages (PdfDocument.Pages
). Tout ce que vous avez à faire est de parcourir la collection et ajouter le compteur de page quelque part sur chaque page, à l'aide d'unXGraphics
objet, que vous pouvez instancier à l'aide deXGraphics.FromPdfPage(PdfPage)
.Il est intéressant de noter que si un XGraphics objet existe déjà pour une page donnée, avant d'en créer un nouveau, l'ancien doit être éliminée. Ce serait un échec: