Converti PDF in immagine ad alta risoluzione

Sto cercando di utilizzare il programma da riga di comando convert per portare un PDF in un’immagine (JPEG o PNG). Ecco uno dei PDF che sto cercando di convertire.

Voglio che il programma ritocchi lo spazio bianco in eccesso e restituisca un’immagine di qualità sufficientemente alta che gli apici possano essere letti con facilità.

Questo è il mio miglior tentativo attuale. Come potete vedere, il taglio funziona bene, ho solo bisogno di affinare la risoluzione un po ‘. Questo è il comando che sto usando:

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

Ho provato a prendere le seguenti decisioni consapevoli:

  • ridimensionalo più grande (non ha alcun effetto sulla risoluzione)
  • rendere la qualità più alta ansible
  • usa il -sharpen (ho provato un intervallo di valori)

Qualche suggerimento per ottenere la risoluzione dell’immagine nel PNG / JPEG finale più alto sarebbe molto apprezzato!

Sembra che i seguenti lavori:

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

Ne risulta l’immagine a sinistra . Confronta questo con il risultato del mio comando originale ( l’immagine a destra ):

(Per vedere e apprezzare davvero le differenze tra i due, fai clic con il pulsante destro del mouse su ciascuno e seleziona “Apri immagine in una nuova scheda …” .)

Inoltre, tieni presente i seguenti fatti:

  • L’immagine peggiore e sfocata a destra ha una dimensione del file di 1,941.702 byte (1,85 MByte). La sua risoluzione è di 3060×3960 pixel, utilizzando lo spazio colore RGB a 16 bit.
  • L’immagine migliore e nitida a sinistra ha una dimensione del file di 337.879 byte (330 kByte). La sua risoluzione è 758×996 pixel, utilizzando lo spazio colore grigio a 8 bit.

Quindi, non c’è bisogno di ridimensionare; aggiungi il flag -density . Il valore di densità 150 è strano: provare un intervallo di valori produce un’immagine peggiore in entrambe le direzioni!

Personalmente mi piace.

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

È un po ‘più del doppio della dimensione del file, ma mi sembra migliore.

-density 300 imposta il dpi in cui viene eseguito il rendering del PDF.

-trim rimuove qualsiasi pixel del bordo dello stesso colore dei pixel angolari.

-quality 100 imposta la qualità di compressione JPEG alla massima qualità.

Cose come -sharpen non funzionano bene con il testo perché annullano le cose che il sistema di rendering dei font ha fatto per renderlo più leggibile.

Se effettivamente lo si vuole saltare, ridimensionare qui e possibilmente un valore dpi più grande di qualcosa come targetDPI * scalingFactor che renderà il PDF alla risoluzione / dimensione che si desidera.

Le descrizioni dei parametri su imagemagick.org sono qui

L’ho trovato sia più veloce che più stabile durante l’elaborazione batch di PDF di grandi dimensioni in PNG e JPG per utilizzare il comando gs sottostante (ovvero Ghostscript) che convert usi.

Puoi vedere il comando nell’output di convert -verbose e ci sono alcune modifiche aggiuntive possibili (YMMV) a cui è difficile / imansible accedere direttamente tramite convert .

Tuttavia, sarebbe più difficile fare il taglio e l’affilatura usando gs , quindi, come ho detto, YMMV!

Io uso pdftoppm sulla riga di comando per ottenere l’immagine iniziale, in genere con una risoluzione di 300 dpi, quindi pdftoppm -r 300 , quindi uso la convert per eseguire la conversione e la conversione PNG.

normalmente estraggo l’immagine incorporata con ‘pdfimages’ alla risoluzione nativa, quindi uso la conversione di ImageMagick nel formato richiesto:

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

questo genera il file di risultato migliore e più piccolo.

Nota: per le immagini con perdita di JPG incorporate, è necessario utilizzare -j:

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

Con il recente poppler puoi usare -tutti i salvataggi come jpg e lossless come png

Sulla piccola piattaforma Win fornita è stato necessario scaricare un binario recente (0.37 2015) ‘poppler-util’ da: http://blog.alivate.com.au/poppler-windows/

Ti dà anche buoni risultati:

 exec("convert -geometry 1600x1600 -density 200x200 -quality 100 test.pdf test_image.jpg"); 

Un altro suggerimento è che puoi usare GIMP.

Basta caricare il file PDF in GIMP-> salva come .xcf e quindi puoi fare tutto ciò che vuoi sull’immagine.

Utente Linux qui: ho provato l’utility della riga di comando convert (per PDF in PNG) e non ero soddisfatto dei risultati. Ho trovato questo più facile, con un risultato migliore:

  • estrai le pagine pdf con pdftk
    • ad esempio: pdftk file.pdf cat 3 output page3.pdf
  • apri (importa) quel pdf con GIMP
    • importante: cambia la Resolution importazione da 100 a 300 o 600 pixel/in
  • nell’esportazione di GIMP come PNG (cambia l’estensione del file in .png)

Modificare:

Aggiunta immagine, come richiesto nei Comments . Comando di conversione utilizzato:

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

GIMP : importato a 300 dpi (px / in); esportato come livello di compressione PNG 3.

Non ho usato GIMP sulla riga di comando (ri: il mio commento, sotto).

pdf2png

inserisci la descrizione dell'immagine qui

In realtà è piuttosto facile da fare con Anteprima su un Mac. Tutto quello che devi fare è aprire il file in Anteprima e salvare come (o esportare) un file png o jpeg ma assicurati di utilizzare almeno 300 dpi nella parte inferiore della finestra per ottenere un’immagine di alta qualità.

Il file PNG che hai allegato sembra davvero sfocato. Nel caso in cui sia necessario utilizzare un’ulteriore post-elaborazione per ciascuna immagine generata come anteprima PDF, si ridurranno le prestazioni della soluzione.

2JPEG può convertire il file PDF allegato a un bel JPG nitido e ritagliare i margini vuoti in una chiamata:

 2jpeg.exe -src "C:\In\*.*" -dst "C:\Out" -oper Crop method:autocrop 

Usa questa linea di comando:

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

Questo dovrebbe convertire correttamente il file come richiesto.