Ricette PDF e PostScript

Ruotare e scalare automaticamente un PDF per la stampa

Problema: un documento PDF in A3 orientamento landscape da mandare in stampa automaticamente su carta A4.

Il documento originale contiene le informazioni sul formato pagina (in punti) e sull'orientamento:

/Type/Page/MediaBox [0 0 842 1191]
/Rotate 90

Purtroppo il comando gs come filtro di stampa o attraverso il comando pdf2ps produce un documento PostScript che include il seguente snippet:

%%PageBoundingBox: 0 0 1191 842

cioè la pagina rimane un A4 landscape e questo crea problemi in fase di stampa.

Una soluzione è utilizzare pdftops (fornito dal pacchetto poppler-utils) che non aggiunge le informazioni sulla PageBoundingBox e quindi effettuare la rotazione/ridimensionamento con epsffit (pacchetto psutils):

pdftops -eps document.pdf - | epsffit -m -c 0 0 595 842 > document.eps

L'intero documento originale viene incapsulato e ridimensionato in un A4, quindi è bene che sia di una singola pagina. L'opzione -m seleziona l'orientamento più conveniente.

Shift di una pagina PostScript

Una stampa preparata con gs a partire da un file PostScript può essere shiftata con un opportuno comando PostScript.

Basta creare un file (ad esempio offset.ps) che indichi ad esempio 1/2 pollice (36 punti) di offset verso sinistra e 1 pollice (72 punti) verso il basso:

<</PageOffset [-36 72]>> setpagedevice

quindi creare la pagina per la stampa con:

gs -dNOPAUSE -dQUIET -sDEVICE=laserjet -r600x600 -sOutputFile=file.pcl offset.ps file.ps -c quit
doc/appunti/prog/pdf.txt · Last modified: 2012/06/20 17:12 by niccolo
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki