Ghostscript-PDF文件,有多个托盘,并且有很多问题

Ghostscript-PDF文件,有多个托盘,并且有很多问题,pdf,printing,ghostscript,postscript,Pdf,Printing,Ghostscript,Postscript,我英语说得不好,但我希望在这一点上有人能帮我 这件事我花了好几天时间,但我自己搞不清楚。交易如下: 我有4000多个PDF文档,带有TrimBox页边距,每个文档有16页,彩色 我需要批量打印它们: 使用纸盘3上的纸张打印第1-10页 使用纸盘4上的纸张打印第11-15页,两份未装订 使用纸盘3上的纸张打印第16页 我用的是京瓷7550ci 我已经安装了GhostScript 9.19,还安装了带有gsprint的gsview。Windows7SP1 当我第一次尝试做任何事情时,我不知道gh

我英语说得不好,但我希望在这一点上有人能帮我

这件事我花了好几天时间,但我自己搞不清楚。交易如下:

我有4000多个PDF文档,带有TrimBox页边距,每个文档有16页,彩色

我需要批量打印它们:

  • 使用纸盘3上的纸张打印第1-10页
  • 使用纸盘4上的纸张打印第11-15页,两份未装订
  • 使用纸盘3上的纸张打印第16页
我用的是京瓷7550ci

我已经安装了GhostScript 9.19,还安装了带有gsprint的gsview。Windows7SP1

当我第一次尝试做任何事情时,我不知道ghostscript或如何使用它,但通过阅读我设法“某种程度上”解决了这个问题。我在Windows控制面板上复制了打印机,用我想要的配置设置了每台打印机,并在GSPRINT上执行了以下命令:

gsprint -printer "Kyocera TASKalfa 7550ci KX" -color -dUseTrimBox -dFitPage -from 1 -to 10 s_file0001.pdf
gsprint -printer "ALT Kyocera" -color -dUseTrimBox -dFitPage -from 11 -to 15  -copies 2 s_file0001.pdf
gsprint -printer "Kyocera TASKalfa 7550ci KX" -color -dUseTrimBox -dFitPage -from 16 -to 16 s_file0001.pdf
(我将TASKalfa 7550ci默认驱动程序设置为使用托盘3,将ALT Kyocera设置为使用托盘4并取消振荡)

它工作正常,但对Windows进程和打印机处理速度都非常慢。我很快意识到GSPRINT速度很慢,因为它必须将整个图像渲染为位图,并开始考虑是否可以使用纯GhostScript来完成这项工作

gswin32c -dBATCH -dNOPAUSE -q -dUseTrimBox -dFitPage -dFirstPage=1 -dLastPage=10 -sDEVICE=mswinpr2 -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f test.pdf
gswin32c -dBATCH -dNOPAUSE -q -dUseTrimBox -dFitPage -dFirstPage=11 -dLastPage=15 -sDEVICE=mswinpr2 -sOutputFile="%printer%ALT Kyocera" -f test.pdf
gswin32c -dBATCH -dNOPAUSE -q -dUseTrimBox -dFitPage -dFirstPage=16 -dLastPage=16 -sDEVICE=mswinpr2 -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f test.pdf
但我仍然有很多问题。。。我很沮丧,我无法让它工作,即使我真的很努力地阅读手册和搜索周围

  • 使用mswinpr2仍然非常慢,给我错误的颜色,并且不知道如何选择纸盘
  • 使用任何附带的PCL驱动程序,Altrowth都很快,并使用dMediaPosition成功地选择了正确的托盘,只有黑白驱动程序
  • 使用pdfwrite时,不正确缩放TrimBox以适应整个页面,并且无法选择正确的托盘
  • 使用ps2write时,无法选择纸盘,会弄乱页面位置
我迷路了。有人能给我指路吗?还有,有没有办法将所有签名作为一个文件发送到打印机

谢谢大家!

---编辑---

谢谢你们两位的回答

我设法做到了:

gswin32c -dBATCH -dNOPAUSE -q -dPDFFitPage -dUseTrimBox -dFirstPage=1  -dLastPage=10 \
         -dMediaPosition=7 -sDEVICE=pxlcolor \
         -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f in.pdf

gswin32c -dBATCH -dNOPAUSE -q -dPDFFitPage -dUseTrimBox -dFirstPage=11 -dLastPage=15 \
         -dMediaPosition=5  -sDEVICE=pxlcolor -dNumCopies=2 \
         -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f in.pdf

gswin32c -dBATCH -dNOPAUSE -q -dPDFFitPage -dUseTrimBox -dFirstPage=16 -dLastPage=16 \
         -dMediaPosition=7 -sDEVICE=pxlcolor \
         -sOutputFile="%printer%Kyocera TASKalfa 7550ci KX" -f in.pdf
唯一的问题是页面在pxlcolor上不能正确缩放(在ljet4上可以,但它是黑白的)


我快到了!谢谢。如果有人知道这个问题,我将不胜感激。

要做到这一点并不容易。虽然PDF本身不提供切换纸盘的功能,但您需要将此流转换为另一个PDL。附言是个不错的选择

转换为PostScript时,可以插入PostScript托盘切换命令,如PPD中的命令:

<< /ManualFeed false >> setpagedevice statusdict begin 5 setpapertray end
>设置页面设备状态DICT begin 5设置纸盘结束
在Windows平台上,您可以选择以下实施方式:

  • 更改PPD,使其在每页之前注入PostScript代码。代码应维护一个页面计数器,并相应地执行托盘切换命令
  • 购买提供此功能的第三方软件
  • 使用注入PostScript代码的DLL扩展打印机驱动程序
  • 第一种可能不适用于打印机潜水员。然后,您可以尝试在作业开始时注入PostScript代码。代码应覆盖
    showpage
    ,并使用第一个选项中描述的功能对其进行扩展


    同样的代码重载
    showpage
    如果您有权访问控制器的内部,您可以插入PostScript解释器启动序列。

    您一次问了很多问题,这并不是获得有用答案的好方法。另外,你对一些问题还不是很清楚

    1) 如果要将TrimBox用于介质大小,则必须告诉Ghostscript您要使用TrimBox,您可以通过
    -dUseTrimBox
    ,无论您要使用什么设备

    2) mswinpr2设备的工作原理是:为打印机创建Windows DeviceContext,将输入呈现为(RGB)位图,然后将位图点播到DeviceContext,并告诉它自己打印。这很慢,因为它需要将一个大位图(大小取决于打印机分辨率)渲染到内存,然后将该大位图发送到设备

    它的一大优点是,无论你有什么打印机,它都能工作

    GSPrint使用了一种“类似”但有些不同的技术,据称速度更快

    请注意,这两种设备都使用打印机的默认设置,这可能无法满足您的复杂需求

    当然,在这种情况下,颜色管理取决于Windows,但是如果您的原始PDF是在例如CMYK中指定的,那么这将涉及转换CMYK->RGB->CMYK,这必然会导致颜色差异

    3) Ghostscript中有彩色PCL设备,例如cdeskjet设备

    4) 如果选择
    -dUseTrimBox
    ,pdfwrite将使用TrimBox。因为它创建了一个PDF文件,所以很难看到它如何“选择正确的托盘”。如果要将PDF文件发送到打印机,则可以从原始PDF文件开始。PDF文件不能包含设备相关条件,例如托盘选择

    5) ps2write的当前版本将允许您添加特定于设备的操作,请参阅ghostpdl/doc/VectorDevices.htm(也可在ghostscript.com网站上获得),第6.5节“PostScript文件输出”,并查找
    PSDocOptions
    pspage options
    键。您可以使用
    PSPageOptions
    数组向每个页面引入单独的媒体选择命令。我不知道你所说的“弄乱页面位置”是什么意思,但是,如果你不选择
    -dUseTrimBox
    ,那么它将不会使用TrimBox

    哦,如果你想“缩放修剪框以适应整个页面”(哪一个y