lpr ile utf-8 kodlaması desteği


11

Aracılığıyla yazıcıya bir metin dosyası göndermeye çalışırken lprgelen xterm, içerik sebebi olan sonuçta dosyanın kodlama kadar takip edildi, tanınmayacak kadar bozuktur. Bunun yerine metni iconv(örn. iconv -f utf-8 -t ascii//TRANSLIT) İle işlersem, dosya normal olarak yazdırılır. Karşılaştığım başka bir öneri de belge biçimini (örn. lpr -o document-format=text/utf8) Ayarlamaktır , ancak bu hatayı döndürür lpr: Unsupported document-format "text/utf8". Ben her zaman lprtarafından işleme dahil etmek için komut takma olabilir iconv, ama CUPS/ lprsistemde yerel utf-8 desteği için daha genel bir yolu var mı?

Düzenleme: İşletim sistemim Debian 8 ve pencere yöneticim openbox(masaüstü ortamı yok). Bu dosyayı MacOS X'in yanı sıra Debian7 / Gnome3 sisteminden de sorunsuz bir şekilde yazdırabilirim.

Mevcut sistemimden, UTF-8'den ASCII'ye karakter kodlamasını değiştirdikten sonra bile, yeni satır karakterlerine saygı duyulmadığına dikkat etmeliyim lpr, böylece satırlar birleştirilir ve kağıt kenar boşluğuna ulaşılana kadar yazdırılır. iconvMacOS X ile yeniden kodlama ve harf çevirisi yapıldıktan sonra yazdırma hala normal şekilde çalışıyor (bu nedenle yeni satır sorunu da mevcut sistemime özgüdür).


1
Derin CUPS bilgisine sahip değilim ama kesinlikle belge türünü (çıktıda MIME türü ile) nasıl tespit edeceğiniz ve hedef yazıcı için herhangi birini nasıl çevireceğinizi içermelidir, bu rasterleştirme, Postscript veya PCL dosyası oluşturma vb. İçerir. yazıcınız? Denedin a2psmi Utf-8'i denediğinizde çıkışta gerçekten hangi kodlama kullanılır? (Sanırım öyle iso-8859-1)
Netch

@Netch: a2psFiltreyi işaret ettiğiniz için teşekkürler . Farkında değildim. Söz konusu yazıcı bir HP4650 tarama lazer yazıcıdır. Tarafından kullanılan kodlama nasıl belirlenir CUPS? Girdi ile ayırt edilebilir bir ilişkisi olmayan gerçekte basılan karakterler arasında bir Yunan başkent gama, bir çedilla ile bir başkent C, bir inceltme işaretli bir o ve bir Latin başkent W ve T yer aldı. kağıt kenar boşluğunda çıktıyı keserek.
user001

Kodlama uygulanmış iso-8859-1 gibi görünüyor. Bunu masasını kullanarak kolayca kontrol edebilirsiniz. Bazı aramalar, aramayı lpr -o document-format='text/plain;charset=utf-8'istediğiniz gibi yazdırmak için yeterli olacağını önerir , ancak bu, eski gibi görünen CUPS kurulum varsayılanınızı değiştirmez.
Ağustos'ta Net

Yanıtlar:


1

Aynı şey paplar için de yapılabilir;

#!/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, bardakların metin kağıtlarından çok daha iyi bir iş çıkarıyor.


Cevabın için çok teşekkür ederim. Bildiğim papsve içinde doğal destek olasılığı varsa öğrenmek istedi CUPSo dış bağımlılıkları çağrılan gerekmez böylece.
user001

1

HPLIP'i harici bir bağımlılık olarak kabul edip etmediğinizi bilmiyorum, ancak burada doğrudan CUPS'tan resmi sürücü önerisi var.

CUPS Yazıcı Sürücüsü: HP4650

ve İşte Debian Repo'daki Paket Bilgisi : HPLIPS

Thushi'nin belirttiği gibi, sisteminiz paps gibi bir araç kullanmadan belgeyi nasıl rasterleştireceğini bilmiyor. Hplip paketini kurmak ve http://localhost:631önerilen sürücüyü kullanmak üzere konumunda yapılandırmak sorununuzu çözecektir. Daha fazla bilgi için DebianWiki'deki SystemPrinting girdisine bakın


Teşekkürler. Sistemimde zaten HPLIP'in en son sürümü var. Nerede bu belirtebilirsiniz bulmaya çalıştım http://localhost:631ama sürücü seçimi hakkında bir şey bulamadım.
user001



0

Şuna benzer bir şeye sahip olmalısınız:

text/plain              application/postscript  33      texttops

sizin de /etc/cups/mime.convsdosyaya. Yani, sanırım yapılması gereken metin filtrelerini düzeltmek. Debian altında /usr/lib/cups/filter/texttops, texttopdf filtresini ve pdf2pskomutunu kullanan bir kabuk betiğidir . Texttopdf / pdf2ps çağrısını şu şekilde değiştirmeyi deneyebilirsiniz paps, ancak bağımsız değişkenlerin aynı olmadığını unutmayın. Minimal (metin standart girdiye sağlandığından ve ps sonucu standart çıktıya gönderildiğinden) sadece aşağıdakileri içeren bir satır olacaktır:

paps

ancak seçenekler eklemek isteyebilirsiniz, örneğin:

paps --font='Monospace 10'

Not: Denemedim. Sadece spekülasyon ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.