J'ajoute Big table (environ 4 à 5 pages en pdf) en PDF. J'utilise le code ci-dessous pour ajouter une grande table (environ 4 à 5 pages en pdf) en PDF. (Code de travail Fine)Itextsharp ajouter une bordure à toutes les pages pdf
private static String CreateTableDocument()
{
Document document = new Document(PageSize.A4, 0, 0, 50, 50);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("D:\\ttt.pdf", FileMode.Create));
document.Open();
PdfContentByte cb = writer.DirectContent;
// GetTable("1") is my custom method that will return big table that cover 4 to 5 pages -- no problem here -
document.Add(GetTable("1"));
document.Close();
return "";
}
Le code ci-dessus génère le PDF avec succès, Maintenant, je souhaite ajouter une bordure à toutes les pages générées. Je recherche à travers et a constaté qu'il peut être possible d'utiliser PdfContentByte
ou Rectangle
mais il n'ajoute pas de frontière à toutes les pages ou peut-être qu'il me manque quelque chose.
Une autre option peut être possible en utilisant PageEvent
mais j'utilise l'API WEB, il est donc impossible d'implémenter un écouteur d'événement.
MISE À JOUR: Ma définition de la classe est comme ci-dessous: (est-il possible de passer outre la page de l'événement (OnEndPage))
public class PDFTaskController : ApiController
{
// here my all pdf task related methods i.e. CreateTableDocument()
}
Chaque fois que vous voulez faire quelque chose * sur toutes les pages générées * d'une manière similaire, vous utilisez généralement des événements de page (plus précisément leur 'onEndPage') pour cela. Là, vous utilisez les méthodes 'PdfContentByte' comme vous l'avez lu. – mkl
Oui. mais j'utilise l'API WEB, donc il n'est pas possible de surcharger onEndPage. –
Pourquoi l'API WEB empêche-t-elle l'utilisation de 'onEndPage'? Cela semble absurde. Avez-vous déjà essayé d'utiliser les événements de la page? –