2012-10-01 20 views
19

Ho scansionato alcuni materiali a 600 dpi, ~ 9,36x12,67 pollici e preparato in formato PostScript (PS).Come impostare la dimensione della pagina personalizzata con Ghostscript

Ora, quando provo a trasformare PS in PDF con Ghostscript (GS), ottengo l'output ritagliato, poiché presumo che la dimensione predefinita della pagina di GS sia impostata su A4. Ho trovato i modelli disponibili per GS qui: http://www.ghostscript.com/doc/9.06/Use.htm#Known_paper_sizes ma nessuno corrisponde strettamente alle dimensioni dei miei file PS, quindi:

Posso istruire GS per l'output di dimensioni personalizzate e, in caso affermativo, come?

-sPAPERSIZE le istruzioni sembrano accettare solo nomi di modelli predefiniti, come nella documentazione collegata.

risposta

25

È possibile impostare le dimensioni della pagina utilizzato con -gNNNNxMMMM dove NNMN è la larghezza in pixel a 720 dpi (720 pixel == 1 pollice), e MMMM è l'altezza in pixel a 720 dpi.

Oppure è possibile impostare la dimensione personalizzata in PostScript punti (72 punti == 1 pollice) con -dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h.

Se non sbaglio, 9.36 pollici ≈ = 674 punti e 12.67 pollici ≈ = 912 punti.

Dovrai anche applicare -dPDFFitPage per adattare l'input alla pagina.

così si potrebbe utilizzare uno

gs       \ 
    -o output.pdf   \ 
    -sDEVICE=pdfwrite  \ 
    -dDEVICEWIDTHPOINTS=674 \ 
    -dDEVICEHEIGHTPOINTS=912 \ 
    -dPDFFitPage    \ 
    input.ps 

o

gs     \ 
    -o output.pdf  \ 
    -sDEVICE=pdfwrite \ 
    -r600    \ 
    -g8112x7596  \ 
    -dPDFFitPage  \ 
    input.ps 
+0

Penso che volessi usare '-r720' per 720 dpi. Grazie comunque per la risposta – Dorian

+0

Ho un'app che utilizza Ghostscriptsharp (implementazione C#). È solo un .dll e non ha tutte le opzioni della riga di comando (che posso trovare) per le dimensioni di pagina personalizzate. Qualche idea su come implementarlo in questo wrapper? – Valien

+0

rasterizer.CustomSwitches.Add ("- dMySwitch"); – wbt11a

3

Quello che ha funzionato per me:

gs -sDEVICE=pdfwrite -r720 -g4308x6066 -dPDFFitPage -o out.pdf in.pdf

Il 4308x6066 è il numero di pixel, il -r720 è la numero di pixel per pollice.

Quindi qui abbiamo 720 dpi, quindi per esempio per 5 pollici, questo sarà 3600 pixel.

0

Sto usando GhostPDL 9.10. Sebbene il mio formato carta di 8.5x13 sia elencato allo http://ghostscript.com/doc/7.07/Use.htm#Known_paper_sizes come "flsa", l'opzione "-sPAPERSIZE = flsa" non ha avuto alcun effetto, il formato della carta è rimasto Letter. Le unità corrette per lo switch -g5100x7800 corrispondono al mio -r600 (non al 720); -g funziona.

1

Ho trovato che gs stava ritagliando la mia uscita anche se avevo forzato la pagina alla dimensione standard più grande, A0.

La ragione si è rivelata che il documento PostScript inviato a gs da groff/grops conteneva una specifica %%DocumentMedia che stava scavalcando la scelta di Ghostscript.

La soluzione era di fornire il flag della riga di comando -p-P48i,48i. Il -p dice a groff di passare il resto dell'opzione a grops. Lo -P48i,48i su grops imposta il formato carta su 48 pollici per 48 pollici.

Problemi correlati