Bonjour,

Suite à de nombreuses recherche sur internet j'ai trouvé beaucoup d'info sur le sujet qui m’intéresse, mais pas d'info poussées.

Mon projet :

J'utilise iTextSharp.

J'ai un dossier sur le serveur avec des fichiers .pdf, ceux-ci sont deux deux types : les documents (nomDocument.pdf) et les annexes (Annexe_nomDocument.pdf).
Mon code récupère tous les fichiers du dossier (Directory.GetFiles("pathDossier")) et tri en fonction des 6 premiers char. du nom du document (Substring(0, 6) == "Annexe").

J'ai donc à ce moment là deux List<string> avec les chemins des documents dans List<string> documents et les chemins des annexes dans List<string> annexe.

Je souhaiterai avoir un document final avec :
Tous les documents les uns après les autres avec ajout d'un signet (bookmark) sur la première page de chaque documents, on ajoute l'annexe à la suite du document correspondant (si pas d'annexe on ne met rien) et si il y a une annexe on ajoute un signet.
On récupère tous les signet avec leur hiérarchie pour en faire un sommaire (avec titre cliquable si c'est possible pour envoyer directement vers la page souhaité)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
public string MergePdfFiles(string outputPdf, List<string> sourcePdfs, string dossierAnnexe, string nomSession)
    {
        try
        {
            #region test
 
            //declaration d'un stream en lecture
            PdfReader reader = null;
            //instanciation d'un compteur de pages
            int n = 1;
 
            //recuperation et diférentiation des docs et annexes
            List<string> documentsName = new List<string>();
            List<string> documents = new List<string>();
            List<string> annexesName = new List<string>();
            List<string> annexes = new List<string>();
 
            foreach (string d in sourcePdfs)
            {
                string s = d.Split('\\').Last().Split('.').First();
 
                if (s.Substring(0, 6) == "Annexe")
                {
                    annexes.Add(d);
                    annexesName.Add(s);
                }
                else
                {
                    documents.Add(d);
                    documentsName.Add(s);
                }
            }
Exemple du rendu final en image.

Nom : devloppez itext.png
Affichages : 561
Taille : 97,9 Ko

Si vous avez des liens que je n'aurais pas visités ou des explications directs, je vous en remercie par avance.

Antoine.