• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Drucker druckt keine Umlaute aus der Konsole.

macsys

Newbie
Hallo alle,

Ich hoffe Ihr könnt mir hier helfen.
Also ich hab die Sufu schon genutzt aber nicht wirklich was zu diesem Thema gefunden.

Also das Problem besteht eigentlich nur darin das der Drucker (epson 570+) aus der Konsole
( oder gestartet Konsolenprogramme ) zb. mit

echo "öäüß" > /dev/lp0


die Umlaute nicht ausdruckt, sondern diese Zeichen hier. "VD_*+"

Von jedem Anderen Programm aus geht es wohl, da es wohl ein grafischer Ausdruck ist.
Was muss ich einstellen damit die Umlaute auch aus der Konsole gedruckt werden?

In der /etc/sysconfig/language habe ich schon den de_DE.ISO-8859-1 eingetragen,
so dass Umlaute im Programm (oder allgemein in der bash) angezeigt werden.

Hoffe einer weiss Rat.

Greetz
macsys
 

Tooltime

Advanced Hacker
Man könnte den Text in einer Datei speichern und mit lp oder lpr abschicken.

Ist das etwa noch ein 24-Nadel Drucker? Die hatten eigentlich immer ein Mäuseklavier mit der man eine Kodierung vorgeben muss.

macsys schrieb:
In der /etc/sysconfig/language habe ich schon den de_DE.ISO-8859-1 eingetragen, so dass Umlaute im Programm (oder allgemein in der bash) angezeigt werden.
Heißt das, das die Tastatureingaben in Shell schon falsch angezeigt werden. Von was für einen Programm redest du da.
 
OP
M

macsys

Newbie
Hallo ToolTime,

Ja das ist ein 24 Nadel Drucker.

Das Programm ist eigentlich ein Server Host Anwendung die umgeschrieben wurde und via Telnet von den
Clients aufgerufen wird.
Da das Proggi ISO8859 verwendet wurden die Umlaute natürlich auch erst nicht richtig dagestellt.
Da als Kodierung UTF-8 für die shell benutzt wurde.

Aber das mit dem Mäuseklavier hört sich gut an. Also Du meinst damit da ich dort auch die Kodierung einstellen kann
und das die evtl. noch falsch eingestellt sind ?

Also die Drucker druckten vorher von en uralt Terminalrechner.

MfG
Majert
 

Tooltime

Advanced Hacker
macsys schrieb:
Aber das mit dem Mäuseklavier hört sich gut an. Also Du meinst damit da ich dort auch die Kodierung einstellen kann und das die evtl. noch falsch eingestellt sind ?
Wenn man die Druckdaten in Textform direkt an den Drucker schickt, muss man halt die Kodierung verwenden die Drucker erwartet. Wenn ich mich richtig erinnere war die Grundeinstellung immer ASCII-US. Daneben gab es meistens noch einen interessanten Schalter für den Zeilenvorschub am Zeilenende.

Alternativ kannst du eigentlich den Druckfilter manuell als pipe zwischen hängen. In der Art echo "öäüß" | Druckkfilter -Parameter > /dev/lp0
 
OP
M

macsys

Newbie
Okay,

das gibt locale aus.

xtermt.jpg


Und das ist die language datei.

Code:
## Path:        System/Environment/Language
## Type:        string(scim,uim,kinput2,kinput2-canna,kinput2-wnn,nabi,wnn,atokx,xcin,none)
## Default:     ""
#
# A default input method to be used in X11 can be selected here.
# If this variable is set and a script with the same name
# as the value of this variable exists in the directory /etc/X11/xim.d/
# this script is sourced when X11 is started to start an input method.
#
# The special value "none" (/etc/X11/xim.d/none) means:
# Do not use any input method at all.
#
# For more details see the comments at the top of /etc/X11/xim.
#
INPUT_METHOD=""
## Path:	System/Environment/Language
## Description:	
## Type:	string(POSIX,ca_ES.ISO-8859-1,ca_ES.UTF-8,cs_CZ.ISO-8859-2,cs_CZ.UTF-8,da_DE@euro,da_DK.ISO-8859-1,da_DK.UTF-8,de_DE@euro,de_DE.ISO-8859-1,de_DE.UTF-8,el_GR.ISO-8859-7,el_GR.UTF-8,en_GB.ISO-8859-1,en_GB.UTF-8,en_IE@euro,en_IE.ISO-8859-1,en_US.ISO-8859-1,es_ES@euro,es_ES.ISO-8859-1,es_ES.UTF-8,fr_FR@euro,fr_FR.ISO-8859-1,fr_FR.UTF-8,gl_ES@euro,gl_ES.ISO-8859-1,gl_ES.utf-8,hr_HR.ISO-8859-2,hu_HU.ISO-8859-2,hu_HU.UTF-8,it_IT@euro,it_IT.ISO-8859-1,it_IT.UTF-8,ja_JP.eucJP,ja_JP.UTF-8,lt_LT.ISO-8859-13,lt_LT.UTF-8,nl_NL@euro,nl_NL.ISO-8859-1,nl_NL.UTF-8,ru_RU.ISO-8859-5,ru_RU.KOI8R,ru_RU.UTF-8,sk_SK.ISO-8859-2,sk_SK.UTF-8,tr_TR.ISO-8859-9,tr_TR.UTF-8,ko_KR.eucKR,ko_KR.UTF-8,zh_TW.Big5,zh_TW.UTF-8,zh_CN.GB2312,zh_CN.UTF-8)
## Default:	""
## Config:      OpenOffice.org,groff,ispell,kde,kdm,profiles,susehelp,susewm,tetex,wdm
#
#
# Local users will get RC_LANG as their default language, i.e. the
# environment variable $LANG . $LANG is the default of all $LC_*-variables,
# as long as $LC_ALL is not set, which overrides all $LC_-variables.
# Root uses this variable only if ROOT_USES_LANG is set to "yes".
#
RC_LANG=""

## Type:	string
## Default:	""
#
# This variable will override all LC-variables!!
# Again, ROOT_USES_LANG must be set to "yes", if an effect on the superuser
# account is desired.
#
RC_LC_ALL="de_DE.ISO-8859-1"

## Type:	string
## Default:	""
#
# This defines the locale in which messages of programs and
# libraries with i18n-support should appear if a translated
# message catalog for the library or the program is installed.
# This also provides localized yes/no answers.
#
RC_LC_MESSAGES=""

## Type:	string
## Default:	""
#
# This defines the locale for character handling and classification.
# The libc uses this value in language dependent function calls, such
# as e.g. uppercase/lowercase mapping of foreign characters.
#
RC_LC_CTYPE=""

## Type:	string
## Default:	""
#
# This defines the locale for sorting strings and characters.
# It is used by the libc to obtain the alphabetical order of characters
# (e.g. for string comparisons).
#
RC_LC_COLLATE=""

## Type:	string
## Default:	""
#
# This defines the locale for date and time output formats.
# i.e.: 06/09/1999 vs. 09.06.1999
#
RC_LC_TIME=""

## Type:	string
## Default:	""
#
# This defines the locale for formatting and reading numbers.
# i.e.: 1,234.56 vs. 1.234,56
#
RC_LC_NUMERIC=""

## Type:	string
## Default:	""
#
# This defines the locale for formatting and reading money values.
#
RC_LC_MONETARY=""

## Type:	string
## Default:	""
#
# This defines the locale for format of paper.
#
RC_LC_PAPER=""

## Type:	string(ctype)
## Default:	ctype
#
# This defines if the user "root" should use the locale settings
# which are defined here.
# Value "ctype" means that root uses just LC_CTYPE. 
#
ROOT_USES_LANG="ctype"

## Type:        yesno
## Default:     no
#
# Workaround for missing forward of LANG and LC variables
# of e.g. ssh login connections.
#
AUTO_DETECT_UTF8="no"

## Type:        string
## Default:     ""
#
# List of installed language supports, use by YaST2
#
INSTALLED_LANGUAGES="de_DE"

Und die Dip Switches sind jetzt auf Deutsch und laut Herstellersupport
auf ISO8859 und IBM-Emulation

sw1: on on on on on on off off (ECP wäre sw1: on off on off off off off off)
sw2: on off on off


Das mit der Filterfunktion manuell als pipe da zwischen hängen hört sich gut an.
Nur müsste man das dann dauerhaft einstellen können,
da ja das textbasierte Programm von dort drucken muss.

und echo "abcd öäüß" /dev/lp0 sollte dann ja auch funzen.

Hoffe Du kannst was damit anfangen !

Gruss macsys
 

Tooltime

Advanced Hacker
macsys schrieb:
Und die Dip Switches sind jetzt auf Deutsch und laut Herstellersupport
auf ISO8859 und IBM-Emulation

sw1: on on on on on on off off (ECP wäre sw1: on off on off off off off off)
sw2: on off on off
Das ist wieder einer der Momente wo ich gerne dich Spruch "gewagte Theorie" benutze.

Nur zur Sicherheit, der Drucker ist ein Epson LQ 570+? Habe nämlich keinen entsprechenden Drucker ohne dem LQ (Briefqualität) gefunden. Das Handbuch zum Drucker gibt es hier:
Das Mäuseklavier ist unter 3-6, bzw. für IBM-Emulation 3-11 beschrieben. So wie ich das sehe müssen die ersten Schalter immer auf On Off On stehen. Zusätzlich sollte auf Unix-System Auto line feed eingeschaltet werden, im Gegensatz zu DOS-Systemen. Dazu müsste mit 2-4 gehen, im Text wird irrtümlich einmal 2-2 erwähnt.

macsys schrieb:
Das mit der Filterfunktion manuell als pipe da zwischen hängen hört sich gut an.Nur müsste man das dann dauerhaft einstellen können, da ja das textbasierte Programm von dort drucken muss.
Das hasst du falsch verstanden. Der Druckfilter ist auf Unix-Systemen das, was man im allgemeinen Druckertreiber nennt. Das Drucksystem mach eigentlich auch nichts anders, als den Druckauftrag durch verschiedene Filter (Treiberstufen) zu schicken, die durch eine Pipe verbunden sind. Du musst dann diese Filter manuell vor der Ausgabe auf die Schnittstelle einfügen. Deshalb wurde aus deinem Befehl
  • echo "öäüß" > /dev/lp0 dann echo "öäüß" | Druckkfilter -Parameter > /dev/lp0
 
OP
M

macsys

Newbie
Hi tooltime,

erst mal danke das du dich damit beschäftigst.

Ich hab mir wohl auch ein Manual bei epson runtergeladen. http://esupport.epson-europe.com/Pr...DE&data=nIO+C9LsZYwdEQ4uFP4NTza1QBAj2SGz&tc=5
Jedoch stand da nix wie und was die Switches machen.

Ich hab die Einstellungen einfach mal ein wenig ausprobiert und geteste und bin dann auch auf Deiner hier zuletzt gepostete verblieben.

Jedoch ohne Erfolg. Jetzt hab ich noch was gefunden. schau mal : http://www.informatik.uni-konstanz....ion/bekannte-probleme/probleme-in-suse-linux/

Könnte evtl damit zu tun haben ?

gruss macsys
 
A

Anonymous

Gast
Das ist schon verdammt lange her, hatte mal früher so ein Problem als ich einen Drucker als Standardausgabegerät benutzt hatte. Hab das damals mit Steuerzeichen gelöst. Aber frag mich nicht mehr wie das ging.

http://support.epson.ru/products/manuals/000350/part1.pdf
Seite 89: der Steuerbefehe währe demnach "ESC R 2"

probier mal, aber das währe wohl zu einfach wenn das so gehen würde.
Code:
echo -e "\x1bR\x2" > /dev/lp0
echo "äöÜÄ" > /dev/lp0

robi
 

Tooltime

Advanced Hacker
Schaltest du den Drucker auch immer aus und an wenn du die DIP-Switches änderst, sonst werden die neuen Schalterstellungen nicht aktiv?

macsys schrieb:
Ich hab mir wohl auch ein Manual bei epson runtergeladen. http://esupport.epson-europe.com/ProductHome.aspx?lng=de-DE&data=nIO+C9LsZYwdEQ4uFP4NTza1QBAj2SGz&tc=5Jedoch stand da nix wie und was die Switches machen.
Wenn ich dem Link folge, lande ich bei einem Archiv epson18162eu.zip, schaut man da in die Datei Part_4-Printer_Feature_Summary.pdf findet man die DIP-Schalterstellungen für diverse Modelle. Dein Drucker findet man auf Seite F-30, die Beschreibung ist dort noch besser als bei der Anleitung die ich gefunden habe.

macsys schrieb:
edoch ohne Erfolg. Jetzt hab ich noch was gefunden. schau mal : http://www.informatik.uni-konstanz.de/organisation/systemadministration/bekannte-probleme/probleme-in-suse-linux/Könnte evtl damit zu tun haben ?
Nein, hier geht es um die automatisch Konvertierung wenn man ein Drucksystem benutzt. Bei einer Ausgabe auf /dev/lp0 umgehst du alle Treiber. Die Daten werden einfach auf der Parallelen-Schnittstelle ausgeben, egal ob dort ein Drucker oder Toaster angeschlossen ist.
 
OP
M

macsys

Newbie
so ich hab mir das gesamte system jetzt mit nach hause genommen.

Ja. Den Drucker habe ich immer wieder ausgeschaltet wenn ich die sw´s ein/aus geschaltet habe.

Und wenn ich jetzt alles richtig verstanden habe sollte die einstellung:

sw1 : on off on off off off off off
sw2 : off off off on

richtig sein.

Und wenn ich eine Textdatei mit öäüß als UTF-8 gespeichert mit lp dateiname
drucke funzt es auch.
Nur wenn ich die Datei in ISO8859-1bis15 speichere und auf den Drucker leite gibt er andere Zeichen aus.
Und so denke ich arbeitet das Programm ja dann auch.
 

Tooltime

Advanced Hacker
Im Prinzip sollten deine DIP-Schalter richtig stehen. Was mich jetzt noch ein bisschen komisch vorkommt, das der DIP 2-2 je nach Modus eine unterschiedliche Funktion hat , ESC --> Papiergröße, IBM emul. --> Auto CR. Jetzt bin ich mir nicht sicher was den Unterschied DOS/Unix betrifft, Auto CR oder Auto LF. Momentan würde ich eher auf Auto CR tippen, was wiederum zwingend die IBM emul. benötigt.

Aber um dem eigentlichen Problem näher zu kommen, sollte du erst einmal nach schauen wo der Druckauftrag wirklich lang läuft. Mein Vorschlag halte die Ausgabe der Druckerqueue an (cupsdisable) und bewege dein Programm dazu einige Ausgaben zu tätigen. Wenn der Drucker den Text ausgibt erfolgt die Ausgabe direkt auf /dev/lp0, bleibt der Auftrag in der Queue stecken verwendet das Programm das Drucksystem. Dann wissen wir wenigsten wo wir herum basteln müssen.
 

whois

Ultimate Guru
Hi

Ich lese jetzt schon die ganze Zeit Aufmerksam mit.
Was ist das für eine Distribution bzw. Version die du da im Einsatz hast.
Oder habe ich das überlesen? :eek:ps:

cu
 
A

Anonymous

Gast
versuche mal folgendes
Code:
echo "Anfang-äöüÄÖÜ-Ende" | iconv -f utf8 -t latin1 > /dev/lp0

robi
 
OP
M

macsys

Newbie
echo "Anfang-äöüÄÖÜ-Ende" | iconv -f utf8 -t latin1 > /dev/lp0

iconv: illegal input seqence at position 7

HI whois,
die Distrie ist jetzt Debian 5 mit dem kernel 2.6.26-2-bigmem.
Vorher war es opensuse 11.0 mit dem 2.6.25-2-pae

Also direkt auf /dev/lp0 ,wenn ich den Drucker in cups stoppe druckt er. Bei echo "abcd äöüß " > /dev/lp0

Auch wenns evtl. Blödsinn ist :
Evtl. könnten die richtigen Treiber vom Parallelport helfen ? Da ich diese nur mit parport_pc zum laufen gebracht habe.
Die Treiber konnte ich wohl kompiliert, jedoch wollte make install nicht wirklich und dann machte ich es mir einfach. :D

Also es geht auch nicht nur um ein client-rechner und ein Drucker. Der eine ist der originale "epson 570+" und der andere aber baugleiche "highscreen MP600".
 

Tooltime

Advanced Hacker
macsys schrieb:
Also direkt auf /dev/lp0 ,wenn ich den Drucker in cups stoppe druckt er. Bei echo "abcd äöüß " > /dev/lp0
Na wer hätte das auch gedacht oder hast du dich nur ungünstig ausgedrückt? Ist doch klar das die direkte Ausgabe auf /dev/lp0 an der Druckerqueue vorbei geht. Allerdings beantwortet es nicht die Frage wie dein Programm den Drucker anspricht. Sonst basteln wir hier an der direkten Textausgabe auf die Schnittstelle und stellen erst später fest das alles als Grafik über die Druckerqueue gedruckt wird. Daher noch einmal,

Tooltime schrieb:
Mein Vorschlag halte die Ausgabe der Druckerqueue an (cupsdisable) und bewege dein Programm dazu einige Ausgaben zu tätigen.
Nichts mit dem echo-Befehl auf der Konsole machen.
 
OP
M

macsys

Newbie
onst basteln wir hier an der direkten Textausgabe auf die Schnittstelle und stellen erst später fest das alles als Grafik über die Druckerqueue gedruckt wird.

Nein das Tool druckt nicht grafisch. Wenn es grafisch drucken würde, würde es auch funktionieren

Das Tool ist eine Terminal Hostanwendung !!

Und genau das ist doch das Problem. Grafisch geht auf jeden Fall von jedem Programm aus.

Und jede UTF-8 Codierte Datei nicht grafisch geht auch. nur keine ISO-8859-1 bis xx.
 
OP
M

macsys

Newbie
Na so richtig schnall ich jetzt nicht mehr wo dran es genau liegt.

Tooltime hat geschrieben:Mein Vorschlag halte die Ausgabe der Druckerqueue an (cupsdisable) und bewege dein Programm dazu einige Ausgaben zu tätigen.

Nichts mit dem echo-Befehl auf der Konsole machen.

Das hatte ich wohl schon mal gemacht. Jedoch geht der Job hinterher doch über die q von cups (aber auch nicht grafisch!!).
Gut wenn die Druckerqueue gestopt wurde und das Programm drucken will, entsteht in den logs von cups der Inhalt ohne Umlaute.

hmmmm

Das einzige was ich genau weiss ist:

lp datei1(UTF-8) << drucker druckt umlaute
lp datei2(ISO-8859-x) << drucker druckt keine umlaute

gruss macsys
 

Tooltime

Advanced Hacker
macsys schrieb:
Jedoch geht der Job hinterher doch über die q von cups (aber auch nicht grafisch!!).
Was macht dich so sicher das deine Dateien nicht grafisch gedruckt werden? So wie ich es kenne wird einfacher Text vom Drucksystem immer in Postscript umgewandelt. Siehe /etc/cups/mime.convs -->Zeile text/plain application/postscript 33 texttops

Zeig doch mal dein ppd-File zum Drucker, aber über nopaste. Bitte hier im Forum keine ellenlange Dateien einfügen.
 
OP
M

macsys

Newbie
Weil ich das schon getestet hab. Mit dem Serversupport aus Berlin.
Er hat ein Job gestartet und ich hab die cups der Clients vorher gestoppt.

Und, da OpenOffice oder sonstige KDE,GNOME etc Texteditor alle grafisch drucken,
und es von da aus ja funktioniert.

Also ist für mich die erste Frage:

Warum druckt der Drucker Datein im UTF-8 mit Umlaute und warum nicht im ISO-8859 ?

Entweder ist der Drucker blöde und es muss ihn permanent gesagt werden.
Oder es muss Linux gesagt werden.

Oder sehe ich das falsch ? ;oP

gruss macsys

ps. und wenn die bash,root-shell, user-shell doch auf "de_DE.UTF-8" steht warum funktioniert dann die echo ausgabe der umlaute nicht ?
 
Oben