【发布时间】:2012-05-14 11:42:41
【问题描述】:
我使用 Ghostscript 将 PDF 文档转换为 PCL 进行打印。最近我有一个额外的要求,即在打印之前必须将所有页面旋转到纵向。我找到了一种使用带有以下命令和 postscript 功能的 Ghostscript 的方法。
"C:\Program Files (x86)\gs\bin\gswin32c.exe" "-dNOPAUSE" "-dNOPROMPT" "-dBATCH" "-sDEVICE=pxlmono" "-Ic:\Program Files (x86)\gs\fonts\;c:\Program Files (x86)\gs\lib\;c:\Program Files (x86)\gs\lib\;" "-r300" "-sOutputFile=C:\EXPORTFILE_e542e04f-5e84-4c8e-9b41-55480cd5ec52.cache" "rotate612x792.ps" "C:\EXPORTFILE_3a5de9da-d9ca-4562-8cb6-10fb8715385a.cache"
rotate612x792.ps 的内容
%! Rotate Pages
<< /Policies << /PageSize 5 >>
/PageSize [612 792]
/InputAttributes currentpagedevice
/InputAttributes get mark exch {1 index /Priority eq not {pop << /PageSize [612 792] >>} if } forall >>
>> setpagedevice
问题是这个函数用字母大小替换所有页面大小。我的文件有时是合法的或 A4 文件。我试图修改这个功能,用他们的纵向对应物替换横向尺寸,但还没有能够产生有效的后记。我需要指出正确的方向才能生成与以下伪代码等效的 postscript。
for(each page)
{
if(PageSize == [792 612])
PageSize = [612 792];
}
我知道有非 Ghostscript 方式来旋转页面,但如果我能做到这一点,它会很好地融入我的流程并且不会降低性能。
这是我的一个 pdf 文件的示例: Sample1.pdf
【问题讨论】:
标签: pdf ghostscript postscript printer-control-language