This is an old revision of the document!
This page investigates why ps2pdf under windows doesn't accept certain command line parameters like:
When trying to convert a ps file to pdf, we should use the following command:
ps2pdf in.ps out.pdf
With the above command the papersize defaults to the system locale setting, which is letter. For a4 papersize we should use:
ps2pdf "-sPAPERSIZE=a4" in.ps out.pdf
Mind the double quotes. Curiously this command doesn't produce an a4 page size.
Because ps2pdf is just a kind of wrapper for gswin32c, trying the following command below directly with gswin32c produces an a4 page:
gswin32c "-sPAPERSIZE=a4" -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -o out.pdf -f in.ps
while:
gswin32c "-sPAPERSIZE=letter" -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -o out.pdf -f in.ps
Produces a letter sized pdf file.
To find out why ps2pdf doesn't work as expected, I try to dissect the procedure.
In the ghostscript lib directory (C:\Program Files\gs\gs8.56\lib) there are the following related files:
/* $Id: ps2pdf.cmd 6300 2005-12-28 19:56:24Z giles $ */ /* * This file is maintained by a user: if you have any questions about it, * please contact Mark Hale (mark.hale@physics.org). */ /* Convert PostScript to PDF 1.4 (Acrobat 4-and-later compatible). */ /* The PDF compatibility level may change in the future: */ /* use ps2pdf12 or ps2pdf13 if you want a specific level. */ parse arg params gs='@gsos2' inext='.ps' outext='.pdf' if params='' then call usage options='' /* extract options from command line */ i=1 param=word(params,i) do while substr(param,1,1)='-' options=options param i=i+1 param=word(params,i) end infile=param if infile='' then call usage outfile=word(params,i+1) if outfile='' then do outfile=infile''outext infile=infile''inext end gs options '-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile='outfile options '-c save pop -f' infile exit usage: say 'Usage: ps2pdf [options...] input[.ps output.pdf]' exit