Bonjour à tous,
Merci de m'aider pour savoir comment fusionner deux fichiers PDF pour avoir un seul fichier et le sauvegarder.
cdt.
Bonjour à tous,
Merci de m'aider pour savoir comment fusionner deux fichiers PDF pour avoir un seul fichier et le sauvegarder.
cdt.
Voir du cote d'itextsharp s'il permet de récupérer toutes les données des PDFS (testé qu'en écriture, jamais en lecture)
Salut !!
Ce code va te servir, je l'ai testé et ça marche nickel, il utilise comme a mentionné Julien la bibliothèque ICSharp.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 using System; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; public class Concat { /** * @param args the command line arguments */ public static void Main(String[] args) { if (args.Length < 3) { Console.Error.WriteLine("This tools needs at least 3 parameters:\njava Concat destfile file1 file2 [file3 ...]"); } else { try { int f = 1; // we create a reader for a certain document PdfReader reader = new PdfReader(args[f]); // we retrieve the total number of pages int n = reader.NumberOfPages; Console.WriteLine("There are " + n + " pages in the original file."); // step 1: creation of a document-object Document document = new Document(reader.getPageSizeWithRotation(1)); // step 2: we create a writer that listens to the document PdfWriter writer = PdfWriter.getInstance(document, new FileStream(args[0], FileMode.Create)); // step 3: we open the document document.Open(); PdfContentByte cb = writer.DirectContent; PdfImportedPage page; int rotation; // step 4: we add content while (f < args.Length) { int i = 0; while (i < n) { i++; document.setPageSize(reader.getPageSizeWithRotation(i)); document.newPage(); page = writer.getImportedPage(reader, i); rotation = reader.getPageRotation(i); if (rotation == 90 || rotation == 270) { cb.addTemplate(page, 0, -1f, 1f, 0, 0, reader.getPageSizeWithRotation(i).Height); } else { cb.addTemplate(page, 1f, 0, 0, 1f, 0, 0); } Console.WriteLine("Processed page " + i); } f++; if (f < args.Length) { reader = new PdfReader(args[f]); // we retrieve the total number of pages n = reader.NumberOfPages; Console.WriteLine("There are " + n + " pages in the original file."); } } // step 5: we close the document document.Close(); } catch(Exception e) { Console.Error.WriteLine(e.Message); Console.Error.WriteLine(e.StackTrace); } } } }
Salut,
Il existe des librairies payantes qui font celà. Par exemple DynamicPFD
(http://www.cete.com/Products/DynamicPDFForNET/Merger/). Bien sûr ces librairies font un peu plus que simplement du merge pour justifier leur prix. Dans un cadre professionnel tu peux arriver à le faire passer (une license serveur est autour de 500$ je crois). Tu peux télécharger des version d'évaluation pour te rendre compte si celà convient à ton besoin.
Désolé pour le retard, merci pour les solutions données , je vais les tester et vous dire le résultat. A+
Bonjour,
j'ai utilisé ce code pour fusionner mes fichiers PDF et cela marche trés bien ! par contre j'ai un problème : c'est la numérotation des pages, puisque le code premet de rassembler des pdf déjà existants, j'ai un document à la fin qui commence de 1 à 5 ensuite de 1 à 10 ... (mon premier document contient 5 pages, mon deuxième 10 pages ...)
comment faire pour avoir un fichier pdf finale avec une bonne numérotation de page ? (de 1 à n en continue, n étant le nombre totale de page)
Merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager