2017-07-11 1 views
1

J'ai ce fichier en gros caractères au format pdf qui contient 5544 pages et mesure environ 36mb. Le fichier est créé par MS Word 2010 et ne contient que du texte et un logo sur chaque lettre/document. Je l'ai divisé en 5544 fichiers et fusionné en 2770 lettres, en fonction des mots-clés. Chaque lettre est d'env. 140-145kb.Fractionner et fusionner des fichiers PDF en utilisant PDFBOX produit un fichier volumineux

Lorsque je fusionne toutes les lettres dans un nouveau fichier d'impression pdf, contenant toujours 5544 pages, la taille du fichier est augmentée à 396mb.

L'extraction, la division et la fusion de tous les textes sont effectuées avec des appels aux outils de ligne de commande Apache PDFBox de PHP, mais le résultat est le même lorsqu'il est exécuté depuis une console. Une idée de la façon de réduire la taille des fichiers et le fichier d'impression final? Il semble que PDFBox vient d'ajouter chaque lettre dans le fichier d'impression final, créant plutôt un nouveau document pdf.

C'est seulement dans la phase de test que tous les documents sont fusionnés dans le fichier d'impression final, certains des documents seront envoyés par courrier électronique.

J'ai aussi essayé Sambox (une fourchette de PDFBox) mais avec à peu près le même résultat:

pdfinfo Original.pdf Title: Printfile Author: Claus Hjort Bube Creator: Microsoft® Word 2010 Producer: Microsoft® Word 2010 CreationDate: Fri May 19 12:16:34 2017 CEST ModDate: Fri May 19 12:16:34 2017 CEST Tagged: yes UserProperties: no Suspects: no Form: none JavaScript: no Pages: 5544 Encrypted: no Page size: 595.32 x 841.92 pts (A4) Page rot: 0 File size: 36092281 bytes Optimized: no PDF version: 1.5

pdfinfo PDFBox.pdf Title: Printfile Author: Claus Hjort Bube Creator: Microsoft® Word 2010 Producer: Microsoft® Word 2010 CreationDate: Fri May 19 12:16:34 2017 CEST ModDate: Fri May 19 12:16:34 2017 CEST Tagged: no UserProperties: no Suspects: no Form: none JavaScript: no Pages: 5544 Encrypted: no Page size: 595.32 x 841.92 pts (A4) Page rot: 0 File size: 396622354 bytes Optimized: no PDF version: 1.4

pdfinfo SAMBox.pdf Creator: Sejda Console 3.2.17 Producer: SAMBox 1.1.8 (www.sejda.org) ModDate: Tue Jul 11 23:34:33 2017 CEST Tagged: no UserProperties: no Suspects: no Form: none JavaScript: no Pages: 5544 Encrypted: no Page size: 595.32 x 841.92 pts (A4) Page rot: 0 File size: 378779436 bytes Optimized: no PDF version: 1.7

+1

Cela peut effectivement se produire. Dans le fichier original, les ressources les plus probables ont été partagées, par ex. il y avait juste une copie de l'image toutes les pages mentionnées. Lorsque le fichier a été divisé, chaque fichier PDF partiel a sa propre copie de chaque ressource partagée. Ainsi, après la fusion de ces fichiers PDF partiels, chaque page possède sa propre copie de chaque ressource précédemment partagée. Cela fait exploser la taille du fichier. Malheureusement PDFBox n'a pas (encore?) Une fusion intelligente pour reconnaître les ressources identiques et les réduire en une seule copie. – mkl

+3

Ainsi, au lieu de diviser le PDF d'origine et de réassembler une sélection de pages fractionnées, vous devez toujours commencer par le fichier d'origine et le réduire en supprimant toutes les pages indésirables. – mkl

Répondre

0

Cela peut paraître triste, mais il est correct. Lors de la division, chaque fichier obtient les ressources (par exemple les polices et le logo du logo de l'entreprise) dont il a besoin. Une fois fusionnée, PDFBox ne sait pas que ces documents peuvent être identiques sur l'ensemble du document, ils sont donc beaucoup dupliqués. La seule solution que je vois pour vous serait d'utiliser l'API PDFBox java pour créer les fichiers de courrier et le fichier d'impression final en une seule étape, c'est-à-dire sans créer de fichiers uniques qui sont fusionnés.