【问题标题】:Add PJL command into PDF file with PHP code使用 PHP 代码将 PJL 命令添加到 PDF 文件中
【发布时间】:2015-03-21 11:57:09
【问题描述】:

如何将 PJL 命令插入 PDF 而无需将 PDF 转换为 PostScript

*STARTPJL
@PJL SET STAPLE=LEFTTOP
*ENDPJL

通过 FTP 或 LPR 将其发送到打印机后。

我正在使用 Zend_Pdf 创建 PDF 文档。

**我试过这段代码没有成功

$a .= "<ESC>%-12345X@PJL<CR><LF>";
$a .= "@PJL SET OUTBIN=OUTBIN101<CR><LF>";
$a .= "@PJL SET STAPLE=LEFTTOP<CR><LF>";
$a .= "@PJL ENTER LANGUAGE = PDF<CR><LF>";
$a .= file_get_contents("/www/zendsvr/htdocs/GDA/public/pdf/test.pdf");
$a .= "<ESC>%-12345X";

$myfile = fopen("/www/zendsvr/htdocs/GDA/public/pdf/t.pdf", "w");
fwrite($myfile, $a);
fclose($myfile);

文件打印正确,但不换图纸,不夹,有什么建议吗?

【问题讨论】:

    标签: php pdf zend-framework pjl


    【解决方案1】:

    我不打算解释如何用 PHP 实现以下几点。这些要点仅解释了在处理 PJL 和处理基于 PDF 的打印作业的 PJL 时需要熟悉的最重要的基础知识。您必须自己将这些通用信息“翻译”为 PHP....


    您不能插入 PJL 命令 PDF。但是您可以将 PJL 命令预先添加到 PDF 打印作业中。

    此外,在您通过 FTP 或 LPR 将其发送到打印机之后, 执行此操作没有任何意义。只有在在发送文件之前这样做才有意义。

    接下来,您的示例 PJL 代码对于大多数用途无效。将 PJL 行添加到 PDF 打印作业文件的标准方法是:

    <ESC>%-12345X@PJL<CR><LF>
    @PJL SET STAPLE=LEFTTOP<CR><LF>
    @PJL    [... more PJL commands if required ...]
    @PJL ENTER LANGUAGE = PDF<CR><LF>
    [... all bytes of the PDF file, starting with '%PDF-1.' ...]
    [... all bytes of the PDF file ............................]
    [... all bytes of the PDF file ............................]
    [... all bytes of the PDF file, ending with '%%EOF' .......]
    <ESC>%-12345X
    

    解释:

    • 这里&lt;ESC&gt; 表示转义 字符(27 十进制,1B 十六进制)。
    • &lt;CR&gt; 表示 回车 字符(13 十进制,0D 十六进制)。它在 PJL 中是可选的
    • &lt;LF&gt; 表示 换行 字符(10 十进制,0A 十六进制)。它在 PJL 中是必需的
    • &lt;ESC&gt;%-12345X 表示 '通用退出语言' 命令 (UEL)。在 PJL 中它是必需的。它定义了任何基于 PJL 的数据流的开始和结束。

    最后请注意:

    1. 并非所有打印机和 LPR 打印服务都能够处理基于 PDF 的打印作业。

    2. 此外,并非所有打印机和所有 LPR 打印服务都能够支持打印作业文件之前的 PJL 命令。

    【讨论】:

    • 感谢您的回答,当您说“前置”时,您认为我可以将它放在一个文件中发送到打印机还是可以将命令作为指令发送到协议?
    • 如果打印机完全支持,它可以+应该在一个文件中!
    • @jack.cap.rooney:我的回答是正确的(而且几乎是完整的)。它仍然应该教会了你一些东西。因为您在问题中使用的示例代码是错误。此外,您的打印机可能(1)不支持 PJL,(2) 不支持 DirectPDF 打印。跨度>
    猜你喜欢
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    相关资源
    最近更新 更多