ghostscript将pdf转换为pcl,方向错误

时间:2014-06-03 10:08:56

标签: windows orientation ghostscript printer-control-language

我在尝试使用Ghostscript将pdf文档转换为pcl文档时遇到问题。

原始的pdf文档是横向的,因此pcl也应如此。然而,在使用Ghostscript 9.14的Windows中使用以下命令函数:

gswin32 -dNOPAUSE -dBATCH -sDEVICE=ljet4 -dSAFER -dAutoRotatePages=/NONE -sPAPERSIZE=a4 -sOutputFile=./convert_windows.pcl ./duplicate_windows.pdf

Ubuntu Linux核心版本3.2.0-40中的相同命令 - 通用64位 - 但使用Ghostscript 9.05 - 导致错误的定向pcl文件大小为A3而不是原始版本的A4。

原始的pdf文件包含windows字体“arial”,它也应该在linux中可用。包“msttorcefonts”安装在linux上。这是Ghostscript字体图的简短摘录:

cat /usr/share/ghostscript/9.05/Resource/Init/Fontmap.GS

给出:

% This font, and only this font among the Hershey fonts, uses
% the SymbolEncoding.

/Hershey-Symbol                         (hrsyr.gsf)     ;       % 5066567

/Arial                                  /ArialMT                ;
/Arial,Bold                             /Arial-BoldMT           ;
/Arial,Italic                           /Arial-ItalicMT         ;
/Arial,BoldItalic                       /Arial-BoldItalicMT     ;

以下清单显示了linux命令行的输出,它与windows Ghostscript控制台的输出相同!

GPL Ghostscript 9.05 (2012-02-08)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 2.
Page 1
Loading NimbusMonL-Bold font from /usr/share/fonts/type1/gsfonts/n022004l.pfb... 3627296 2211468 1767360 473754 3 done.
Loading NimbusSanL-Bold font from /usr/share/fonts/type1/gsfonts/n019004l.pfb... 3668288 2319461 1807728 497748 3 done.
Loading NimbusSanL-Regu font from /usr/share/fonts/type1/gsfonts/n019003l.pfb... 3800176 2466391 1827912 512832 3 done.
Loading NimbusMonL-Regu font from /usr/share/fonts/type1/gsfonts/n022003l.pfb... 3964224 2617715 1969200 654805 3 done.
Page 2

我alredy尝试了几种Ghostscript选项,如

-dFIXEDMEDIA
-dNORAGEPAGESIZE

和其他人。

将pdf文档转换为ps时,两种环境的结果都相同。

有没有人有过这个问题或想法的经验?

提前致谢并致以亲切的问候

2 个答案:

答案 0 :(得分:0)

在没有看到原始PDF文件的情况下,任何人都不可能提供任何帮助,因此我建议您打开错误报告并在那里附上PDF文件。

一些观察结果:

-dAutoRotatePages仅在创建PDF文件时有效,而不是在解释PDF文件时有效。

开关-dFIXMEDIA应该是-dFIXEDMEDIA,同样NORAGEPAGESIZE应该是NORANGEPAGESIZE

答案 1 :(得分:0)

这可能是一种可行的解决方案,适用于我的情况。 前提条件:Ghostscript版本8.6.0或更高版本!

使用gs命令将pdf转换为ps,但使用gs包装 pdf2ps ,这是ghostscript包的一部分:

pdf2ps input.pdf output.ps

对于横向pdf文档,仅适用于版本8.60或更高版本!否则,横向文档将以纵向打印。

使用以下命令将pdf转换为pcl对我有用:

gs -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=ljet4 -sPAPERSIZE=a4 -sOutputFile=output.pcl -c "<< /InputAttributes << currentpagedevice /InputAttributes get { pop null } forall >> dup 0 << /PageSize [ 595 842 ] >> put >> setpagedevice" save pop -f input.pdf

但是:此命令基于ghostscript的Bug Bug 689919(请参阅http://bugs.ghostscript.com/show_bug.cgi?id=689919)的文档,仅当您安装了8.60版本时才适用于纵向文档或更高。因为我有三个不同的环境,我可以批准,这个命令从版本8.60开始工作。我使用的是版本8.16,8.62和9.05。

对于ghostscript的版本8.62和9.05,这两个命令都适用于pdf - &gt; ps和pdf - &gt; pcl for landscape and portrait。