2017-08-31 5 views
-3

J'ai un document source PDF existant/source et j'en copie des pages sélectionnées et génère un PDF de destination avec les pages sélectionnées. Chaque page dans le document existant/source est analysé dans une résolution différente et varie en taille:Meilleure pratique pour compresser le PDF généré en utilisant iText7

  1. document généré avec 4 pages => 175 kb
  2. document généré avec 4 pages => 923 kb (Je suppose que cela est en raison de la plus haute résolution de numérisation de chaque page dans le document source)

Quelle serait la meilleure pratique pour compresser ces pages? Existe-t-il un exemple de code avec compression/réduction de la taille du PDF final qui consiste en des pages copiées du document source dans une résolution différente?

Sincères salutations

+0

Les questions qui nous demandent de recommander ou de trouver un livre, un outil, une bibliothèque de logiciels, un didacticiel ou autre ressource hors site sont hors sujet pour Stack Overflow car elles ont tendance à attirer les réponses avisées et le spam. – Lexi

+0

J'ai besoin d'un exemple de code pour la compression en utilisant iText ... J'ai essayé d'écrire poliment la question :)) – dkkd

+1

Et c'est génial que tu aies suivi notre politique Be Nice ici! Malheureusement, cette communauté n'aime pas quand les gens demandent des exemples de code parce que cela tombe sous les directives hors sujet que j'ai mentionnées plus haut. Nous préférons que vous nous montriez une partie du code que vous avez essayé de mettre en œuvre, puis expliquiez ce qui ne fonctionne pas et ce pour quoi vous avez besoin d'aide. C'est beaucoup plus susceptible de vous obtenir des réponses décentes et peut-être même se débarrasser de certaines des downvotes que vous avez reçues – Lexi

Répondre

2

Si vous êtes ajouterez numérisations à un document PDF, il est logique de la taille du document résultant d'augmenter si vous utilisez une image à haute résolution. Gardez à l'esprit qu'iText est une bibliothèque pdf. Pas une bibliothèque de manipulation d'image.

Vous pouvez bien sûr utiliser le vieux Java pour essayer de compresser les images. Mais, en réalité, mettre des images numérisées dans un fichier PDF rend la vie beaucoup plus difficile. Imaginez les gens qui doivent gérer ce document après vous. Ils l'ouvrent, voient du texte, essayent de le sélectionner, et rien ne se passe.

Additionnellement, vous pouvez changer le WriterProperties lors de la création de votre PdfWriter exemple:

PdfWriter writer = new PdfWriter(dest, 
    new WriterProperties().setFullCompressionMode(true)); 

mode de compression pleine comprimera certains objets dans un flux d'objets, et il sera également compresser la table de référence croisée du PDF. Puisque la plupart des objets de votre document seront des images (qui sont déjà compressées), la compression des objets n'aura pas beaucoup d'effet, mais si vous avez un grand nombre de pages, compresser la table de références croisées peut entraîner des fichiers PDF plus petits.

+0

Bruno, merci de nous expliquer comment fonctionne la compression complète. Ma source PDF n'a pas eu beaucoup de pages/max. 10 pages et il contient un document physique numérisé à travers une autre application et je ne peux pas changer la façon dont le PDF source est généré. Bruno avait raison pour une compression complète, quand je les ai utilisés, j'ai eu une très petite taille de réduction. Aussi, j'ai pensé à mettre une compression Java régulière que vous avez suggérée, mais à la fin nous avons stocké les documents générés sur le système de fichiers et nous n'avions pas besoin de compresser les images. Merci encore une fois pour les réponses. – dkkd

+0

Vous confondez Bruno et Joris. :) –

+0

@Amedee: J'espère ne pas trop dérouter :)) – dkkd