Rhaban
Anmeldungsdatum: 25. Juni 2016
Beiträge: 450
|
Hallo, Josefine, herzlichen Dank für Deine détaillierte Anweisung, der ich von A bis Z gefolgt bin. Es hat fast alles bestens geklappt. Der Testdruck hat funktioniert, ebenso der doppelseitige Ausdruck einer PDF-Datei via Evince. Nicht funktioniert hat nur der Ausdruck derselben Datei über | lpr -P HLL2350DW PDF_2022-06-05.pdf
|
Die erste Seite der zweiseitigen Datei wurde zwar korrekt gedruckt, die zweite Seite zeigt dann aber nur zwei Rahmen und bricht dann den Ausdruck ab. Ich lasse jeden Tag diese PDF-Dateien von einem Shellscript generieren; vielleicht ist doch ein Fehler darin, das muss ich erst einmal untersuchen. Dir vielen Dank für Deine Mühe und noch einen schönen Pfingstfeiertag!
Moderiert von redknight: Threads zusammengeführt
|
josefine
Anmeldungsdatum: 26. Mai 2022
Beiträge: 43
|
Rhaban schrieb: Hallo, Josefine, herzlichen Dank für Deine détaillierte Anweisung, der ich von A bis Z gefolgt bin. Es hat fast alles bestens geklappt. Der Testdruck hat funktioniert, ebenso der doppelseitige Ausdruck einer PDF-Datei via Evince. Nicht funktioniert hat nur der Ausdruck derselben Datei über | lpr -P HLL2350DW PDF_2022-06-05.pdf
|
Die erste Seite der zweiseitigen Datei wurde zwar korrekt gedruckt, die zweite Seite zeigt dann aber nur zwei Rahmen und bricht dann den Ausdruck ab. Ich lasse jeden Tag diese PDF-Dateien von einem Shellscript generieren; vielleicht ist doch ein Fehler darin, das muss ich erst einmal untersuchen. Dir vielen Dank für Deine Mühe und noch einen schönen Pfingstfeiertag!
Bitte - gerne geschehen. Wegen deinem Druck der besagten Datei über das Terminal muss ich Moment leider passen, aber ich kann mir vorstellen das da der eine oder andere Parameter fehlt.
Es kann aber auch sein das beim generieren der Datei ein kleiner Fehlerteufel steckt.
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 450
|
Vielen Dank für Deine Nachricht von gerade eben. Du hast wohl Recht, wenn Du schreibst: Wegen deinem Druck der besagten Datei über das Terminal muss ich Moment leider passen, aber ich kann mir vorstellen dass da der eine oder andere Parameter fehlt.
Ich muss mir das in Ruhe ansehen. Heute kann ich das aber leider noch nicht machen, weil die Zeit fehlt.
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 450
|
Hallo, leider gibt es jetzt doch ein Problem: Zwar lassen sich pdf-Dateien jetzt offenbar problemlos mit Evince und Okular ausdrucken, nicht aber von der Shell mit
oder mit
| lp -o fit-to-page -o media=a4 -o sides=two-sided-long-edge -o number-up=2 "${fichier}"
|
Da kommt entweder nur ein weißes, unbedrucktes Blatt (lpr ...) oder nur ein Teilausdruck (lp -o ...). Ich habe in meinen Programmen an mehreren Stellen Druckaufträge via Shellbefehl; da immer ein Programm wie Evince aufzurufen wäre zu umständlich. Wenn mir jemand auch bei diesem Problem helfen könnte, wäre ich dankbar.
|
josefine
Anmeldungsdatum: 26. Mai 2022
Beiträge: 43
|
Hmm, habe mich jetzt ein wenig damit beschäftigt denn ich habe noch nie aus der Konsole heraus drucken müssen. Habe es bei meinem System getestet und ich habe zwei Brother Laserdrucker (HL-3162CDW und HL-3040CN) genau so mit der Anleitung installiert wie ich sie dir genannt habe.
Ich kann PDF Dateien aus der Konsole heraus drucken... Hast du cups-bsd installiert?
Müsste eigentlich von Standard installiert sein und Cups kann mit den Befehlen lpr lp durchaus umgehen. Ich kann mir nur vorstellen das eventuell beim erstellen der PDF Datei irgend etwas nicht ganz rund läuft. txt Dateien und auch odt mag lpr nicht ausführen..... Erstelle eine ganz neue PDF Datei und versuche diese über die Konsole auszudrucken. Mal schauen ob das klappt.
Neu gestartet hast du nach der Drucker Installation ja sicher schon.
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 450
|
Danke, Josefine, für Deine Nachricht. Du schreibst: Hmm, habe mich jetzt ein wenig damit beschäftigt denn ich habe noch nie aus der Konsole heraus drucken müssen.
Habe es bei meinem System getestet und ich habe zwei Brother Laserdrucker (HL-3162CDW und HL-3040CN) genau so mit der Anleitung installiert wie ich sie dir genannt habe. Ich kann PDF Dateien aus der Konsole heraus drucken...
Hast du cups-bsd installiert? Müsste eigentlich von Standard installiert sein und Cups kann mit den Befehlen lpr lp durchaus umgehen.
Das weiß ich leider nicht. Wie kann ich das feststellen? Ich kann mir nur vorstellen das eventuell beim erstellen der PDF Datei irgend etwas nicht ganz rund läuft.
Ich habe eine ganze Liste von PDF-Dateien, die mein Shellskript allabendlich generiert. In der von gestern Abend mag ein Fehler gewesen sein, die von vorgestern wird aber klaglos ausgedruckt. Nur druckt der Drucker nicht beidseitig, sondern alles, verkleinert, auf eine Seite.
Der Druckbefehl lautete:
| lp -o fit-to-page -o media=a4 -o sides=two-sided-long-edge -o number-up=2 PDF_2022-06-04.pdf
|
txt Dateien und auch odt mag lpr nicht ausführen.....
Erstelle eine ganz neue PDF Datei und versuche diese über die Konsole auszudrucken. Mal schauen ob das klappt. Neu gestartet hast du nach der Drucker Installation ja sicher schon.
Das habe ich getan; ich habe eine odt-Datei von Libre Office in eine pdf-Datei konvertieren lassen. Die wurde auch problemlos von lp und lpr aus ausgedruckt. Eigentlich ist von allen meinen Problemen nur noch eines übrig: Wie bewältigt mein Drucker einen Kopfzeilenausdruck? (Ich benötige das als Kopfzeile für Blätter, auf die ich dann Zeitungsartikel klebe). Bisher lautete der Druckbefehl:
| lpr -l -P "${drucker}" 002.prn
|
Wobei die Variable $drucker jetzt "HLL2350DW" lautet. Die Datei 002.prn sah bisher so aus:
1
2
3
4
5
6
7
8
9
10
11
12
13 | E(11U&a7L(s0p10h0s0b3T&48DÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Lu/Mo 06.06.2022, 18:17 ³
!0.91HFAZ 2022/128 Onkel
!1.00H&a56C ³ &dDUKR 122-0313.00&d@ ³
³ <39.280> ³
!0.91HWowa, wir stehen zu dir
!1.00H&a56C ³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
(Inhaltlich geht es um einen Artikel über Putin aus der FAZ.) Mit dieser Datei kommt der neue Drucker nicht zurecht; er wirft nur eine leere Seite aus. Ich muss die Datei 002.prn jetzt überarbeiten und vor allem die Frage klären, ob ich statt lpr lieber lp verwende. Das muss ich aber ausprobieren. Na, morgen habe ich Zeit dafür. Allen, die mir bisher geholfen haben, besten Dank!
|
josefine
Anmeldungsdatum: 26. Mai 2022
Beiträge: 43
|
Für beidseitiges Drucken versuche mal einen von diesen Befehlen: lp -o sides=two-sided-short-edge filename
lp -o sides=two-sided-long-edge filename
lpr -o sides=two-sided-long-edge filename Für Banner könnte da eine Version klappen: Auswählen der Bannerseite(n)
Die -o job-sheets=start,endOption legt die für einen Job zu verwendende(n) Bannerseite(n) fest:
lp -o job-sheets=kein Dateiname
lp -o job-sheets=Standarddateiname
lpr -o job-sheets=klassifiziert,klassifizierter Dateiname LPR Befehle findest du auf deinem PC wenn du in der Adresszeile deines Browsers: http://localhost:631/help/options.html eingibst. So, jetzt gehen mir aber langsam auch die Ideen aus.
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 450
|
Hallo, Josefine, danke für Deine Nachricht. Ich hatte bisher an verschiedenen Stellen meines Shellscript-Programms den Drucker direkt angesteuert. Ein Beispiel ist das Kalenderausdrucksprogramm, das jahrelang (und bis vor ca. einer Woche) sehr gut funktioniert hatte. Da es nicht so lang ist, kopiere ich es einmal hierher:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 | #!/bin/bash
echo -e -n "\033E\033(11U\033&a10L\033(s0p10v15h0s0b3T\033&48D" > 001.prn # Initialisierung des Druckers, <ESCAPE>E,
# Zeichensatz 11 U ― damit Umstellung auf
# MS-DOS! ―, linker Rand bei Spalte 10
# 14 Zeilen/Zoll (Grund: Die Datei 001.prn enthält
# ― wegen des MS-DOS-Formats des Zeilenvorschubs ―
# zwischen jeder Kalenderzeile eine Leerzeile.
echo -e -n "╔════════════════════════════════════════════════════════════════════════════════════════════════════╗\033&a-.3R\012\015" >> 001.prn
echo -e -n "║ Kalender ║\033&a-.3R\012\015" >> 001.prn
echo -e -n "╠════════════════════════════════════════════════════════════════════════════════════════════════════╣\033&a-.3R\012\015" >> 001.prn
stellv="00000000" # Stellvariable für den Ausdruck oder Nichtausdruck des Tages
erstdatum="ja" # Variable zur Verhinderung des Ausdrucks zweier Striche untereinander
druckzeile=0 # Es können maximal 80 Zeichen/Seite gedruckt werden.
while read zeile
do
tag=${zeile:0:8}
if [ "${tag}" != "${stellv}" ]
then
if [ "${erstdatum}" = "nein" ]
then
echo -e -n "╟────────────────────────────────────────────────────────────────────────────────────────────────────╢\033&a-.3R\012\015" >> 001.prn
druckzeile=`expr $druckzeile + 1` # Nächste Druckzeile
fi
erstdatum="nein"
datum=`date --date="${tag}" "+%a %x"`
else
datum=" " # Dasselbe Datum soll nicht mehrfach gedruckt werden.
# Di 21.02.2017
fi
stellv="${tag}" # Neuer Wert für die Variable stellv
zeit=${zeile:8:5}
az=${zeile:13:3}
schluesselzahl=${zeile:16:2}
text=${zeile:18}
ausgabe="║ ${datum} ${zeit} \033(s3B${az}\033(s0B ${schluesselzahl} ${text} "
ausgabe=${ausgabe:0:117}
ausgabe="${ausgabe}\033&a5568H║\033&a-.3R\012\015" # \012 ist 10 dezimal, es entspricht \n.
# <ESC>&a5568H ist der ― absolute ― rechte Rand aus ASSISTYK.JOB.
echo -e -n "${ausgabe}" >> 001.prn
druckzeile=`expr $druckzeile + 1` # Nächste Druckzeile
if [ $druckzeile -ge 79 ] # Abbruch, wenn die Seite voll ist
then
break
fi
done < YK.DTA
echo -e -n "╚════════════════════════════════════════════════════════════════════════════════════════════════════╝\033&a-.3R\012\015" >> 001.prn
echo -e -n "\014" >> 001.prn
dialog --colors --title " Auszudruckende Datei " --infobox "Wollen Sie den Kalender ausdrucken?\n\n\
\Z4<RETURN>\Zn Datei ausdrucken\n\
\Z4 N\Zn Datei nicht ausdrucken\n\n" 30 130
./getkey > getkey4.vge
v4=`cat getkey4.vge`
v4=`echo $v4|tr "[:lower:]" "[:upper:]"`
if [ "${v4}" = "--> 10" ]
then
cat 001.prn | sed -f umlaute.sed > 002.prn
lp 002.prn
fi
|
getkey ist übrigens ein Befehl, den ich aus der Rheinwerk-Homepage genommen habe und der es gestattet, Buchstaben einzugeben und nicht danach <RETURN> drücken zu müssen; "–> 10" bedeutet hier: „<RETURN> drücken”. Den eigentlichen Ausdruck habe ich dann mit
(im Programm Zeile 64) ausgelöst. Leider „versteht” der Drucker die Befehle nicht mehr; die einzige Reaktion ist der Ausdruck (oder: die Ausgabe) eines leeren Blattes. Eine laienhafte Frage: Ich rufe als wohlerzogener Linuxnutzer jeden Abend vor dem Herunterfahren
| sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoremove
|
auf; könnte auf diesem Wege eine Änderung der Nutzung des Befehls lp auf meinen Rechner gelangt sein?
|
josefine
Anmeldungsdatum: 26. Mai 2022
Beiträge: 43
|
könnte auf diesem Wege eine Änderung der Nutzung des Befehls lp auf meinen Rechner gelangt sein?
Klar kann das passiert sein, aber hast du nicht darauf geachtet was eventuell aktualisiert worden ist?
Ich kann dir jetzt auch nicht sagen, was passiert ist.
An der Drucker Konfiguration liegt es sicherlich (meines Wissens nach) nicht mehr.
Er wird ja korrekt angesprochen und wenn du eine neue Datei ausdruckst läuft es ja. Mit so Scripts ist das immer so eine Sache für sich.
Da kommt irgendwann mal ein Update und dann haben sich eventuell Befehle geändert usw. dann heißt es wieder anpassen .... Wie gesagt, da musst du jetzt deine Scripts durch sehen und eventuell das eine oder andere anpassen. Aber bei deinen Codes gibt es sicher Menschen hier die sich viel besser auskennen. Ich würde aber einen neuen Thread diesbezüglich eröffnen, denn das Druckerproblem ist ja nun doch gelöst, oder?
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 450
|
Du hast Recht: Der Drucker druckt, wenn ich ganze Dateien an ihn schicke. Das funktioniert. Ich werde also Deinem Rat folgen und den Thread hier schließen und einen neuen aufmachen. Allen, die geholfen haben, besten Dank! Rhaban
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 450
|
Hallo, zwar kann ich meinen (neuen) Drucker Brother HL-L2350DW dazu bringen, dass er ganze Dateien druckt, ebenso meinen alten HL-5250DN, etwa von Evince aus pdf-Dateien oder von Libre Office aus odt-Dateien; beide Drucker reagieren aber nicht mehr auf einzelne Drucksteuerungsbefehle, wie ich sie noch bis vor einer Woche verwenden konnte. Ein Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 | #!/bin/bash
echo -e -n "\033E\033(11U\033&a10L\033(s0p10v15h0s0b3T\033&48D" > 001.prn # Initialisierung des Druckers, <ESCAPE>E,
# Zeichensatz 11 U ― damit Umstellung auf
# MS-DOS! ―, linker Rand bei Spalte 10
# 14 Zeilen/Zoll (Grund: Die Datei 001.prn enthält
# ― wegen des MS-DOS-Formats des Zeilenvorschubs ―
# zwischen jeder Kalenderzeile eine Leerzeile.
echo -e -n "╔════════════════════════════════════════════════════════════════════════════════════════════════════╗\033&a-.3R\012\015" >> 001.prn
echo -e -n "║ Kalender ║\033&a-.3R\012\015" >> 001.prn
echo -e -n "╠════════════════════════════════════════════════════════════════════════════════════════════════════╣\033&a-.3R\012\015" >> 001.prn
stellv="00000000" # Stellvariable für den Ausdruck oder Nichtausdruck des Tages
erstdatum="ja" # Variable zur Verhinderung des Ausdrucks zweier Striche untereinander
druckzeile=0 # Es können maximal 80 Zeichen/Seite gedruckt werden.
while read zeile
do
tag=${zeile:0:8}
if [ "${tag}" != "${stellv}" ]
then
if [ "${erstdatum}" = "nein" ]
then
echo -e -n "╟────────────────────────────────────────────────────────────────────────────────────────────────────╢\033&a-.3R\012\015" >> 001.prn
druckzeile=`expr $druckzeile + 1` # Nächste Druckzeile
fi
erstdatum="nein"
datum=`date --date="${tag}" "+%a %x"`
else
datum=" " # Dasselbe Datum soll nicht mehrfach gedruckt werden.
# Di 21.02.2017
fi
stellv="${tag}" # Neuer Wert für die Variable stellv
zeit=${zeile:8:5}
az=${zeile:13:3}
schluesselzahl=${zeile:16:2}
text=${zeile:18}
ausgabe="║ ${datum} ${zeit} \033(s3B${az}\033(s0B ${schluesselzahl} ${text} "
ausgabe=${ausgabe:0:117}
ausgabe="${ausgabe}\033&a5568H║\033&a-.3R\012\015" # \012 ist 10 dezimal, es entspricht \n.
# <ESC>&a5568H ist der ― absolute ― rechte Rand aus ASSISTYK.JOB.
echo -e -n "${ausgabe}" >> 001.prn
druckzeile=`expr $druckzeile + 1` # Nächste Druckzeile
if [ $druckzeile -ge 79 ] # Abbruch, wenn die Seite voll ist
then
break
fi
done < YK.DTA
echo -e -n "╚════════════════════════════════════════════════════════════════════════════════════════════════════╝\033&a-.3R\012\015" >> 001.prn
echo -e -n "\014" >> 001.prn
dialog --colors --title " Auszudruckende Datei " --infobox "Wollen Sie den Kalender ausdrucken?\n\n\
\Z4<RETURN>\Zn Datei ausdrucken\n\
\Z4 N\Zn Datei nicht ausdrucken\n\n" 30 130
./getkey > getkey4.vge
v4=`cat getkey4.vge`
v4=`echo $v4|tr "[:lower:]" "[:upper:]"`
if [ "${v4}" = "--> 10" ]
then
cat 001.prn | sed -f umlaute.sed > 002.prn
lp 002.prn
fi
|
Ich löste (jahrelang) den Druck aus mit
(im Shellscript Zeile 64). Jetzt wirft der Drucker aber nur noch ein leeres Blatt aus; gedruckt wird nichts mehr. Wenn mir jemand weiterhelfen könnte, wäre ich dankbar. Rhaban
|
josefine
Anmeldungsdatum: 26. Mai 2022
Beiträge: 43
|
Du solltest vielleicht dazu schreiben, das der Drucker über die grafische Oberfläche ganz normal druckt und funktioniert, lediglich die selbst geschriebenen Scripte machen über lpr bzw. lp Probleme. Sonst sehen viele wieder das Problem beim Drucker!
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 450
|
Danke, Josefine, Du hast ganz Recht: Das Druckerproblem besteht nur dann, wenn ich von der Shell aus Druckbefehle an den Drucker schicke. Rufe ich Libre Office oder Evince oder Okular oder Kate auf und will von da eine Datei ausdrucken, geschieht das immer korrekt. Bisweilen irrational reagiert der Drucker aber, wenn ich einen Befehl von der Shell aus mit lp oder lpr beginne und an den Drucker schicke. Diese Befehle hatten jahrelang bestens funktioniert (und ich hatte sie auch nicht verändert) ... und plötzlich funktionieren sie nicht mehr. Entweder wird nur eine leere Seite ausgeworfen oder es passiert gar nichts. Es würde mich interessieren, ob andere Ubuntuuser dasselbe Problem haben und ob es eine gemeinsame Lösung für dieses Problem gibt.
|
josefine
Anmeldungsdatum: 26. Mai 2022
Beiträge: 43
|
Irgendwie lässt es mir auch keine Ruhe. Ich bin zwar eine sehr unbegabte Programmiererin und auch keine gute Codeschreiberin, aber wenn ab der Zeile 64 nichts nehr ausgedruckt wird liegt es vielleicht am sed Befehl. Vielleicht hat sich da etwas geändert ...
Hier ein Link zu sed https://www.ionos.at/digitalguide/server/konfiguration/linux-sed-befehl/
|
Rhaban
(Themenstarter)
Anmeldungsdatum: 25. Juni 2016
Beiträge: 450
|
Danke, Josefine, für Deine Nachricht und für alle Deine Hilfe! Ich habe in den letzten Tagen mehrere Shellskripts laufen lassen, in denen über einzelne Befehle der Drucker angesteuert wird. Früher hat das immer problemlos funktioniert, jetzt passiert entweder gar nichts oder es wird nur eine leere Seite unbedruckt ausgeworfen. Wenn ich von einem Programm aus wie Libre Office oder Evince oder Okular oder Kate ... eine Datei zum Drucken an den Drucker schicke, wird sie aber korrekt gedruckt. Ich vermute kein Problem bei sed; ich verwende sed auch in ganz anderen (Nicht-Druck-)Zusammenhängen und da funktioniert es nach wie vor. Ich könnte mir vorstellen, dass sich irgendein Parameter bei lp oder lpr geändert hat, dass man also eine andere Option à la -a, -b, -c ... als bisher eingeben muss. Aber das ist nur die Vermutung eines Laien. Vielleicht findet ja einer der Profis hier im Forum etwas heraus; ich würde mich freuen.
|