Site Tools


software:troubleshoot:ps2pdf

This is an old revision of the document!


Troubleshoot ps2pdf

This page investigates why ps2pdf under windows doesn't accept certain command line parameters like:

  • -sPAPERSIZE=a4 (Obviously you should use double quotes: “-sPAPERSIZE=a4”

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 (or specifically ps2pdf.bat) 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.

Windows NT cmd files

In the ghostscript lib directory (C:\Program Files\gs\gs8.56\lib) there are the following related files:

  • ps2pdf.bat
  • ps2pdfxx.bat

ps2pdf.bat

@echo off
@rem $Id: ps2pdf.bat 6300 2005-12-28 19:56:24Z giles $

rem Convert PostScript to PDF 1.4 (Acrobat 4-and-later compatible).
rem The default PDF compatibility level may change in the future:
rem use ps2pdf12 or ps2pdf13 if you want a specific level.

rem The current default compatibility level is PDF 1.4.
echo -dCompatibilityLevel#1.4 >_.at
goto bot

rem Pass arguments through a file to avoid overflowing the command line.
:top
echo %1 >>_.at
shift
:bot
if not %3/==/ goto top
call ps2pdfxx %1 %2
software/troubleshoot/ps2pdf.1254662274.txt.gz · Last modified: 2009/10/04 15:17 by admin