2009-05-04 12 views
6

J'ai un fichier PDF d'entrée (habituellement, mais pas toujours généré par pdfTeX), que je veux convertir en un PDF de sortie, qui est visuellement équivalent (peu importe la résolution), il a les mêmes métadonnées (Unicode text info, liens hypertexte, contours etc.), mais la taille du fichier est aussi petite que possible.Comment optimiser la taille du fichier PDF?

Je sais que sur les méthodes suivantes:

  • java -cp Multivalent.jar tool.pdf.Compress input.pdf (de http://multivalent.sourceforge.net/). Cette opération recompacte tous les flux, supprime les objets inutilisés, unifie les objets équivalents, comprime les espaces, supprime les valeurs par défaut, compresse la table de références croisées. Recompression d'images appropriées avec jbig2 et PNGOUT.
  • Recoder les polices Type1 comme polices CFF.
  • Unification des images équivalentes.
  • Unification des sous-ensembles de la même police en un sous-ensemble plus important.
  • Retirer les formulaires remplissables.
  • Lors de la distillation ou de la conversion (par exemple gs -sDEVICE=pdfwrite), assurez-vous qu'il ne dégrade pas la qualité de l'image et n'augmente pas (!) Les tailles d'image.

Je sais sur les techniques suivantes, mais ils ne sont pas applicables dans mon cas, puisque je dispose déjà d'un PDF:

  • Utilisez plus petits et/ou moins polices.
  • Utilisez des images vectorielles à la place des images bitmap.

Avez-vous d'autres idées pour optimiser le format PDF?

+2

Le multivalent actuel: http://downloads.sourceforge.net/project/multivalent/multivalent/Release20091027/Multivalent20091027.jar est maintenant absent de la classe tool.pdf.Compress. Ceci est décrit ici: http://sourceforge.net/p/multivalent/discussion/252478/thread/e7850c31/?limit=50#a96d. Connaissez-vous un bon outil de remplacement? –

+0

Les anciennes versions multivalentes existent dans Arch Linux: https://aur.archlinux.org/packages/multivalent-pdf-tools/ –

Répondre

10

Optimize fichiers PDF

Évitez Refried Graphics

Pour les graphiques qui doivent être insérés sous forme de bitmaps, de les préparer pour la compressibilité maximale et les dimensions minimales. Utilisez les meilleures images que vous pouvez à la résolution de sortie du PDF. L'insertion de fichiers JPEG compressés dans des fichiers PDF et leur distillation peuvent recomprimer les fichiers JPEG, ce qui peut créer des artefacts visibles. Utilisez des images et du texte en noir et blanc au lieu d'images couleur pour permettre l'utilisation du nouveau standard JBIG2 qui excelle dans la compression monochromatique. Veillez à désactiver les miniatures lors de l'enregistrement de fichiers PDF pour le Web. Utiliser les graphiques vectoriels

Utilisez des graphiques vectoriels dans la mesure du possible pour les images qui seraient normalement transformées en GIF. Les images vectorielles s'adaptent parfaitement, ont l'air merveilleuses, et leurs formules mathématiques occupent généralement moins d'espace que les graphiques bitmap qui décrivent chaque pixel (bien qu'il y ait des cas où les graphiques bitmap sont plus petits que les graphiques vectoriels). Vous pouvez également compresser les données d'image vectorielle à l'aide de la compression ZIP, qui est intégrée au format PDF. Les versions 5 et 6 d'Acrobat Reader prennent également en charge la norme SVG. Réduire les polices

La façon dont vous utilisez les polices, en particulier dans les petits fichiers PDF, peut avoir un impact significatif sur la taille du fichier. Minimisez le nombre de polices que vous utilisez dans vos documents pour minimiser leur impact sur la taille du fichier. Chaque police entièrement intégrée supplémentaire peut facilement prendre 40 Ko dans la taille du fichier, ce qui explique pourquoi la plupart des auteurs créent des polices «sous-définies» qui n'incluent que les glyphes réellement utilisés.Aplatissez les formes grasses

Les formulaires Acrobat peuvent prendre beaucoup de place dans vos fichiers PDF. Nouveauté dans Acrobat 8 ​​Pro, vous pouvez aplatir les champs de formulaire dans la boîte de dialogue Avancé -> Optimiseur PDF -> Supprimer les objets. L'aplatissement des formulaires rend les champs de formulaire inutilisables et les données de formulaire fusionnées avec la page. Vous pouvez également utiliser PDF Enhancer d'Apago pour réduire les formulaires de 50% en supprimant les informations présentes dans le fichier mais jamais réellement utilisées. Vous pouvez également combiner un PDF refried avec les anciennes pages de formulaire pour créer un fichier PDF hybride dans Acrobat (voir la section "PDF Refried" ci-dessous).

voir article

+0

+1 vote. Merci pour le lien et l'extrait. Bien que cela ne m'aide pas à rendre mes fichiers PDF encore plus petits (toutes les techniques mentionnées sont en cours d'utilisation ou ne s'appliquent pas à mon cas), cela donne un bon aperçu. – pts

4

De PDF version de la spécification 1.5, il y a deux nouvelles méthodes de compression, flux d'objets et flux de références croisées.

Vous mentionnez que l'outil de compression Multivalent.jar compresse la table de références croisées. Cela signifie généralement que la table de références croisées est convertie en un flux, puis compressée.

Le format de ce flux de référence croisée n'est pas fixe. Vous pouvez changer la taille de bit des trois "colonnes" de données. Il est également possible de pré-traiter les données de flux à l'aide d'une fonction de prédiction qui améliorera le niveau de compression des données. Si vous regardez dans le PDF avec un éditeur de texte, vous pouvez trouver l'entrée /Predictor dans le dictionnaire de flux de références croisées pour vérifier si l'outil que vous utilisez tire parti de cette fonctionnalité.

L'utilisation d'un prédicteur sur la compression peut également s'avérer utile pour les images.

Le deuxième type de compression proposé est l'utilisation de flux d'objets. Souvent dans un fichier PDF, vous avez de nombreux objets similaires. Ceux-ci peuvent maintenant être combinés en un seul objet, puis compressés. La documentation de l'outil de compression multivalent mentionne que les flux d'objets sont utilisés mais n'a pas beaucoup de détails sur le choix réel des objets à regrouper. La compression sera meilleure si vous regroupez des objets similaires dans un flux d'objets.

Questions connexes