【问题标题】:Printer spits out 'stair-cased' PostScript source code打印机吐出“阶梯式”PostScript 源代码
【发布时间】:2012-07-26 12:43:28
【问题描述】:

我在尝试使用 pdf2ps 和 Kyocera 1370DN 的 ghostscript 打印从 pdf 创建的 postscript 时收到此错误:

%!PS-Adobe-3.0
              %%BoundingBox:  0  0  612  792
                                            %%Creator: GPL Ghostscript 905 (ps2write
  • 我检查了环境变量中的路径是否正确。
  • 我清除了 %WINDIR%\system32\spool\printers 中的打印机假脱机数据。
  • 我重启了打印机和它所连接的电脑。
  • 我检查并打印了一张测试页。测试页运行良好。
  • 每次都是同样的错误信息。
  • 我从那台打印机打印了一些其他文档,打印效果很好。

有什么建议吗?

【问题讨论】:

  • 所以基本上 pdf 的原始字节被打印为文本,而不是“图形化”?
  • 我不确定,应该还有很多很多。
  • @MarcB:不,这不是 PDF 原始数据——它是 PostScript 源代码...

标签: pdf printing ghostscript postscript


【解决方案1】:

您使用哪种方法将 PostScript 文件发送到打印机?

您的打印机看起来不是 PostScript 打印机,因此它无法识别 PostScript 代码。

您正在发送 PostScript 代码,而打印机只能“看到”文本。所以它打印文本....

打印机在行尾也看不到 CR/LF 代码,而只能看到 LF 代码。这就是为什么你会看到这种阶梯效应。

【讨论】:

    【解决方案2】:

    打印机支持 PCL 和 PostScript,很可能需要(非 PostScript!)HP PJL 序列来告诉打印机以下是 PostScript。否则它将假定数据是 PCL。 PCL 是一种二进制格式,当出现 7 位 ASCII 时,会将其视为文本并打印出来,这似乎就是这里发生的情况。

    尝试在文件前添加:

    <ESC>%-12345X@PJL JOB
    @PJL ENTER LANGUAGE=POSTSCRIPT
    

    注意表示ESCAPE ASCII字符码,即0x1B

    并在文件末尾放置:

    <ESC>%-12345X@PJL EOJ
    <ESC>%-12345X
    

    【讨论】:

    • 呵呵...我一直在等待@dah 坚持打印机手册告诉他支持 PCL,然后我才建议他将打印机切换到 PCL(也可以通过设置它来实现)在打印机面板上“自动感应”,无需使用@PJL ENTER LANGUAGE=...)。
    • 什么是打印机面板/自动感应。
    • @dah:许多打印机允许设置它们以尝试自动检测作业使用的语言(PostScript 或 PCL)。 如果您的打印机支持此功能,则您无需在作业前添加 &lt;ESC&gt;%-12345.....=POSTSCRIPT 内容(由 KenS 建议)。不过,按照 KenS 推荐的方式去做是一种安全的方式......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多