Trovare la risoluzione dell'immagine in un file PDF?


15

Ho un problema con alcuni utenti che creano PDF molto grandi. D'altra parte, ho inviato PDF dai nostri apparecchi fax di dimensioni davvero ridotte e totalmente stampabili. La mia domanda è

  • Esiste un modo per trovare la risoluzione (DPI) del PDF. Cerco su Internet, non sono riuscito a trovare alcuna risposta. Controllato le proprietà del file, questa informazione non è stata memorizzata lì, almeno nel mio caso.
  • Qual è la risoluzione ottimale di conversione di file di testo in PDF immagine. 96 dpi, 300 dpi o più?
  • Domanda divertente. Posso ridimensionare un PDF che è stato scansionato con dpi alti in dpi più piccoli?

So che alcune risposte potrebbero non essere disponibili in quanto ho già cercato in Internet e non sono riuscito a trovare le risposte.

Nota: i miei PDF sono interamente immagini, testo in immagini. Conosco anche PrimoPDF (gratuito) con cui puoi sperimentare

Risposte:


18

la risposta di slhck e il commento di scruss meritano di essere aggiornati: pdfimagesora (almeno dalla versione 0.26.5) elenca esplicitamente x-ppie y-ppi. Ecco un esempio di output:

$ pdfimages -list example.pdf 
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    2244  2244  cmyk    4   8  image  no       215  0   301   301  418K 2.1%
   2     1 image     900   600  rgb     3   8  image  no       324  0  1524  1525 35.5K 2.2%

Su Debian (Wheezy) e Fedora (23), pdfimagesfa parte dei poppler-utilspacchetti.


I miei sono tutti vuoti
theonlygusti,

8

So che non vuoi estrarre i dati dell'immagine, ma questo è probabilmente l'unico modo per scoprire la risoluzione originale.


Su * nix, se ImageMagick identifye Xpdf sono installati 1 :

pdfimages -j test.pdf test && for file in $(find . -name "test*.jpg"); do identify "$file"; done

Dov'è il test.pdftuo PDF di input. I file di output vengono scritti test-000.jpg, test-001.jpgeccetera. Questo ti darebbe la dimensione originale di tutte le immagini contenute di quel PDF 2 .

Esempio di output per un file PDF che contiene solo un'immagine grande:

./test-000.jpg JPEG 2500x1961 2500x1961+0+0 8-bit DirectClass 1.022MB 0.000u 0:00.000

1) Windows ha anche questi, ma lo script sarebbe ovviamente diverso.
2) Notare che le immagini non contengono informazioni DPI. In parole semplici: è solo qualcosa usato per la stampa e le immagini non hanno bisogno di una misura intrinseca di DPI.


Qual è la risoluzione ottimale di conversione di file di testo in PDF immagine. 96 dpi, 300 dpi o più?

In genere, tutto ciò che si desidera stampare dovrebbe essere di 300 dpi o più. La maggior parte delle stampanti gestirà anche una risoluzione più elevata.


2
Una versione di pdfimages (forse più recente rispetto alla domanda iniziale) dal progetto poppler aggiunge la -list opzione: pdfimages -list test.pdf. Invece di produrre file, questo elenca le dimensioni e il tipo di immagine. Ancora non ti dà esplicitamente una risoluzione, ma evita di creare file di output.
scruss

1
@scruss A partire dalla versione 0.34.0, pdfimages -listfornisce esplicitamente x-ppie y-ppi, oltre a molte altre informazioni.
Skippy le Grand Gourou,

Anzi, ora lo fa, @SkippyleGrandGourou: circa cinque anni dopo la domanda. pdfimages comunque non applica quella risoluzione / dimensione alle immagini che estrae, comunque.
scruss

@scruss In realtà, sembra che la risoluzione fornita da pdfimagespossa essere alquanto off (ad esempio quando l'immagine è più grande della sua area visibile, in un PDF prodotto da scribus). (Purtroppo non ho davvero il tempo di presentare una segnalazione di bug ora.)
Skippy le Grand Gourou,

4

Per qualche ragione, l'ultima versione di pdfimages che posso aggiornare nel mio CentOS è la versione 3.04.

Quindi, non ho l'opzione -list come indicato nelle risposte precedenti. Tuttavia, l'immagine di prova creata da pdfimages basata sulla risposta di slhck contiene la risposta desiderata!

identifica -verbose test-0000.jpg | Di Più

Image: test-0000.jpg  
Format: JPEG (Joint Photographic Experts Group JFIF format)  
Mime type: image/jpeg  
Class: DirectClass  
Geometry: 6600x5100+0+0  
Resolution: 600x600  
Print size: 11x8.5

Quindi il dpi viene mostrato esplicitamente sulla sesta riga usando l'opzione -verbose nel comando identifica.

Quindi, la risposta di Slhck può essere modificata come segue.

pdfimages -j test.pdf test && per file in $ (trova. -name "test * .jpg"); identifica -verbose "$ file" | awk "NR == 6"; fatto

In un'altra nota, ho provato a correre

identifica -verbose test.pdf

Format: PDF (Portable Document Format)  
Mime type: application/pdf  
Class: DirectClass  
Geometry: 792x612+0+0  
Resolution: 72x72  
Print size: 11x8.5  

Sembra che Imagemagick assuma sempre un 72 dpi e quindi le informazioni stampate qui sembrano essere errate.


1

Un file PDF non ha una risoluzione intrinseca, ogni immagine raster al suo interno (se presente) avrà la propria risoluzione. Non conosco un modo semplice per estrarre un singolo numero per la risoluzione mediana / modale degli oggetti XO incorporati.


A proposito, non mi interessa estrarre i dati di un'immagine da pdf, voglio solo sapere qual è stata la risoluzione di scansione e se è molto alta inutilmente vorrei evitarlo in futuro.
hk_

@Dave: In realtà intendevo estrarre le informazioni sulle immagini incorporate e non estrarre l'immagine. Ma la risposta di Slhck potrebbe risolvere il tuo problema.
RedGrittyBrick,

1

Questo ha funzionato con un pdf generato da un Kyfera MPF ... Questo è probabilmente valido solo per immagini a pagina intera come scansioni.

  1. Apri il pdf con Reader
  2. File> Proprietà -Descrizione scheda -Dimensione della pagina. Il mio esempio diceva 8.5x11.0 in.

  3. Apri il pdf con un editor di testo (blocco note), cerca /widthe/height

  4. Prendi l'altezza e la larghezza e dividerli per l'altezza e la larghezza della pagina (in pollici)

Esempio:

5100/8.5=600
6600/11.0=600

Il mio PDF è stato scansionato con una risoluzione di 600x600.

È possibile saltare i primi 2 passaggi se si conosce la dimensione del documento (in genere A4 è 8,27x11,69).


0

Per rispondere al tuo secondo punto, oltre alla menzione di @slhck sulla stampante dpi, 300 dpi è anche il tipico numero minimo consigliato per OCR con dimensioni dei caratteri di 10 + pt.

Inoltre, un moderno schermo per laptop 4K da 15 "ha solo circa 280Pi, quindi se si desidera visualizzare un intero A4 sullo schermo (orizzontale) non è necessario eseguire scansioni di punti superiori a ~ 320 dpi, poiché qualsiasi documento superiore a quello sarà ridimensionato. Naturalmente, non importa se si prevede di ingrandire, potrebbe essere necessario un dpi più elevato.

Per rispondere ad altri due punti, al giorno d'oggi almeno puoi usare Acrobat Pro per controllare DPI immagine e risoluzione, e puoi anche modificarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.