User Tools

Site Tools


doc:appunti:prog:duplex

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:prog:duplex [2017/06/14 11:24] niccolodoc:appunti:prog:duplex [2017/06/14 11:49] – [Stampanti PCL] niccolo
Line 17: Line 17:
 Ci sono altri driver GhostScript che producono job PCL, ad esempio **pcl3** e **lj5gray**. Il primo non accetta il parametro **-dDuplex**, il secondo lo accetta, ma il job risultante viene stampato senza fronte-retro (testato su Brother MFC-L5750DW e Xerox Phaser 3300MFP). Ci sono altri driver GhostScript che producono job PCL, ad esempio **pcl3** e **lj5gray**. Il primo non accetta il parametro **-dDuplex**, il secondo lo accetta, ma il job risultante viene stampato senza fronte-retro (testato su Brother MFC-L5750DW e Xerox Phaser 3300MFP).
  
 +**ATTENZIONE**: in genere **non funziona** incapsulare un job PCL dentro ad un job PJL (ad esempio per aggiungere l'opzione duplex, come si fa con i job PostScrips), questo perché il job PCL prodotto dal GhostScript include al suo interno i comandi per resettare tutte le opzioni di alto livello della stampante.
 ===== Stampanti PostScript ===== ===== Stampanti PostScript =====
  
 +Ci sono diversi driver GhostScript che producono job PostScript: **psmono** è disponibile con GhostScript 8.71, **ps2write** è invece la versione più recente disponibile in GhostScript 9.20. Entrembi i driver //psmono// e //ps2write// producono documenti PostScript 3.0, il primo di tipo **PS 3.0 Level 1**, mentre il secondo **PS 3.0 Level 2**. Purtroppo alcune stampanti (es. Brother MFC-L5750DW) non sono in grado di interpretare il Level 2.
  
 +Per attivare la stampa duplex è possibile incapsulare il job PostScript in un job **PJL** (Printer Job Language), solitamente supportato dalle stampanti che supportano PostScript e PCL.
  
 +I comandi PJL sono terminati con **<CR><LF>** (0x0D 0x0A), ma il <CR> è facoltativo.
 +
 +Prima di inviare un comando PJL è buona norma inviare alla stampante l'**Universal Exit Language command**, cioè una sequenza preceduta dal carattere ESC (0x1B). L'UEL non prevede il <CR><LF> a fine linea, per convenienza di solito ci si accoda un comando PJL vuoto.
 +
 +Ecco quindi uno script che aggiunge il duplex ad un job PostScript:
 +
 +<code bash>
 +#!/bin/bash
 +
 +(
 +echo -e '\e%-12345X@PJL'                # Send the Universal Exit Language (UEL) command
 +echo '@PJL JOB'                         # Begin of PJL job
 +echo '@PJL SET DUPLEX=ON'               # Set duplex printing
 +echo '@PJL ENTER LANGUAGE=POSTSCRIPT'   # PostScript document
 +gs -sDEVICE=ps2write -sPAPERSIZE=a4 -q -sOutputFile=- -dNOPAUSE -dBATCH input_file.pdf
 +echo -e '\e%-12345X@PJL'                # UEL command
 +echo '@PJL EOJ'                         # Endo of job
 +echo -en '\e%-12345X'                   # UEL command
 +) > output_file.ps
 +</code>
doc/appunti/prog/duplex.txt · Last modified: 2017/06/14 11:50 by niccolo