Convertir PDF en image avec haute résolution

J'essaie d'utiliser le programme de ligne de commandeconvert pour prendre un PDF dans une image (JPEG ou PNG). Voici l'un des fichiers PDF que j'essaie de convertir.

Je veux que le programme supprime l'excès d'espace blanc et renvoie une image de qualité suffisamment élevée pour que les exposants puissent être lus facilement.

C'est ma meilleure tentative actuelle . Comme vous pouvez le voir, le trim fonctionne très bien, j'ai juste besoin d'affiner la résolution un peu. C'est la commande que je suis utilisation:

convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg

J'ai essayé de prendre les décisions conscientes suivantes:

  • redimensionner plus grand (n'a aucun effet sur la résolution)
  • rendre la qualité aussi élevée que possible
  • utiliser le -sharpen (j'ai essayé une plage de valeurs)

Toute suggestion sur l'obtention de la résolution de L'image dans le PNG/JPEG final plus élevé serait grandement appréciée!

242
demandé sur JBWhitmore 2011-07-07 05:52:36

11 réponses

Il semble que les travaux suivants:

convert           \
   -verbose       \
   -density 150   \
   -trim          \
    test.pdf      \
   -quality 100   \
   -flatten       \
   -sharpen 0x1.0 \
    24-18.jpg

Il en résulte l'image de gauche. Comparez cela à la suite de ma commande d'origine (l'image sur la droite):

  

vraiment voir et apprécier les différences entre les deux, cliquez-droit sur chaque et sélectionnez "Ouvrir l'Image dans un Nouvel Onglet...".)

Gardez également à l'esprit les faits suivants:

  • le pire, image floue sur le droit a une taille de fichier de 1.941.702 octets (1.85 Mo). Sa résolution est de 3060x3960 pixels, en utilisant un espace colorimétrique RVB 16 bits.
  • la meilleure image nette sur la gauche a une taille de fichier de 337.879 octets (330 kByte). Sa résolution est de 758x996 pixels, en utilisant un espace de couleur Gris 8 bits.

Donc, pas besoin de redimensionner; ajoutez le drapeau -density. La valeur de densité 150 est bizarre - essayer une plage de valeurs entraîne une image pire dans les deux sens!

315
répondu JBWhitmore 2017-05-24 18:21:21

Personnellement, j'aime ça.

convert -density 300 -trim test.pdf -quality 100 test.jpg

C'est un peu plus de deux fois la taille du fichier, mais ça me semble mieux.

-density 300 définit le dpi auquel le PDF est rendu.

-trim supprime tous les pixels de bord de la même couleur que les pixels d'angle.

-quality 100 définit la qualité de compression JPEG sur la plus haute qualité.

Des choses comme -sharpen ne fonctionnent pas bien avec le texte car elles annulent des choses que votre système de rendu de police a fait pour le rendre plus lisible.

Si vous en fait, vous voulez qu'il explose utilisez redimensionner ici et peut-être une valeur dpi plus grande de quelque chose comme targetDPI * scalingFactor qui rendra le PDF à la résolution/taille que vous avez l'intention.

Description des paramètres sur imagemagick.org sont ici

112
répondu majinnaibu 2017-03-02 17:54:32

Je l'ai trouvé à la fois plus rapide et plus stable lors du traitement par lots de grands fichiers PDF en PNG et JPG pour utiliser la commande gs (aka Ghostscript) sous-jacente que convert utilise.

Vous pouvez voir la commande dans la sortie de convert -verbose et il y a quelques réglages supplémentaires possibles (YMMV) qui sont difficiles / impossibles à accéder directement via convert.

Cependant, il serait plus difficile de faire votre coupe et affûtage en utilisant gs, donc, comme je l'ai dit, YMMV!

12
répondu Coder 2013-04-19 11:30:38

J'utilise pdftoppm sur la ligne de commande pour obtenir l'image initiale, généralement avec une résolution de 300 dpi, donc pdftoppm -r 300, puis utilisez convert pour faire la garniture et PNG conversion.

12
répondu Norman Ramsey 2015-05-31 17:03:20

Normalement, j'extrait l'image intégrée avec 'pdfimages' à la résolution native, puis j'utilise la conversion D'ImageMagick au format requis:

$ pdfimages -list fileName.pdf
$ pdfimages fileName.pdf fileName   # save in .ppm format
$ convert fileName-000.ppm fileName-000.png

Cela génère le meilleur et le plus petit fichier de résultats.

Remarque: Pour les images JPG intégrées avec perte, vous deviez utiliser -j:

$ pdfimages -j fileName.pdf fileName   # save in .jpg format

Avec poppler récent, vous pouvez utiliser-tout ce qui enregistre lossy en jpg et lossless en png

Sur la plate-forme little provided Win, vous avez dû télécharger un binaire récent (0.37 2015) 'poppler-util' de: http://blog.alivate.com.au/poppler-windows/

10
répondu Valerio 2018-05-01 19:45:47

Cela vous donne également de bons résultats:

exec("convert -geometry 1600x1600 -density 200x200 -quality 100 test.pdf test_image.jpg");
8
répondu Preet Sandhu 2012-05-15 12:57:09

Une autre suggestion est que vous pouvez utiliser GIMP.

Il suffit de charger le fichier PDF dans GIMP- > Enregistrer sous .xcf et puis vous pouvez faire ce que vous voulez à l'image.

2
répondu Armin Mustafa 2013-10-24 11:11:32

Le fichier PNG que vous avez joint semble vraiment flou. Dans le cas où vous devez utiliser un post-traitement supplémentaire pour chaque image que vous avez générée en tant QU'Aperçu PDF, vous diminuerez les performances de votre solution.

2JPEG {[5] } peut convertir le fichier PDF que vous avez attaché à une belle netteté JPG et recadrer les marges vides en un seul appel:

2jpeg.exe -src "C:\In\*.*" -dst "C:\Out" -oper Crop method:autocrop
0
répondu Mikhael 2014-10-13 09:18:12

Utilisateur Linux ici: j'ai essayé l'utilitaire de ligne de commande convert (pour PDF à PNG) et je n'étais pas satisfait des résultats. J'ai trouvé cela plus facile, avec un meilleur résultat:

  • extraire les pages pdf avec pdftk
    • par exemple: pdftk file.pdf cat 3 output page3.pdf
  • ouvrir (importer) Ce pdf avec GIMP
    • important: modifier l'importation Resolution à partir de 100 à 300 ou 600 pixel/in
  • dans GIMP Exporter au format PNG (modifier l'extension de fichier en .png)

Modifier:

Image ajoutée, comme demandé dans le Comments. Commande de conversion utilisée:

convert -density 300 -trim struct2vec.pdf -quality 100 struct2vec.png

GIMP : importé à 300 dpi (px / in); exporté en tant que niveau de compression PNG 3.

Je n'ai pas utilisé GIMP sur la ligne de commande (re: mon commentaire, ci-dessous).

pdf2png

entrez la description de l'image ici

0
répondu Victoria Stuart 2018-05-29 14:35:08

C'est en fait assez facile à faire avec Preview sur un mac. Tout ce que vous avez à faire est d'ouvrir le fichier dans L'aperçu et enregistrer sous (ou Exporter) un png ou jpeg, mais assurez-vous que vous utilisez au moins 300 dpi au bas de la fenêtre pour obtenir une image de haute qualité.

0
répondu Jeff White 2018-07-26 20:24:57

Utilisez cette ligne de commande:

convert -geometry 3600x3600 -density 300x300 -quality 100 TEAM\ 4.pdf team4.png

Cela devrait convertir correctement le fichier comme vous l'avez demandé.

-1
répondu Aleksandrs Bogdanovs 2015-07-21 16:40:10