Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set custom page size with Ghostscript

Tags:

I have scanned some materials at 600 dpi, ~ 9.36x12.67 inches and prepared in PostScript (PS) format.

Now when I try to transform PS to PDF with Ghostscript (GS), I get clipped output, as I assume GS's default page size is set to A4. I found available templates for GS here: http://www.ghostscript.com/doc/9.06/Use.htm#Known_paper_sizes but none matches closely to dimensions of my PS files, so:

Can I instruct GS to output custom size, and if so how?

-sPAPERSIZE instruction seem to accept only predefined templates name, as in linked documentation.

like image 967
theta Avatar asked Oct 01 '12 14:10

theta


2 Answers

You can set the used page size with -gNNNNxMMMM where NNMN is the width in pixels at 720 dpi (720 pixels == 1 inch), and MMMM is the height in pixels at 720 dpi.

Or you can set the custom size in PostScript points (72 points == 1 inch) with -dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h.

If I'm not wrong, 9.36 inch ≈= 674 points and 12.67 inch ≈= 912 points.

You'll also have to apply -dPDFFitPage in order to fit your input onto the page.

So you could use either

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

or

gs                   \    -o output.pdf     \    -sDEVICE=pdfwrite \    -r600             \    -g8112x7596       \    -dPDFFitPage      \     input.ps 
like image 190
Kurt Pfeifle Avatar answered Sep 20 '22 04:09

Kurt Pfeifle


What worked for me:

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

The 4308x6066 is the number of pixels, the -r720 is the number of pixels per inch.

So here we have 720dpi, so for instance fo 5 inches, this will be 3600 pixels.

like image 22
Dorian Avatar answered Sep 19 '22 04:09

Dorian