Bonjour,
J'ai un pfd dans lequel je voudrais insérer une page sur deux une autre page d'un pdf d'une page. Le problème c'est qu'à partir de la 3ème page créée, il ne copie plus qu'un petit carré blanc à la place du pdf à insérer et à la place de la page du pdf d'origine.
Si j'ai un PDf de 4 pages, mon programme crée un pdf de 8 pages avec la première page d'origine / une page avec le pdf à insérer / la deuxième page d'origine / 5 petits carrées blancs à la place des 5 pages.
J'ouvre le fichier sous Acrobat Reader7 et il signale une erreur d'ouverture (14)... J'imagine donc que les petits carrées blancs sont dus à une erreur d'ouverture.
La version de itext est la 1.4.6 et le J2SDK est en 1.4.2.
Avez-vous déjà rencontré ce problème, existe-t-il une solution ?
Merci pour votre temps.
Voici quelques brides de code utilisés :
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 // Le fichier pdf final PdfReader reader = new PdfReader(repEntree+File.separator+pdfFile.getName()); Rectangle rct = reader.getPageSizeWithRotation(1); Document document = new Document(rct); PdfCopy copy = new PdfCopy(document, new FileOutputStream(repSortie+File.separator+pdfFile.getName())); document.open(); // L'image à charger Image img = Image.getInstance(imageFile.getAbsolutePath()); // La hauteur d'une page est 841 img.scaleToFit(10000, 842); // On positionne l'image depuis le coin en bas à gauche img.setAbsolutePosition(0, 0); File pdfImageFile = new File("image.pdf"); if (pdfImageFile.exists()) pdfImageFile.delete(); Document document_blancAvecImage = new Document(rct); writer_blancAvecImage = PdfWriter.getInstance(document_blancAvecImage, new FileOutputStream(pdfImageFile)); document_blancAvecImage.open(); document_blancAvecImage.add(img); document_blancAvecImage.close(); reader_blancAvecImage = new PdfReader(pdfImageFile.getName()); int nb_page = reader.getNumberOfPages(); for (int j=1; j<=nb_page; j++) { // Copie la page PdfImportedPage page = copy.getImportedPage(reader, j); copy.addPage(page); copy.addPage(pageImage); } } copy.close(); document.close();
Partager