Reputation: 25631
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: [updated] https://ghostscript.readthedocs.io/en/latest/Use.html#appendix-paper-sizes-known-to-ghostscript 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.
Upvotes: 29
Views: 36807
Reputation: 2743
I am using GhostPDL 9.10 and although my paper size of 8.5x13 is listed at https://ghostscript.readthedocs.io/en/latest/Use.html#appendix-paper-sizes-known-to-ghostscript as flsa
the -sPAPERSIZE=flsa
switch had no effect, the paper size remained Letter.
The correct units for the -g5100x7800
switch matched my -r600
(not 720
); -g
works.
Upvotes: 3
Reputation: 1808
I found that gs
was clipping my output even though I had forced the page to the largest standard size, A0.
The reason turned out to be that the PostScript document sent to gs
by groff
/ grops
contained a %%DocumentMedia
specification that was overriding Ghostscript's choice.
The solution was to give groff
the command-line flag -p-P48i,48i
. The -p
tells groff
to pass the rest of the option to grops
. The -P48i,48i
to grops
sets the paper size to 48 inches by 48 inches.
Upvotes: 2
Reputation: 24009
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.
Upvotes: 3
Reputation: 90315
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
Upvotes: 37