2009-02-13 20 views
13

Mi sto battendo la testa contro questo senza alcun risultato.Utilizzo di ImageMagick o Ghostscript (o qualcosa del genere) per ridimensionare il PDF per adattarlo alla pagina?

Ho bisogno di ridurre alcuni PDF di grandi dimensioni per stampare su una pagina di 8,5x11 pollici (lettera standard). ImageMagick/Ghostscript può gestire questo genere di cose, o sto avendo così tanti problemi perché sto usando lo strumento sbagliato per il lavoro?

L'opzione "Riduci a pagina" nelle finestre di dialogo di stampa lato client non è un'opzione, poiché vorremmo che fosse facile da usare per gli utenti finali.

risposta

7

Il problema con l'utilizzo di ImageMagick è che si sta convertendo in un formato di immagine raster, aumentando le dimensioni del file e diminuendo la qualità di qualsiasi elemento vettoriale nelle pagine.

Multivalent 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

+0

Oooh, ci proverò. Grazie! – ceejayoz

+4

Risulta l'ultima versione di questo software non include gli strumenti pdf! È necessario trovare e utilizzare il file Multivalent20060102.jar. –

+1

qui: http://minus.com/lherwk1Y5TQzZ e qui: http://ge.tt/6fVll5H è possibile scaricare l'ultima versione multivalente ** con strumenti ** – Dingo

8

I comandi mogrify/convert di ImageMagick faranno davvero il lavoro. Stephen Page aveva proprio l'idea giusta, ma è necessario anche impostare il dpi del file, altrimenti non si riuscirà a completare il lavoro.

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 .

+0

Non funziona per me. Il PDF è danneggiato dopo la conversione (v. 7.0.7-Q16) – Unicco

18

non vorrei usare convert. Utilizza Ghostscript in background, ma è molto più lento. Userei Ghostscript direttamente, dato che mi dà molto più controllo diretto (e anche un certo controllo sulle impostazioni che sono molto più difficili da ottenere 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 
6

L'approccio Ghostscript ha funzionato bene per me. (Ho spostato il mio file dal mio PC Windows a un computer Linux e l'ho eseguito lì.) Ho apportato una piccola modifica al comando Ghostscript perché il comando di ridimensionamento di Ghostscript sopra riempie completamente una pagina di 8,5 x 11 pollici. Tuttavia, la mia stampante non è in grado di stampare sul bordo, pertanto sono stati persi diversi millimetri di lunghezza lungo ciascun bordo della pagina. Per superare questo problema, ho ridimensionato il mio documento PDF a 0,92 di un totale di 8,5 x 11 pollici. In quel modo ho visto tutto centrato sulla pagina e aveva un leggero margine. Perché 0,92 * (2550x3300) = (2346 x 3036), ho eseguito il seguente comando Ghostscript:

gs -sDEVICE=pdfwrite \ 
    -dPDFFitPage \ 
    -r300x300 \ 
    -g2346x3036 \ 
    /home/user/path/original.pdf \ 
    -o /home/user/path/resized.pdf