1 pièce(s) jointe(s)
[itext]problème multi-insertion page pdf dans pdf
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:
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(); |