2015-01-22 26 views
5

Come posso inserire un comando PJL in formato PDF senza dover convertire i PDF in PostScriptAggiungi comando PJL in file PDF con il codice PHP

*STARTPJL 
@PJL SET STAPLE=LEFTTOP 
*ENDPJL 

dopo che trasmetto alla stampante tramite FTP o LPR.

Sto utilizzando Zend_Pdf per creare documenti PDF.

** Ho provato, senza successo, di questo codice

$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); 

il documento viene stampato correttamente, ma non cambia il canterani e non bloccare, qualche suggerimento?

risposta

5

Non ho intenzione di spiegare come ottenere i seguenti punti con PHP. Questi punti spiegano semplicemente i fondamenti più importanti con cui avere familiarità quando si ha a che fare con PJL e con PJL per quanto riguarda i lavori di stampa basati su PDF. Bisogna 'tradurre' queste informazioni generiche a PHP te stesso ....


Non possibile inserire i comandi PJL in PDF. Ma è possibile anteporre Comandi PJL a un processo di stampa PDF.

Inoltre, non è significativo fare questo dopo lo si invia a una stampante tramite FTP o tramite LPR. È significativo solo se lo fai prima del inviando il file.

Successivamente, il codice PJL di esempio non è valido per la maggior parte degli scopi. Il metodo standard per anteporre linee PJL in un file di lavoro di stampa PDF è questo:

<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 

Spiegazioni:

  • Qui <ESC> denota il fuga carattere (27 in decimale, 1B in esadecimale).
  • <CR> carattere di ritorno (13 in dec, 0D in esadecimale). È facoltativo all'interno di PJL.
  • <LF> denota lo riga di alimentazione charaxter (10 in dec, 0A in esadecimale). È richiesto all'interno di PJL.
  • <ESC>%-12345X'Universal Exit Language' (UEL). È richiesto in PJL. Definisce l'inizio e la fine di qualsiasi flusso di dati basato su PJL.

Infine, si prega di notare:

  1. Non tutte le stampanti e non tutti i servizi di stampa LPR sono in grado di affrontare i processi di stampa basati su PDF.

  2. Inoltre, non tutte le stampanti e non tutti i servizi di stampa LPR sono in grado di rispettare i comandi PJL preposti alla stampa dei file di lavoro.

+0

grazie per la risposta, quando si dice "antepida" pensi di poterlo inserire in un solo file da inviare alla stampante o posso inviare il comando come direttiva al protocollo? –

+0

Se la stampante lo supporta, può + dovrebbe essere in un file! –

+0

non ho risolto con la tua risposta –

Problemi correlati