使用 PHP 代码将 PJL 命令添加到 PDF 文件中
Add PJL command into PDF file with PHP code
如何在不将 PDF 转换为 PostScript 的情况下将 PJL 命令插入 PDF
*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实现以下几点。这些要点仅解释了在处理 PJL 和 PJL 关于基于 PDF 的打印作业时要熟悉的最重要的基础知识。您必须 'translate' 将此通用信息 PHP 自己....
您不能插入 PJL 命令到 PDF。但是您可以 prepend 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
说明:
- 此处
<ESC>
表示转义字符(27
十进制,1B
十六进制)。
<CR>
表示 回车 return 字符(13
为十进制,0D
为十六进制)。在 PJL 中 可选。
<LF>
表示 换行 字符(10
为十进制,0A
为十六进制)。在 PJL 中需要。
<ESC>%-12345X
表示 'Universal Exit Language' 命令 (UEL)。在 PJL 中需要。它定义任何基于 PJL 的数据流的开始和结束。
最后请注意:
并非所有打印机和 LPR 打印服务都能够处理基于 PDF 的打印作业。
此外,并非所有打印机和所有 LPR 打印服务都能够执行预先添加到打印作业文件的 PJL 命令。
如何在不将 PDF 转换为 PostScript 的情况下将 PJL 命令插入 PDF
*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实现以下几点。这些要点仅解释了在处理 PJL 和 PJL 关于基于 PDF 的打印作业时要熟悉的最重要的基础知识。您必须 'translate' 将此通用信息 PHP 自己....
您不能插入 PJL 命令到 PDF。但是您可以 prepend 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
说明:
- 此处
<ESC>
表示转义字符(27
十进制,1B
十六进制)。 <CR>
表示 回车 return 字符(13
为十进制,0D
为十六进制)。在 PJL 中 可选。<LF>
表示 换行 字符(10
为十进制,0A
为十六进制)。在 PJL 中需要。<ESC>%-12345X
表示 'Universal Exit Language' 命令 (UEL)。在 PJL 中需要。它定义任何基于 PJL 的数据流的开始和结束。
最后请注意:
并非所有打印机和 LPR 打印服务都能够处理基于 PDF 的打印作业。
此外,并非所有打印机和所有 LPR 打印服务都能够执行预先添加到打印作业文件的 PJL 命令。