Domanda Come posso ridurre le dimensioni del file di un file PDF scansionato?


Ho un file PDF da 72,9 MB che devo ridurre a meno di 500 KB.

Il file era un'immagine JPEG che avevo scansionato e poi convertito in pdf.


294
2018-03-16 17:12


origine


dipende da cosa consuma lo spazio ... ha bisogno di molte più informazioni. la compressione dello spazio immagine potrebbe essere d'aiuto, ma se stai provando un grande heap di heap, non funzionerà. seriamente bisogno di più informazioni. - RobotHumans
convertirlo in DjVu, cercando invece di ridurre a PDF di dimensioni impossibili (secondo fonte) - zetah
il file era un'immagine jpeg che avevo scansionato e poi convertito in pdf. - tamimym
Sembra solo aiutare un po 'la dimensione del file, ma pdfopt ha una sintassi semplice e migliora il caricamento e la velocità di rotazione delle pagine nell'era dell'iPad. :-) - Ari B. Friedman
PDF to PS non è efficace nel file PDF scansionato, provo a convertire 56 MB pdf in file ps ma il file ps converta in 1,3 GB e ancora ps2pdf viene convertito in 45 MB file


risposte:


aking1012 ha ragione. Con più informazioni riguardanti possibili immagini incorporate, collegamenti ipertestuali ecc. Sarebbe molto più facile rispondere a questa domanda!

Ecco un paio di soluzioni per script e da riga di comando. Usa come meglio credi.


119
2018-03-16 17:28



Grazie mille per i tuoi suggerimenti, la shell ghostscript ha funzionato a meraviglia e l'ha ridotta a 460KB :) - tamimym
Questo non è necessariamente vero. Se il contenuto è passato da un'immagine a un testo, è più che accettabile. [Questo presuppone che il testo sia accuratamente inciso] - monksy
Ti raccomando lo script shrinkpdf.sh, puoi personalizzare il codice per usare il valore ppi che vuoi (72 di default) e raggiungere esattamente il filesize necessario per sacrificare la minima qualità. Questo mi ha permesso di caricare un documento scansionato di 11 MB con un max. dimensione di 3 MB senza perdere molta qualità. - Severo Raz
shrinkpdf funziona alla grande! - AmanicA
Il primo collegamento, con l'impostazione "/ ebook", ha ridotto un file scansionato di 19 MB a 4,2 MB e il testo scansionato rimane leggibile. - dremodaris


Utilizza il seguente ghostscript comando:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
  • -dPDFSETTINGS=/screen qualità inferiore, dimensioni ridotte. (72 dpi)
  • -dPDFSETTINGS=/ebook per una migliore qualità, ma pdf leggermente più grandi. (150 dpi)
  • -dPDFSETTINGS=/prepress uscita simile all'impostazione "Prepress ottimizzata" di Acrobat Distiller (300 dpi)
  • -dPDFSETTINGS=/printer seleziona un output simile all'impostazione "Print Optimized" di Acrobat Distiller (300 dpi)
  • -dPDFSETTINGS=/default seleziona l'output destinato a essere utile in un'ampia varietà di usi, possibilmente a spese di un file di output più grande

406
2018-02-15 13:53



Si può anche fare uno script Nautilus per accedere a questa funzione per ogni file. - Sina
Questa dovrebbe essere la risposta accettata. ghostscript è il Implementazione di PDF, XPS e PS per Unix e può fare praticamente tutto offrendo la migliore qualità ... - dom0
@ Sina: c'è in realtà uno script Nautilus con una semplice GUI basata su Zenity che utilizza questo comando gs con tutte le sue opzioni di livello di qualità: launchpad.net/compress-pdf - Sadi
Questa è la risposta giusta per questa domanda (comprimendo un pdf che è per lo più dati bitmap). Ho trovato che il screenl'impostazione era troppo bassa qualità per me, ma ebook ha funzionato bene, tagliando un PDF basato su scansione a 33 Mb fino a 3,6 Mb e mantenendolo molto leggibile. Altre opzioni per il -dPDFSETTINGS l'opzione è elencata qui: milan.kupcevic.net/ghostscript-ps-pdfe potrebbe essere una buona idea includerli in questa risposta. - naught101
gs parametri di configurazione disponibili: ghostscript.com/doc/current/Ps2pdf.htm - Antonios Hadjigeorgalis


Il mio modo preferito per farlo è convertire il pdf in ps e viceversa. Tuttavia, non sempre funziona, ma quando funziona i risultati sono buoni:

ps2pdf input.pdf output.pdf

Anche questo funziona direttamente sui pdf, come suggerito nei commenti.


123
2018-01-16 09:18



Questo è un modo molto semplice ed efficace per farlo. Sono stato sorpreso di vedere quanto questo metodo comprimesse i file. Grazie! - Gabriel
Nonostante questo approccio sia diventato la mia soluzione preferita per comprimere i file pdf, interrompe i collegamenti url che il documento può avere (cosa che non succede con l'approccio di @Michael D). A parte questo, la bellezza è tutto ciò che posso pensare di eseguire questo frammento! (: - Rubens
@Rubens Ah. Non sapeva del fatto che rompe i collegamenti url. Grazie per averlo aggiunto. - don.joey
Questo aggira la protezione della password ... basta dire - jojo
ps2pdf prenderà i pdf come input, quindi puoi farlo in un solo passaggio: ps2pdf intput.pdf output.pdf - frabjous


Se hai un pdf con immagini scannerizzate, Puoi usare convert creare un pdf con compressione jpeg (Puoi usare questo metodo su qualsiasi pdf, ma perderai tutte le informazioni di testo).

Per esempio:

convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf

Regolare densità (ad esempio 100x100) e qualità alle tue esigenze.

A seconda del tuo input jpeg compressione potrebbe non essere la scelta migliore a causa di artefatti da compressione. È possibile scegliere tra BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE o Zip come metodi di compressione alternativi (alcuni consentono solo immagini b / n). Per dettagli vedi Qui.

Sono stato in grado di ottenere ottimi rapporti di compressione per i documenti scansionati / fotografati (a seconda delle impostazioni). A seconda dell'origine del documento, è possibile ridurre la profondità del colore (-depth discussione).


105
2018-05-19 17:39



Per un documento scansionato in cui il testo è ciò che ti interessa piuttosto che le immagini e la profondità di conservazione non è un problema, la compressione jpeg non è una buona idea perché gli artefatti tendono ad essere estremamente evidenti. Se usi pdfimages input.pdf pages per estrarre i file pbm, allora puoi fare qualcosa come: for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf. Ogni OCR andrà perso, quindi di solito lo faccio pdfsandwich output.pdf, che sembra ridurre ulteriormente le dimensioni del file. - Brian Z
@BrianZ sicuramente la compressione jpeg non è sempre la scelta migliore, ma per me è stato l'approccio migliore per i documenti di tipo misto. Ho aggiunto alcune informazioni su altri metodi di compressione alla risposta. - someonr
Questo metodo in definitiva utilizza gs dietro le quinte. - alfC
Ho dovuto usare il doppio trattino per le opzioni per eseguire il comando --density --quality --compress vs -density -quality -compress. - Rotareti
Se la qaulità dell'immagine non è la preoccupazione più alta (e vuoi solo ottenere quel piccolo allegato e-mail abbastanza piccolo da essere inviato) si potrebbe aggiungere -resize 50% Inoltre, modifica la percentuale in base alla quantità di DPI utilizzata durante la scansione - chrki


Avevo bisogno di ridimensionare un PDF che contenesse scansioni a colori di un documento. Ciascuna delle mie pagine era un'immagine a colori per quanto riguardava il file. Erano immagini di pagine contenenti testo e immagini, ma sono state create mediante la scansione su un'immagine.

Ho usato una combinazione del comando ghostscript qui sotto e uno da un altro thread.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE  -dBATCH -sOutputFile=output.pdf input.pdf

Ciò ha ridotto la risoluzione dell'immagine a 150 dpi, riducendo la dimensione del file a metà. Guardando il documento, non c'era quasi nessuna perdita evidente di qualità dell'immagine. Il testo è ancora perfettamente leggibile sul mio Nexus7 2012.


30
2018-01-19 06:25



+1 per il down di campionamento delle immagini ma mantenendo il testo come vettori. Ha fatto un'enorme differenza nel lato senza rendere il mio testo pixelato. - Jason O'Neil


Ecco una sceneggiatura per riscrivere i PDF scansionati:

#!/bin/sh

gs  -q -dNOPAUSE -dBATCH -dSAFER \
    -sDEVICE=pdfwrite \
    -dCompatibilityLevel=1.3 \
    -dPDFSETTINGS=/screen \
    -dEmbedAllFonts=true \
    -dSubsetFonts=true \
    -dColorImageDownsampleType=/Bicubic \
    -dColorImageResolution=72 \
    -dGrayImageDownsampleType=/Bicubic \
    -dGrayImageResolution=72 \
    -dMonoImageDownsampleType=/Bicubic \
    -dMonoImageResolution=72 \
    -sOutputFile=out.pdf \
     $1

Potresti personalizzarlo un po 'per renderlo più riutilizzabile, ma se hai solo un pdf, potresti semplicemente sostituire $1 con il tuo nome file pdf e inserirlo in un terminale.


24
2017-08-31 20:29



Funziona a meraviglia, grazie Oli. Hai risposto praticamente a tutto ciò che ho chiesto qui finora :-D - Rob Cowell
Questa è una buona risposta, ma nel mio caso almeno ci vuole un lotto di tempo per convertire un file PDF piuttosto grande (> 10Mb) (più di un minuto). - Gabriel
Non sono sicuro di cosa succede, ma un PDF da 30 MB risulta in un file da 68 MB. Invece di ridurre, si ingrandisce. Stesso risultato se si utilizza direttamente ps2pdf come indicato nella prossima risposta. - Ed Villegas
@EdVillegas L'unica cosa che riesco a pensare (per spiegare questo tipo di aumento) è che le immagini hanno una risoluzione inferiore rispetto a quelle generate (72 dpi). O in qualche modo l'incorporamento dei caratteri sta succhiando tutti i caratteri. - Oli♦


Di solito uso ps2pdf per fare questo (sintassi più semplice), qualcosa del genere:

ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF

Io uso il seguente script python per ridurre la dimensione di tutti i file pdf in una directory di un server di produzione (8.04). Quindi dovrebbe funzionare.

#!/usr/bin/python

import os

for fich in os.listdir('.'):
        if fich[-3:]=="pdf":
                os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))

15
2017-09-01 07:26



Grazie per la soluzione alternativa. Ho provato prima Oli e mi ha dato il risultato di cui avevo bisogno, ma terrò questo anche per riferimento futuro. - Rob Cowell
-dPDFSETTINGS = / l'opzione stampante ridimensiona al 50%. L'ebook esegue il ridimensionamento al 90%. - neouyghur


  1. Io uso LibreOffice Draw per aprire il pdf.
  2. Quindi "esporta come pdf"
  3. E impostare "qualità compressione jpeg" su 50% e "risoluzione immagine" su 150 dpi

Questo avrà un buon risultato.


13
2018-06-14 09:59



La peggiore soluzione possibile al problema! Ha completamente incasinato il mio file! - ThatIs


Il meglio per me era

convert -compress Zip -density 150x150 input.pdf output.pdf

Altri modi:

#### gs
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE

### pdf2ps && ps2pdf
pdf2ps input.pdf output.ps && ps2pdf output.ps output.pdf

### Webservice
http://compress.smallpdf.com/de

Saluti


6
2018-04-21 11:03



buon riassunto grazie - Gery
Ottima soluzione. Facile da ricordare e ha portato il mio pdf da 32 a 3,5 MB senza perdita sensibile di leggibilità. - Immanuel Weihnachten


Ho appena incontrato questo problema me stesso. Se si utilizza la scansione semplice, selezionare la modalità testo per scansioni a bassa risoluzione e non sarà necessario preoccuparsi della roba della riga di comando. Sto solo dicendo


5
2017-07-29 21:13



Questa è l'unica risposta in questo thread che ha risolto il mio problema. Ho minimizzato Simplescan, ma è stata davvero la risposta per me, invece di combattere contro Xsane in quella che sembrava essere un'agonia senza fine. - versvs


Dato che questo link è stato il primo per me quando ho cercato su Google, ho pensato di aggiungere un'altra possibilità. Nessuna delle soluzioni di cui sopra funzionava per me su un PDF esportato da Inkscape (15 mb), ma alla fine sono riuscito a ridurlo a 1 mb aprendolo in GIMP ed esportando di nuovo come pdf.

Un'altra opzione che si avvicinava (ma il testo era un po 'confuso) era l'utilità di conversione di ImageMagick:

convert -compress Zip input.pdf output.pdf

3
2018-02-13 12:32



Immagino che questo è ciò che intendevi per "un po 'confuso", ma solo per chiarire, convert -compress Zip sembrava rasterizzare tutti i vettori. - Sparhawk