2015-01-22 7 views
5

Как я могу вставить команду PJL в PDF без необходимости конвертировать PDF в PostScriptДобавить команду PJL в PDF файл с PHP код

*STARTPJL 
@PJL SET STAPLE=LEFTTOP 
*ENDPJL 

после того как я отправить его на принтер через FTP или LPR.

Я использую Zend_Pdf для создания документов PDF.

** Я безуспешно пытался этот код

$a .= "<ESC>%[email protected]<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); 

документ напечатан правильно, но не меняет гостини и не зажимать, какие-либо предложения?

ответ

5

Я не буду объяснять, как достичь следующих вопросов с помощью PHP. Эти моменты просто объясняют наиболее важные основы, которые нужно знать при работе с PJL и PJL в отношении заданий на печать в формате PDF. Вы должны 'перевести' эту общую информацию для PHP себя ....


Вы не можно вставить PJL команды в PDF. Но вы можете prepend Команды PJL для задания печати PDF.

Кроме того, это не имеет смысла делать это после вы отправляете его на принтер по FTP или через LPR. Имеет смысл только то, что вы делаете это до, отправляя файл.

Следующий пример вашего PJL-кода недействителен для большинства целей. Стандартный способ предварять PJL строку в файл задания PDF для печати заключается в следующем:

<ESC>%[email protected]<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> обозначает возвращение на каретку знак (13 in dec, 0D in hex). Это факультативно в пределах PJL.
  • <LF> обозначает line feed charaxter (10 in dec, 0A in hex). Требуется в пределах PJL.
  • <ESC>%-12345X обозначает «Универсальный выходный язык» команда (UEL). Требуется в PJL. Он определяет начало и конец любого потока данных на основе PJL.

Наконец, обратите внимание:

  1. Не все принтеры и не все услуги печати LPR в состоянии иметь дело с PDF на основе заданий на печать.

  2. Кроме того, не все принтеры, а не все службы печати LPR могут выполнять команды PJL, которые предваряются печатью файлов заданий.

+0

спасибо за ваш ответ, когда вы говорите «preend», думаете ли вы, что я могу разместить его только в одном файле для отправки на принтер или могу ли я отправить команду в качестве директивы для протокола? –

+0

Если принтер поддерживает его вообще, он может + быть в одном файле! –

+0

Я не решил с вашим ответом –