J'utilise iText pour générer un document PDF composé de plusieurs copies de presque la même information.Comment créer des documents en plusieurs exemplaires avec iText
E.g .: Une facture. Une copie est donnée au client, une autre est déposée et une troisième est donnée à un comptable pour la tenue de livres.
Toutes les copies doivent être exactement les mêmes, sauf pour un petit morceau de texte qui indique qui est la copie (Client, Comptabilité, Fichier, ...).
Il y a deux scénarios possibles (je ne sais pas si la solution est la même pour les deux):
a) Chaque copie va dans une autre page .
b) Toutes les copies va dans la même page (le papier ont des trous de coupe à separete copies).
Il y aura une classe wrapper ou helper qui utilise iText pour générer le PDF afin de pouvoir faire quelque chose comme var pdf = HelperClass.CreateDocument(DocuemntInfo info);
. Le problème des copies multiples sera résolu dans ce wrapper/helper.
Que fournit iText pour accomplir ceci? Ai-je besoin d'écrire chaque élément du document plusieurs fois dans différentes positions/pages? Ou est-ce qu'iText fournit un moyen d'écrire une copie dans le document et de la copier dans une autre position/page?
Note: C'est un projet .Net, mais je tagged la question avec Java et C# parce que ce qustion est sur la façon d'utiliser iText correctement la réponse aidera les développeurs laguage.
+1 Mais il y a quelques erreurs et méthodes manquantes donc quiconque utilisant ce code devrait être conscient de ce qui suit: 1) il faut ouvrir au document en émettant doc.open(); (après l'initialisation de l'auteur, voir http://stackoverflow.com/questions/9315698/the-document-is-not-open-error-only-in-production-with-itextsharp) et aussi le fermer à la fin en appelant doc.Close() ;, 2) au lieu de PdfWriter.createInstance() il devrait être getInstance(), 3) au lieu de PdfDirectContent, il devrait être PdfContentByte –
Ce code est en Java et iText donc quiconque utilise ce code dans C# et iTextSharp devrait notez (outre les erreurs que j'ai signalées dans le commentaire précédent): 1) que tous les noms de méthodes commencent par une majuscule dans iTextSharp, 2) "for (String stuff: extraStuff)" devrait être dans C# "foreach (String stuff dans extraStuff) ", 3) writer.getDirectContent() est dans iTextSharp une propriété (pas une méthode) nommée DirectContent –
Et c'est ce qui se passe lorsque vous écrivez du code à partir de la mémoire des gens. –