Domanda

Ho colpire la testa contro questo senza alcun risultato.

Ho bisogno di compattare alcuni grandi file PDF da stampare su una pagina 8.5x11 pollici (lettera standard). Può ImageMagick / Ghostscript gestire questo genere di cose, o sto avendo così tanti problemi perché sto utilizzando lo strumento sbagliato per il lavoro?

Proprio basandosi su l'opzione 'ridursi alla pagina' nelle finestre di dialogo di stampa sul lato client non è un'opzione, come vorremmo per questo di essere facile da usare per gli utenti finali.

È stato utile?

Soluzione

Il problema con l'utilizzo di ImageMagick è che si sta convertendo in un formato immagine raster, aumentando la dimensione del file e qualità decrescente per eventuali elementi vettoriali sulle tue pagine.

polivalente manterrà le informazioni vettoriali del PDF. Prova:

java -cp Multivalent.jar tool.pdf.Impose -dim 1x1 -paper "8.5x11in" myFile.pdf

per creare un file di output myFile-up.pdf

Altri suggerimenti

Non vorrei usare convert. Esso utilizza Ghostscript in background, ma è molto più lento. Userei Ghostscript direttamente, dal momento che mi dà molto più controllo diretto (e anche un certo controllo sulle impostazioni che sono molto più difficili da raggiungere con convert). E per convertire a lavorare per la conversione da PDF a PDF avrete Ghostscript installato in ogni caso:

  gs \
    -o /path/to/resized.pdf \
    -sDEVICE=pdfwrite \
    -dPDFFitPage \
    -r300x300 \
    -g2550x3300 \
    /path/to/original.pdf

mogrify di ImageMagick / convertire i comandi sarà davvero fare il lavoro. Stephen Pagina aveva appena circa l'idea giusta, ma è necessario impostare il dpi del file come bene, o non sarà possibile ottenere il lavoro fatto.

Supponendo di avere un file che è 300 dpi e già le stesse proporzioni di 8,5 x 11 il comando sarà:

// 300dpi x 8.5 -2550, 300dpi x 11 -3300
convert original.pdf -density "300" -resize "2550x3300" resized.pdf

Se il rapporto di aspetto è diverso, allora avete bisogno di fare un po 'il ritaglio un po' più complicato.

L'approccio Ghostscript ha funzionato bene per me. (Ho spostato il mio file dal mio PC Windows in un computer Linux e corse lì.) Ho fatto una piccola modifica al comando Ghostscript perché il comando di Ghostscript ridimensionare sopra riempie completamente una pagina 8.5 da 11 pollici. La stampante non può stampare fino al bordo, però, così diversi milllimeters lungo ogni bordo della pagina sono stati persi. Per superare questo problema, ho scalato il mio documento PDF a 0,92 di ben 8,5 da 11 pollici. In questo modo ho visto tutto centrato sulla pagina e aveva un leggero margine. Perché 0.92 * (2550x3300) = (2346x3036), ho eseguito il seguente comando Ghostscript:

  gs -sDEVICE=pdfwrite \
     -dPDFFitPage \
     -r300x300 \
     -g2346x3036 \
     /home/user/path/original.pdf \
     -o /home/user/path/resized.pdf
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top