Domanda Come convertire PDF in immagine?


Ho bisogno di convertire pagine PDF in immagini. C'è un'immagine di sfondo con un po 'di testo scritto, quindi quando salvi questo come immagine viene salvata solo l'immagine di sfondo.

Esiste un software disponibile per lo stesso in modo che la pagina completa possa essere convertita in immagine?


247
2018-06-23 10:16


origine


Apparentemente è anche possibile con inkscape: stackoverflow.com/a/15484727/32453 - rogerdpack


risposte:


  1. Installare ImageMagick.

  2. Utilizzando un terminale in cui si trova il PDF:

    • Per il documento completo:

      convert -density 150 input.pdf -quality 90 output.png
      
    • Per una singola pagina:

      convert -density 150 input.pdf[666] -quality 90 output.png
      

Per cui:

  • PNG, JPG o (praticamente) qualsiasi altro formato di immagine può essere scelto.

  • -density xxx imposterà il DPI a xxx (comuni sono 150 e 300).

  • -quality xxx imposterà la compressione a xxx per file PNG, JPG e file MIFF (100 significa nessuna compressione).

  • [666] convertirà solo la 667 ° pagina in PNG (numerazione basata su zero così [0] è la prima pagina).

  • Tutte le altre opzioni (come il taglio, la scala di grigi, ecc.) Possono essere visualizzate sul sito Web di Immagine magica.


235
2018-06-23 10:25



La risposta così com'è funziona ma la risoluzione è molto scarsa. Pertanto non al momento una risposta che è utile. Forse se convert ha alcuni parametri che possono essere specificati, questo potrebbe cambiare. - Elijah Lynn
Questa risposta è di qualità molto più elevata askubuntu.com/a/50180/11929 - Elijah Lynn
È possibile modificare la densità aggiungendo il -density 300 parametro - OHLÁLÁ
L'immagine nella tua risposta è rotta. Forse dovresti aggiornarlo. - Petr R.
Quindi qualcuno può confermare che specificare la densità lo rende "buono" come le altre risposte qui o no? Inoltre, come nota per i follower, ImageMagick chiama "ghostscript" per convertire effettivamente da pdf a png ex: gs -q NOPROMPT ...-sDEVICE=pngalpha -r150x150 -sOutputFile=/var/tmp/Yf%d -f/var/tmp/L -f/var/tmp/Fic1 e se ottieni convert: no images defined output.png significa che non hai ghostscript installato ... - rogerdpack


Puoi usare pdftoppm convertire un PDF in un PNG:

pdftoppm input.pdf outputname -png

Questo genererà ogni pagina nel PDF usando il formato outputname-01.png, con 01 essendo l'indice della pagina.

Conversione di una singola pagina del PDF

pdftoppm input.pdf outputname -png -f {page} -singlefile

Modificare {page} al numero di pagina. È indicizzato a 1, quindi -f 1 sarebbe la prima pagina

Specifica della risoluzione dell'immagine convertita

La risoluzione predefinita per questo comando è 150 DPI. Aumentandolo si avranno sia una dimensione del file più grande che maggiori dettagli.

Per aumentare la risoluzione del PDF convertito, aggiungere le opzioni -rx {resolution} e -ry {resolution}. Per esempio:

pdftoppm input.pdf outputname -png -rx 300 -ry 300

273
2018-06-23 11:07



Grazie mille. Qualità molto migliore rispetto a imagemagick o graphicsmagick! - dAnjou
pdftoppm è molto più veloce di convert - zuo
Non posso credere quanto sia stato facile! E il pacchetto è già installato di default! Lo amo. GRAZIE! - Rosamunda
Questo è davvero molto meglio di imagemagick. Imagemagick in realtà ha cambiato i colori in modo inaspettato nel mio caso! - NoBackingDown
questo è buono !, ma è un po 'più facile da scrivere -r 300 invece di specificare le risoluzioni xey indipendentemente quando si desidera impostarle sullo stesso valore. - mlc


IIRC GIMP è in grado di utilizzare i PDF, ovvero convertirli in immagini. Quindi se vuoi modificare subito le immagini, GIMP è tuo amico.


17
2018-06-23 10:29





La risposta attualmente accettata fa il lavoro ma si traduce in un output di dimensioni maggiori e soffre di perdita di qualità.

Il metodo nella risposta data Qui si traduce in un'uscita di dimensioni paragonabili all'input e che non presenta perdite di qualità.

TLDR - Uso pdfimages : pdfimages -j input.pdf output 

Citando la risposta collegata:

Non è chiaro cosa intendi per "perdita di qualità". Questo potrebbe significare molto   di cose diverse. Potresti postare alcuni esempi per illustrare?   Forse tagliare la stessa sezione dalla scarsa qualità e buona qualità   versioni (come un PNG per evitare ulteriori perdite di qualità).

Forse hai bisogno di usare -density per fare la conversione ad un livello più alto   dpi:

convert -density 300 file.pdf page_%04d.jpg

(Puoi anteporre -units PixelsPerInch o -units PixelsPerCentimeter se necessario. La mia copia è impostata su ppi.)

Aggiornare:  Come hai sottolineato, gscan2pdf (il modo in cui lo stai usando) è solo un involucro per pdfimages (a partire dal Poppler). pdfimages   non fa la stessa cosa che convert quando viene fornito un PDF come   ingresso.

convert prende il PDF, lo rende con una certa risoluzione e usa il   bitmap risultante come immagine di origine.

pdfimages guarda attraverso il PDF per immagini bitmap incorporate e   esporta ciascuno in un file. Ignora semplicemente qualsiasi testo o vettore   disegno di comandi nel PDF.

Di conseguenza, se quello che hai è un PDF che è solo un involucro intorno a   serie di bitmap, pdfimages farà un lavoro molto migliore di estrazione   loro, perché ti dà i dati grezzi alla sua dimensione originale. tu   probabilmente anche voler usare il -j opzione a pdfimages, perché a   PDF può contenere dati JPEG grezzi. Di default, pdfimages convertiti   tutto in formato PNM e la conversione di JPEG> PPM> JPEG è una perdita   processi.

Allora prova

pdfimages -j file.pdf page

Potresti o meno doverlo seguire con a convert a .jpg passo   (a seconda del formato bitmap utilizzato dal PDF).

Ho provato questo comando su un PDF che mi ero fatto da una sequenza   di immagini JPEG. I file JPEG estratti erano identici a byte per byte   le immagini di origine. Non puoi ottenere una qualità superiore a quella.


9
2018-03-12 13:14





Se i tuoi PDF sono scansionati, le immagini sono già memorizzate come parte del pdf. dovrai semplicemente estrarli con pdfimages:

pdfimages my-file.pdf prefix 

6
2017-09-18 10:14



Questa è la soluzione perfetta per i PDF scansionati, in quanto con questo comando è possibile estrarre i jpg originali e senza ulteriori ricompressioni. - Jose Gómez


Per ottenere una singola pagina da gm convert, aggiungi [N] (con N il numero di pagina che inizia da 0) al nome del PDF, cioè gm convert foo.pdf[11] out.png per ottenere la dodicesima pagina dal PDF.

Per pdftoppm uso -f N -singlefile, dove N è il numero di pagina che inizia a 1, cioè pdftoppm -f 12 -singlefile foo.pdf out per lo stesso risultato. Sembra sempre aggiungere ".png" al nome file di output e non c'è modo di fermarlo.


3
2018-04-02 21:44





Puoi usare convertire e specificare una densità più alta usando -density opzione.

per esempio. convert -d 300 foo.pdf bar.png


2
2017-07-24 02:23



puoi spiegare di più su cos'è la densità e cosa può fare? - Ten-Coin
@AgentCool Specifica la densità dell'immagine orizzontale e verticale (in ppi). - Arjun


Se si desidera convertire solo una pagina specifica di un PDF in un PNG, è possibile reindirizzare pdftk a convert (descritto sopra) come questo:

pdftk document.pdf cat 12 output - | convert - document-page-12.png

1
2017-11-06 05:11