- (let* ((cmd (format #f "ps2pdf -sPAPERSIZE=~a '~a'"
- (sanitize-command-option papersizename) name))
- (pdf-name (string-append (basename name ".ps") ".pdf" )))
+ (let* ((pdf-name (string-append (basename name ".ps") ".pdf" ))
+ (cmd (format #f
+ "gs\
+ -dSAFER\
+ -dCompatibilityLevel=1.4 \
+ -sPAPERSIZE=~a\
+ -q\
+ -dNOPAUSE\
+ -dBATCH\
+ -sDEVICE=pdfwrite\
+ -sOutputFile=~S\
+ -c .setpdfwrite\
+ -f ~S\
+"
+ (sanitize-command-option papersizename)
+ pdf-name
+ name)))
+ ;; The wrapper on windows cannot handle `=' signs,
+ ;; gs has a workaround with #.
+ (if (eq? PLATFORM 'windows)
+ (set! cmd (string-regexp-substitute "=" "#" cmd)))