En utilisant ImageMagick ou Ghostscript (ou quelque chose) à l'échelle PDF pour adapter la page?

StackOverflow https://stackoverflow.com/questions/547326

Question

J'ai dénigrement ma tête contre ce en vain.

Je dois réduire certains grands fichiers PDF à imprimer sur une page 8.5x11 pouces (lettre standard). Peut-ImageMagick / Ghostscript gérer ce genre de chose, ou suis-je tant de mal parce que je utilise le mauvais outil pour le travail?

Il suffit de compter sur l'option « rétrécir à la page » dans les boîtes de dialogue d'impression côté client est pas une option, nous aimerions que ce soit facile à utiliser pour les utilisateurs finaux.

Était-ce utile?

La solution

Le problème avec l'utilisation ImageMagick est que vous convertissez à un format d'image raster, l'augmentation de la taille du fichier et diminution de la qualité pour tous les éléments vectoriels sur vos pages.

multivalent conservera les informations vectorielles du PDF. Essayez:

java -cp Multivalent.jar tool.pdf.Impose -dim 1x1 -paper "8.5x11in" myFile.pdf

pour créer un fichier de sortie myFile-up.pdf

Autres conseils

Je ne voudrais pas utiliser convert. Il utilise Ghostscript en arrière-plan, mais il est beaucoup plus lent. J'utilise Ghostscript directement, car il me donne un contrôle beaucoup plus direct (et un certain contrôle sur les paramètres qui sont beaucoup plus difficiles à réaliser avec convert). Et pour convertir à travailler pour la conversion PDF-to-PDF que vous aurez installé Ghostscript de toute façon:

  gs \
    -o /path/to/resized.pdf \
    -sDEVICE=pdfwrite \
    -dPDFFitPage \
    -r300x300 \
    -g2550x3300 \
    /path/to/original.pdf

Le mogrify de ImageMagick / convertir les commandes vont en effet faire le travail. Stephen page avait à peu près la bonne idée, mais vous avez besoin de régler le dpi du fichier ainsi, ou vous ne serez pas le travail.

En supposant que vous avez un fichier qui est de 300 dpi et déjà le même rapport d'aspect que 8,5 x 11 la commande serait:

// 300dpi x 8.5 -2550, 300dpi x 11 -3300
convert original.pdf -density "300" -resize "2550x3300" resized.pdf

Si le rapport d'aspect est différent, alors vous devez faire un recadrage légèrement plus délicat.

L'approche Ghostscript a bien fonctionné pour moi. (Je me suis déplacé mon dossier de mon PC sous Windows à un ordinateur Linux et il a couru là-bas.) J'ai fait un petit changement à la commande Ghostscript car la commande redimensionne Ghostscript ci-dessus remplit complètement 8,5 par page 11 pouces. Mon imprimante ne peut pas imprimer sur le bord, bien que, si plusieurs milllimeters le long de chaque bord de la page ont été perdus. Pour remédier à ce problème, j'escaladé mon document PDF à 0,92 d'un plein 8.5 de 11 pouces. De cette façon, j'ai vu tout centré sur la page et avait une légère marge. Parce que 0,92 * (2550x3300) = (2346x3036), je courais la commande Ghostscript suivante:

  gs -sDEVICE=pdfwrite \
     -dPDFFitPage \
     -r300x300 \
     -g2346x3036 \
     /home/user/path/original.pdf \
     -o /home/user/path/resized.pdf
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top