supporto per la codifica utf-8 con lpr


11

Durante il tentativo di inviare un file di testo alla stampante tramite lprdalla xterm, il contenuto è stato danneggiato oltre il riconoscimento, la cui causa è stata infine risalire alla codifica del file. Se invece elaboro il testo con iconv(ad esempio, iconv -f utf-8 -t ascii//TRANSLIT), il file viene stampato normalmente. Un altro suggerimento che ho riscontrato è l'impostazione del formato del documento (ad esempio, lpr -o document-format=text/utf8), ma questo restituisce l'errore lpr: Unsupported document-format "text/utf8". Potrei sempre alias il lprcomando di includere l'elaborazione iconv, ma esiste un modo più generale per il supporto nativo utf-8 nel sistema CUPS/ lpr?

Modifica: il mio sistema operativo è Debian 8 e il mio gestore delle finestre è openbox(nessun ambiente desktop). Posso stampare questo file senza problemi da MacOS X e da un sistema Debian7 / Gnome3.

Dal mio sistema attuale, dovrei sottolineare che anche dopo aver modificato la codifica dei caratteri da UTF-8 ad ASCII, i caratteri di nuova riga non vengono rispettati lpr, quindi le linee vengono concatenate insieme e stampate fino a raggiungere il margine della carta. Dopo la ricodifica e la traslitterazione con iconvsu MacOS X, la stampa funziona ancora normalmente (quindi il problema della nuova riga è specifico anche per il mio sistema attuale).


1
Non ho una profonda conoscenza di CUPS, ma dovrebbe sicuramente includere le regole su come rilevare il tipo di documento (con il tipo MIME in uscita) e come tradurre qualsiasi per stampante di destinazione, questo include la rasterizzazione, la formazione di Postscript o file PCL, ecc. Potresti specificare il tuo tipo di stampante? Ci hai provato a2ps? Quale codifica viene realmente utilizzata in output, quando provi utf-8? (Suppongo sia iso-8859-1)
Netch

@Netch: grazie per aver sottolineato il a2psfiltro. Non ne ero a conoscenza. La stampante in questione è una stampante laser a scansione HP4650. Come si può determinare la codifica utilizzata da CUPS? I personaggi effettivamente stampati, che non hanno alcuna relazione evidente con l'input, includevano una gamma maiuscola greca, una maiuscola C con una cedilla, una o con una circonflessa e una maiuscola latina W e T. Oltre a ciò, il mancato rispetto dei risultati dei caratteri di nuova riga nel troncamento dell'output al margine della carta.
user001,

Sembra che la codifica applicata sia iso-8859-1. Puoi facilmente verificarlo usando la sua tabella. Alcune ricerche suggeriscono di chiamare come lpr -o document-format='text/plain;charset=utf-8'sarà sufficiente per stampare come vuoi, ma questo non cambia l'impostazione predefinita di installazione di CUPS che sembra obsoleta.
Netch

Risposte:


1

Lo stesso si può fare con i pap;

#!/bin/bash
#This script converts UTF-8 txt to postscript
paps | lpr
Sometimes you need to specify the prinqueue;

#!/bin/bash
# This script converts UTF-8 txt to postscript
paps | lpr -P lj

Paps fa un lavoro molto migliore dei bicchieri di tazze.


Grazie mille per la risposta. Sono a conoscenza papse volevo sapere se c'era una possibilità di supporto nativo all'interno in CUPSmodo che non fosse necessario invocare dipendenze esterne.
user001,

1

Non so se consideri HPLIP una dipendenza esterna, ma ecco la raccomandazione ufficiale del driver direttamente da CUPS.

Driver della stampante CUPS: HP4650

e Ecco le informazioni sul pacchetto in Debian Repo: HPLIPS

Come afferma Thushi, il tuo sistema non sa come rasterizzare il documento senza usare uno strumento come paps. L'installazione del pacchetto hplip e la configurazione su http://localhost:631per utilizzare il driver consigliato risolveranno il problema. Per maggiori informazioni, vedere la voce SystemPrinting su DebianWiki


Grazie. Ho già l'ultima versione di HPLIP sul mio sistema. Ho provato a trovare dove si può specificare questo http://localhost:631ma non sono riuscito a trovare nulla sulla selezione del driver.
user001

Leggi la Sezione 4
eyoung100,


0

Dovresti avere qualcosa del tipo:

text/plain              application/postscript  33      texttops

nel tuo /etc/cups/mime.convsfile. Quindi, suppongo che ciò che deve essere fatto sia riparare il filtro texttops. Sotto Debian, lo è /usr/lib/cups/filter/texttops, che è uno script di shell che utilizza il filtro texttopdf e il pdf2pscomando. Puoi provare a sostituire l'invocazione texttopdf / pdf2ps con paps, ma nota che gli argomenti non sono gli stessi. Il minimo (poiché il testo viene fornito allo standard input e il risultato ps viene inviato allo standard output) sarebbe una riga che contiene solo:

paps

ma potresti voler aggiungere opzioni, ad esempio:

paps --font='Monospace 10'

Nota: non ho provato. Solo speculazioni ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.