Come rimuovere le immagini da un file PDF


13

Ho un documento PDF piuttosto grande (~ 100 MB) con molte immagini (come illustrazioni e immagini di sfondo) e mi piacerebbe avere una copia di quel pdf senza immagini ma non riesco a scoprire come Fai quello.

Non sto parlando di convertirlo solo in testo, mi piacerebbe mantenere i paragrafi / tabelle / multi-colonne come sono.

Sono a mio agio con la riga di comando e ho diversi computer con diverse distribuzioni che posso usare.


Mentre stiamo parlando di un documento di 500 pagine con più immagini su ogni pagina, sto cercando un modo automatizzato per rimuovere ogni immagine.
Ornux,

Risposte:


14
cpdf -draft original.pdf -o version_without_images.pdf

Non si trova nei repository ma è possibile trovare un download ( precompilato o di origine ) sul loro sito Web .


Manuale :

15.1 Bozza di documenti

L'opzione -draft rimuove le immagini bitmap (fotografiche) da un file, in modo che possano essere stampate con meno inchiostro. Facoltativamente, è possibile aggiungere l'opzione -boxes, riempiendo gli spazi lasciati vuoti con una casella incrociata che indica la posizione dell'immagine. Questo non è garantito per essere completamente visibile in tutti i casi (la bitmap potrebbe essere stata parzialmente coperta da oggetti vettoriali o ritagliata nell'originale). Per esempio:

 cpdf -draft -boxes in.pdf -o out.pdf

1
Questo è esattamente quello che stavo cercando. Il file di output è semplicemente perfetto. Grazie mille!
Ornux,

@Rinzwind Si noti che il link "il loro sito Web" in realtà va a un file zip.
Jos

Hmm .. per me continua ad aggiungere linee quasi casuali sopra e attraverso il testo, e la dimensione del file aumenta leggermente, piuttosto che ridursi.
Henning Koehler il

22

Anche le ultime versioni di Ghostscript possono farlo. Aggiungi il parametro -dFILTERIMAGEal tuo comando.

Ci sono anche altri due nuovi parametri che possono essere aggiunti per rimuovere selettivamente i tipi di contenuto "vector" e "text" :

  1. -dFILTERIMAGE: produce un output in cui vengono rimosse tutte le immagini raster.

  2. -dFILTERTEXT: produce un output in cui vengono rimossi tutti gli elementi di testo.

  3. -dFILTERVECTOR: produce un output in cui vengono rimossi tutti i disegni vettoriali.

È possibile combinare due di queste opzioni. (Se si combinano tutti e 3, tutte le pagine verranno oscurate ...)

Esempi

Ecco lo screenshot da una pagina PDF di esempio che contiene tutti e 3 i tipi di contenuti sopra menzionati:

Schermata della pagina PDF originale contenente gli elementi "image", "vector" e "text".
Schermata della pagina PDF originale contenente gli elementi "image", "vector" e "text".


L'esecuzione dei seguenti 6 comandi creerà tutte e 6 le possibili variazioni dei contenuti rimanenti:

 gs -o noIMG.pdf -sDEVICE = pdfwrite -dFILTERIMAGE input.pdf
 gs -o noTXT.pdf -sDEVICE = pdfwrite -dFILTERTEXT input.pdf
 gs -o noVCT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR input.pdf

 gs -o onlyIMG.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERTEXT input.pdf
 gs -o onlyTXT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf
 gs -o onlyVCT.pdf -sDEVICE = pdfwrite -dFILTERIMAGE -dFILTERTEXT input.pdf

L'immagine seguente mostra i risultati:


Riga superiore, da sinistra: tutto il "testo" rimosso; tutte le "immagini" rimosse; tutti i "vettori" rimossi. Riga in basso, da sinistra: solo "testo" mantenuto; conservate solo "immagini"; mantenuti solo i "vettori".
Riga superiore, da sinistra: tutto il "testo" rimosso;  tutte le "immagini" rimosse;  tutti i "vettori" rimossi.  Riga in basso, da sinistra: solo "testo" mantenuto;  conservate solo "immagini";  mantenuti solo i "vettori".



2

Mentre la risposta di @Rinzwind è la cosa giusta , vorrei solo commentare la soluzione "a metà strada". Normalmente puoi ridurre notevolmente le dimensioni delle immagini usando ghostscript con

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
   -dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf

... a volte è davvero utile per la correzione di bozze. La pagina di manuale per la scrittura di PDF è qui .


@KurtPfeifle imposterà /screen(tra le altre cose) la risoluzione delle immagini bitmap su 72 dpi. Quindi sì, se hai immagini con DPI più piccoli, puoi aumentare le dimensioni del file. Questo è il motivo per cui ho usato la parola "normalmente" (nel senso di "non sempre, ma abbastanza spesso"). Sentiti libero di votare tutto quello che vuoi.
Rmano,

Eseguire questo comando: for s in screen default ; do gs -o /dev/null -sDEVICE=pdfwrite -dPDFSETTINGS=/${s} -c "currentpagedevice {exch ==only ( ) print === } forall" | sort | tee ghostscript---pdfwrite-PDFSETTINGS-${s}--pagedevice-settings.txt; done. Produrrà due file di testo che puoi confrontare usando sdiff -sbB $[file1}.txt ${file2}.txt. Ora conosci esattamente e completamente tutte le diverse impostazioni introdotte da -dPDFSETTINGS=/screen!
Kurt Pfeifle,

Fatto. Non riesco ancora a vedere quale opzione può dare un file più grande /screenrispetto a /default--- 72 dpi contro 150 dpi, ottimizzato, scarta l'anteprima EPS ... ma ehi, non è un grosso problema. Le persone testeranno e sceglieranno la soluzione migliore.
Rmano,

Mi dispiace, forse ora devo scusarmi per la sfacciataggine della mia prima affermazione. Ad essere sincero, mi sembra di ricordare dalle mie precedenti indagini (qualche anno fa) che hanno /screendato risultati davvero negativi. Forse la mia memoria fallisce, o l'ho confusa /epub. Il comando che ti ho dato proveniva dalla memoria perché ero abbastanza sicuro che avrebbe mostrato cosa intendevo dire. Ora l'ho eseguito di nuovo, non vedo più quello che mi aspettavo: test più estesi che ho eseguito alcuni anni fa. Quindi molti tipi di carattere (CID? / CFF?) Hanno dimensioni rasterizzate e gonfiore dei PDF risultanti. Devo visitare nuovamente il problema, quando avrò più tempo ... :-)
Kurt Pfeifle,

0

Puoi utilizzare l'editor pdf principale, eliminare quelle immagini e salvarlo come nuovo file pdf. Puoi scaricarlo dal centro software Ubuntu.


L'ho appena installato per provare ma non vedo alcun modo automatico per farlo. Dato che si tratta di un documento di 500 pagine, non vedo la rimozione manuale come soluzione qui. Ho dimenticato qualcosa ?
Ornux,

no non ti sei perso nulla, ho pensato che le immagini fossero di grandi dimensioni, quindi vuoi rimuoverle, non ho mai pensato a così tante immagini. comunque bella domanda.
Sudheer,
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.