Ottimizzazione della struttura o ricostruzione: quale strumento scegliere?
I due programmi procedono in modi fondamentalmente diversi. Il comando QPDF di questa pagina lascia intatto il contenuto delle pagine e salva nuovamente solo gli oggetti del file nel modo più compatto possibile. Per farlo, per esempio, raggruppa gli oggetti in flussi di oggetti e ricomprime i dati Flate. Non riduce la risoluzione delle immagini e non le ricodifica in JPEG. L’ottimizzazione facoltativa delle immagini di QPDF è un passaggio separato, con perdita, che viene brevemente inquadrato nella prossima sezione. La documentazione di QPDF descrive le singole opzioni.
Ghostscript funziona diversamente. Con il dispositivo di output pdfwrite legge il PDF e genera un nuovo file dalle istruzioni di disegno di ogni pagina. Testo e grafica vettoriale vengono generalmente conservati come tali: le pagine, quindi, non vengono semplicemente trasformate in immagini. A seconda delle impostazioni, Ghostscript può però ricampionare le immagini. Inoltre, tutto ciò che non fa parte dell’aspetto visibile della pagina può cambiare. Lo spiega il manuale di Ghostscript su pdfwrite.
Alcuni programmi offrono anche un terzo metodo: generano ogni pagina come immagine. In questo modo, di norma, si perdono il testo nativo, la ricerca e gli elementi interattivi. Nessuno dei due comandi di questa pagina funziona così.
Nessuno di questi metodi garantisce un file più piccolo. Come regola pratica: se il tuo PDF è composto soprattutto da testo e grafica vettoriale, inizia con QPDF. Questo vale anche se vuoi modificare il meno possibile immagini, link o moduli. Ghostscript è un’opzione quando foto o scansioni di grandi dimensioni rappresentano la maggior parte del peso e puoi accettare una certa perdita di qualità delle immagini. La guida Comprimere PDF senza perdita di qualità spiega cosa significano concretamente senza perdita e con perdita.
I programmi con interfaccia grafica seguono gli stessi metodi. Secondo quanto dichiara, PDFsam distingue tra la sola ottimizzazione della struttura nell’edizione Basic e una funzione dedicata di compressione delle immagini nelle edizioni Visual ed Enhanced. Le guide più vecchie per script di gestori di file o interfacce che richiamano Ghostscript in background si riferiscono in parte a versioni precedenti di Ubuntu. Non seguirne quindi i passaggi di installazione senza verificarli. Secondo il produttore, PDF24 Creator è disponibile solo per Windows; non offre una versione Linux.
Se non vuoi installare nulla, puoi usare il compressore PDF nel browser. Elabora il file sul tuo dispositivo senza caricarlo. Tuttavia, non lo abbiamo testato specificamente nei browser su Linux. La guida Comprimi PDF senza caricamento spiega la differenza tra elaborazione locale nel browser e lavoro realmente offline.
Verifica la versione e scrivi in un file di output separato
Panoramica dei comandi
Seleziona uno dei sei comandi di questa guida. Vedrai il comando invariato e scoprirai a cosa serve ogni sua parte.
I comandi provengono dai manuali ufficiali di QPDF e Ghostscript. Non li abbiamo eseguiti personalmente su Ubuntu o su un'altra distribuzione. Le versioni installate sul tuo sistema possono differire da quelle descritte nella documentazione online.
Questa pagina non esegue comandi e non mostra l'output del terminale. Vedrai i messaggi del tuo sistema solo quando eseguirai tu un comando.
Mostra la versione di QPDF
Mostra la versione di QPDF installata. Verificala prima di usare gli altri comandi.
qpdf --versionPuoi anche selezionare e copiare il comando direttamente nel riquadro del codice.
Le parti del comando
qpdfProgramma- Avvia il programma da riga di comando QPDF.
--versionMostra la versione- Restituisce la versione di QPDF in uso sul tuo sistema.
Se la shell segnala che il comando non è stato trovato, probabilmente QPDF non è installato. Il nome del pacchetto e la procedura di installazione dipendono dalla tua distribuzione.
Sezione della guidaMostra la versione di Ghostscript e i dispositivi di output
Mostra la versione di Ghostscript e i dispositivi di output disponibili.
gs -hPuoi anche selezionare e copiare il comando direttamente nel riquadro del codice.
Le parti del comando
gsProgramma- Avvia Ghostscript. Su Unix il programma si chiama gs.
-hAiuto- Restituisce la versione, le opzioni, i formati, i dispositivi di output disponibili e il percorso di ricerca.
Se la shell segnala che il comando non è stato trovato, probabilmente Ghostscript non è installato. Annota la distribuzione e la versione per poter ricostruire in seguito le condizioni in cui hai ottenuto i risultati.
Sezione della guidaSalva la struttura in modo più compatto
Riscrive gli oggetti del file nel modo più compatto possibile. Le immagini non vengono né ridotte di risoluzione né ricodificate in JPEG.
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"Puoi anche selezionare e copiare il comando direttamente nel riquadro del codice.
Le parti del comando
qpdfProgramma- Avvia il programma da riga di comando QPDF.
"original.pdf"File di input- Il PDF da leggere. Il risultato viene scritto in un file separato.
--object-streams=generateGenera flussi di oggetti- Raggruppa gli oggetti idonei in flussi di oggetti e li comprime. Il file di output avrà quindi almeno la versione PDF 1.5.
--compress-streams=yComprimi i flussi- Comprime i flussi con Flate, purché non siano già compressi con un altro metodo.
--decode-level=generalizedDecomprimi i filtri generici- Decomprime i dati usando i filtri generici supportati, come LZW, Flate, ASCII85 e ASCIIHex. I dati JPEG (DCT) non vengono decompressi.
--recompress-flateRicomprimi con Flate- Decomprime i flussi Flate esistenti e li comprime nuovamente. Questo può aumentare il tempo di scrittura.
--compression-level=9Livello di compressione- Seleziona per Flate il livello zlib più alto nell'intervallo documentato da 1 a 9. I livelli più alti richiedono più tempo. Il valore non ha alcun rapporto con la qualità JPEG.
"optimiert-qpdf.pdf"File di output- Nome del nuovo file. Nei due comandi di verifica viene usato come input.
Solo il confronto del numero di Byte rivela se il nuovo file è più piccolo. Un nome di output distinto non impedisce di sovrascrivere un file esistente con lo stesso nome. Scegli quindi un nome non ancora utilizzato. Il comando non garantisce che una firma digitale rimanga valida.
Sezione della guidaRicostruisci il PDF con pdfwrite
Ghostscript legge il PDF e genera un nuovo file a partire dalle istruzioni di disegno di ogni pagina, qui usando l'impostazione predefinita /ebook.
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"Puoi anche selezionare e copiare il comando direttamente nel riquadro del codice.
Le parti del comando
gsProgramma- Avvia Ghostscript.
-dSAFERControllo degli accessi- Limita l'accesso a file e dispositivi. Dalla versione 9.50 è il comportamento predefinito. Non costituisce una garanzia generale di sicurezza.
-dBATCHTermina al completamento- Termina Ghostscript non appena i file indicati sono stati elaborati, anziché passare alla modalità interattiva.
-dNOPAUSESenza pause- Disattiva la richiesta di conferma e la pausa alla fine di ogni pagina.
-sDEVICE=pdfwriteDispositivo di output- Seleziona pdfwrite, che genera un nuovo PDF. In genere, testo e grafica vettoriale vengono mantenuti. Tutto ciò che non fa parte dell'aspetto visibile della pagina può cambiare.
-dPDFSETTINGS=/ebookImpostazione predefinita- Imposta un insieme di singoli parametri con una risoluzione media delle immagini. Il nome descrive una destinazione d'uso, non un livello di qualità né una riduzione garantita.
-sOutputFile="optimiert-gs.pdf"File di output- Definisce il nome del nuovo file.
"original.pdf"File di input- Il PDF che Ghostscript legge.
I dettagli delle immagini e le funzionalità del documento possono cambiare, anche se le pagine sembrano identiche. Non sono garantite dimensioni o qualità specifiche. Verifica il file di output salvato e scegli un nome di output non ancora utilizzato.
Sezione della guidaVerifica la struttura del file di output
Verifica la sintassi del file di output salvato. Per il risultato di Ghostscript, sostituisci il nome del file.
qpdf "optimiert-qpdf.pdf" --checkPuoi anche selezionare e copiare il comando direttamente nel riquadro del codice.
Le parti del comando
qpdfProgramma- Avvia il programma da riga di comando QPDF.
"optimiert-qpdf.pdf"File da verificare- Il file di output del comando QPDF salvato in precedenza.
--checkVerifica la struttura- Verifica la struttura, la crittografia, la linearizzazione e la codifica dei flussi.
Il codice di uscita 0 indica una verifica senza errori, 2 indica errori, 3 indica avvisi. La verifica riguarda solo la struttura del file. Non indica se l'aspetto è corretto, se moduli e collegamenti funzionano o se il file è sicuro.
Sezione della guidaRestituisci il numero di pagine
Restituisce il numero di pagine del file di output salvato. Esegui nuovamente il comando con il nome dell'originale e confronta i due numeri.
qpdf "optimiert-qpdf.pdf" --show-npagesPuoi anche selezionare e copiare il comando direttamente nel riquadro del codice.
Le parti del comando
qpdfProgramma- Avvia il programma da riga di comando QPDF.
"optimiert-qpdf.pdf"File di cui contare le pagine- Il file di output del comando QPDF salvato in precedenza.
--show-npagesConta le pagine- Restituisce il numero di pagine del file indicato.
Un numero di pagine identico non significa che contenuti, immagini e funzionalità siano rimasti invariati. Controlla tu le pagine.
Sezione della guidaIl pulsante copia negli appunti il comando visualizzato solo dopo il tuo clic. Non legge gli appunti, non salva nulla e non invia nulla.
I comandi di questa pagina provengono dai manuali ufficiali di QPDF e Ghostscript. Non li abbiamo eseguiti personalmente su Ubuntu o su un’altra distribuzione: questa, quindi, non è una guida Ubuntu testata. Verifica prima quali versioni sono installate sul tuo sistema. I pacchetti della tua distribuzione possono differire dalla versione descritta nella documentazione online attuale.
Visualizza le versioni installate
qpdf --versiongs -hSe la shell segnala che un comando non è stato trovato, probabilmente il programma non è installato. Il nome del pacchetto e il modo di installarlo dipendono dalla tua distribuzione. Annota la distribuzione e le versioni per poter ricostruire in seguito come hai ottenuto un risultato.
Regole di base per ogni tentativo
- Lascia intatto l’originale. Il file di ingresso e quello di output devono sempre avere nomi diversi.
- Assegna a ogni output un nome nuovo, non ancora utilizzato, per non sovrascrivere un file precedente.
- Per ogni nuovo tentativo riparti dall’originale, non dal risultato del passaggio precedente.
- Non usare opzioni o script che sostituiscono direttamente il file di ingresso.
QPDF: ottimizza la struttura di memorizzazione
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"Il comando legge original.pdf e scrive un nuovo file chiamato optimiert-qpdf.pdf. Le opzioni fanno sì che gli oggetti vengano raggruppati in flussi di oggetti, che i flussi di dati vengano compressi e che i dati Flate vengano ricompressi al livello massimo. Non viene eseguito alcun ricampionamento delle immagini. I flussi di oggetti richiedono PDF 1.5. Se un destinatario richiede espressamente una versione PDF precedente, questo comando non è adatto senza ulteriori modifiche.
QPDF può inoltre ottimizzare le immagini e ricodificare i dati JPEG con una qualità selezionabile. L’opzione per la qualità JPEG è disponibile dalla versione 12.1. Entrambe sono operazioni con perdita di qualità e possono peggiorare ulteriormente la qualità di immagini JPEG già compresse. Usale solo se poi verifichi le immagini in modo mirato.
Ghostscript: riscrivi il PDF con una preimpostazione
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"-sDEVICE=pdfwrite seleziona l’output PDF, -sOutputFile definisce il nome del nuovo file e il file di ingresso si trova alla fine. -dBATCH e -dNOPAUSE impediscono a Ghostscript di attendere input. Anche -dSAFER compare in questa forma negli esempi della guida di Ghostscript alla riga di comando. La preimpostazione /ebook è solo un punto di partenza, non un consiglio valido per ogni file.
Comprendere correttamente le preimpostazioni di Ghostscript
Con -dPDFSETTINGS selezioni un intero insieme di singoli parametri in una volta sola. Il nome di una preimpostazione descrive uno scopo d’uso. Non indica né un livello di qualità né una riduzione specifica.
Quindi /prepress offre la qualità migliore? No. Il manuale precisa espressamente che /prepress non è l’impostazione più fedele all’originale. Senza -dPDFSETTINGS, il risultato può rimanere più vicino all’originale. Inoltre, /prepress non garantisce nemmeno il file più piccolo.
I valori obiettivo di /screen e /ebook non significano che, dopo l’elaborazione, ogni immagine abbia esattamente 72 o 150 dpi. La risoluzione delle immagini sotto la soglia non viene ridotta e rimane quella originale. Questo non significa necessariamente che restino del tutto invariate, perché gli altri parametri della preimpostazione, per esempio relativi alla codifica delle immagini o ai colori, possono comunque modificarle. L’opzione -r non sostituisce la riduzione della risoluzione. Controlla solo la risoluzione quando Ghostscript deve renderizzare alcune parti come soluzione alternativa e non riduce le immagini incorporate. Secondo il manuale, spesso è meglio impostare in modo mirato singoli parametri anziché affidarsi a una preimpostazione.
Non usare la stessa preimpostazione per tutti i file. Un documento di testo, un catalogo fotografico e una scansione reagiscono in modo diverso. Per le scansioni è meglio intervenire già durante l’acquisizione. La guida Riduci le dimensioni di un PDF scansionato spiega come fare.
Verifica testo, link, moduli e firme
Il fatto che un PDF abbia lo stesso aspetto dopo la compressione non dimostra che tutto ciò che conteneva sia stato conservato. Ghostscript ricostruisce il file. Secondo la spiegazione di Ghostscript sull’ottimizzazione dei PDF, un aspetto identico può nascondere istruzioni e metadati modificati. Anche dopo QPDF, verifica le funzionalità che ti interessano:
- Seleziona e copia il testo e prova la ricerca.
- Fai clic su link e segnalibri.
- Se il file è un modulo, compila i campi e prova a salvarli.
- Controlla informazioni come titolo o autore, se il destinatario le utilizza.
- Se viene richiesto uno standard specifico come PDF/A, verificalo con uno strumento apposito. Nessuno dei comandi qui riportati garantisce il mantenimento di questa conformità.
PDF firmati digitalmente
Nessuno dei due comandi può garantirti che una firma digitale rimanga valida dopo la riscrittura. La compressione, quindi, non è un modo adatto per ridurre le dimensioni di un PDF firmato. Conserva invariato l’originale firmato. Se il documento è stato firmato da qualcun altro e ti serve una versione più piccola, procurati il file di origine non firmato oppure parlane con il firmatario. Concorda un’eventuale nuova firma con chi ha emesso il documento o con il destinatario. Trovi ulteriori informazioni nella guida Adobe alle limitazioni dei PDF firmati. Una firma visibile scansionata non è una firma digitale.
Rimuovere la protezione tramite password o le restrizioni di modifica non fa parte della riduzione delle dimensioni e qui non trovi comandi per farlo. Chiedi invece al mittente una versione adatta. Trovi altre informazioni sulla gestione di questi documenti nella guida Comprendere firme e moduli.
Confronta le dimensioni del risultato e conserva l’originale
Il fatto che un comando venga eseguito senza messaggi di errore non dice ancora nulla sul risultato. Confronta la dimensione esatta dell’originale e del file di output in byte, non solo valori arrotondati in MB. Puoi calcolare la percentuale di riduzione con il calcolatore del tasso di compressione.
Verifica la sintassi e il numero di pagine
qpdf "optimiert-qpdf.pdf" --checkQPDF segnala una verifica senza errori con il codice di ritorno 0, errori con 2 e avvertenze con 3. La verifica riguarda solo la struttura del file. Non indica se moduli, link e immagini funzionino e appaiano ancora come prima.
qpdf "optimiert-qpdf.pdf" --show-npagesControlla in un visualizzatore PDF
- Apri nuovamente il file di output salvato dalla sua cartella.
- Sfoglia tutte le pagine e confronta formato e orientamento con l’originale.
- Esamina immagini, caratteri piccoli e linee sottili a forte ingrandimento.
- Prova ricerca, link e moduli come descritto nella sezione precedente.
- Se possibile, apri il file anche in un secondo visualizzatore.
Più grande, invariato o vuoto?
Ghostscript può anche aumentare le dimensioni di un PDF. Il file viene ricostruito e codificato diversamente e le nuove istruzioni talvolta richiedono più spazio delle precedenti. Anche con QPDF il margine di riduzione è limitato se il file è già salvato in modo compatto.
Un risultato più grande o appena più piccolo può comunque essere valido. Lo dimostrano solo le stesse verifiche del file salvato previste per qualsiasi altro output, perché la dimensione da sola non dice nulla su errori o funzionalità perse. Alla fine conserva il file più adatto: spesso è semplicemente l’originale. Il caso di un output vuoto, illeggibile o danneggiato è diverso. Si tratta di un tentativo fallito, non di una compressione particolarmente elevata. Non inviare questo file, leggi i messaggi nel terminale e riparti dall’originale con un nuovo nome per l’output.
Se il PDF rimane troppo grande per il limite del destinatario, trovi i passaggi successivi nella guida Il PDF non si riduce. Conserva comunque l’originale finché la nuova versione non è stata ricevuta e accettata.