2010-07-27 11 views
1

Ce que je fais est de générer un livret pdf à partir de la base de données. Je dois aller générer un tableau de contenu avec des numéros de page. Par exemple, il y a deux chapitres avec numéro de page comme:Générer une table de contenu en utilisant itextsharp

=============================

table Contenu

Chapitre 1 ----- 3

Chapitre 2 ----- 17

======================= ======

Le texte "Chapitre 1 -----" est un paragraphe normal. Mais le numéro de page "3" doit être produit en utilisant PdfTemplate car il ne peut être connu que plus tard. Mais le pdfTemplate est absolument positionné. Comment puis-je savoir où positionner le PdfTemplate? Ai-je raison? Comment pourrais-je comprendre cela ou devrais-je utiliser d'autres méthodes?

Répondre

1

J'ai extrait un peu de code pour vous mettre en route. Ce code vous permet de placer du texte n'importe où sur une page en utilisant x et y. Vous pouvez réellement utiliser le support de iTextSharp construit en paragraphe et de la marge, mais cela sera utile, a juste besoin converting to C#

Dim stamper As PdfStamper 
Dim templateReader As PdfReader = New PdfReader(yourFileName) 
Dim currentPage As PdfImportedPage = stamper.GetImportedPage(templateReader, 1)  
stamper.InsertPage(1, PageSize.A4) 
Dim cb As PdfContentByte = stamper.GetOverContent(1) 
cb.AddTemplate(currentPage, 0, 0) 

Regardez ce prochain bit avec chaque élément que vous voulez ajouter ..

cb.BeginText() 
cb.SetFontAndSize(bf, 12) 
cb.SetColorFill(color) 'create a color object to represent the colour you want 
cb.ShowTextAligned(1, "Content Table", x, y, 0) 'pass in the x & y of the element 
cb.EndText() 
+0

Salut Markive, Le code m'aide à mieux comprendre itextsharp. Mais je ne sais toujours pas comment le faire. Je n'ai pas de fichier original. Je réécris la question et espère qu'elle montre mieux mon problème. Je vous remercie. –

+0

Dans mon exemple oui c'est pour du texte absolument positionné. C'est plus utile si vous voulez générer une couverture à l'exécution. Quel est ce que je l'utilise pour. Je prends un PDF en couverture et j'ajoute du texte. J'ai lutté avec iTextSharp depuis des lustres mais le code ci-dessus dans mon scénario m'a permis de m'adapter pour faire tout ce que je veux. J'ai un fichier de configuration de tous les éléments que je veux mettre avec la couleur, le texte et les valeurs x & y et il crache le PDF parfait pour moi. – Markive

+0

Vous souhaitez utiliser des paragraphes pour pouvoir récupérer tout votre texte depuis votre base de données et demander à iTextSharp de faire le formatage pour vous. Essayez ce genre de chose: http://www.mikesdotnetting.com/Article/82/iTextSharp-Adding-Text-with-Chunks-Phrases-and-Paragraphs – Markive