PDA

View Full Version : Druckausgabe über Windows an Etikettendrucker bringt falsche Sonderzeichen



Beate
30-03-17, 09:09
Hallo, wir sind gerade dabei für unsere vielen Etikettendrucker (CAB) eine zentrale Druckersteuerung für die Formate zu installieren. D.h, wir legen jedes Formular nur einmal ab und können über die AS400 dann eine Verteilung an x-Drucker machen...
Leider haben wir das Problem, dass die Spooldatei der AS400 bei der Übertragung in den Windows-Bereich die Sonderzeichen und Umlaute umsetzt.

Im OVRPRTF ist definiert, dass wir mit einem festenZeichensatz arbeiten:
OVRPRTF FILE(FRS431P4) CHRID(697 850) +
OUTQ(DRUCKER/WUE_PA_P06) FORMTYPE(0001) +
SHARE(*YES)
dies scheint aber nicht zu funktioneren..
hat irgend jemand eine Idee ?

Danke
Beate

Fuerchau
30-03-17, 09:16
Beim Spool gibt es in der Regel nur eine Übersetzung der Daten zwischen Spool und Drucker, nie zwischen PRTF und Spool. Hier erwartet der Spooler die Daten in der angegebenen CHRID.
"697 850" gibt es nicht, korrekt wäre "697 273", da du grundsätzlich in EBCDIC ausgibst.
Bei unbekannten CHRID's müsste es eigentlich einen Fehler geben (schau mal die Attribute des Spools an). Ansonsten wird hier ggf. ein Default "697 037" angenommen.
https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_61/rzalu/rzalurefchrid.htm

Beate
30-03-17, 09:29
Danke für die schnelle Antwort, wobei wir mit den CHRID's schon rumgespielt haben und auch die 273 oder andere probiert haben...
Mache aber nochmal einen Test.
Sinnigerweise funktioniert alles, wenn ich direkt auf den Drucker ausgebe und die Format-Datei dort zumische.
Beate

Fuerchau
30-03-17, 10:11
Bei den CHRID's ist es natürlich wichtig, welche CCSID dein aktueller Job bzw. die Quelldaten haben.
Bist du sicher, dass die Umlaute auch wirklich 273 (Deutsch) sind und ggf. nicht was anderes?
Was meinst du mit "direkt auf den Drucker" und "Format-Datei zumischen"?
SPOOL(*NO) funktioniert nur mit direkt angeschlossenen und überwachbaren Druckern.

Beate
31-03-17, 07:26
Guten Morgen,
vielleicht muss ich das ganze nochmal anders erklären.
Wir generieren eine Spoolausgabe mit Umlauten. Sobald ich diese Spooldatei auf einen Windows-Server weiterleite, kommen die Umlaute mit komplett anderen Zeichen an.

hier meine Spoolausgabe:

R TAbsLnd;GERMANY
R TE_Conta;ÄÄÄ ÖÖÖ ÜÜÜ

R TAbsLnd;GERMANY
R TE_Conta;ŽŽŽ ™™™ ššš

Ich hab jetz schonmal versucht, ob man mit Umsetzen über eine WSCST-Datei was machen kann, aber da such ich mir nen Wolf....
In unserer AS400 ist der QCHRID mit 697 273 definiert und die Ausgabe wird über einen rein Deutschen User definiert..

Vielleicht hat ja noch jemand nen Vorschlag.
(Sorry, da ich selbst nicht programmiere, bin ich auf Hilfe angewiesen).

Beate

Fuerchau
31-03-17, 08:23
Wie machst du das?
"Sobald ich diese Spooldatei auf einen Windows-Server weiterleite..."
Das Problem ist folgendes:
Drucker arbeiten normalerweise mit der Codepage 850.
Windows arbeitet mit der Codepage 1252.
Dies allein macht schon den gewaltigen Unterschied bei fast allen Sonderzeichen (nicht nur die deutschen).
Hast du an der Remote-OUTQ oder der DEVD einen Drucker, dann sollte der Standard mit 850 funktionieren.
Auch wenn du kein WSCST angibst, so wird durch Angabe des Druckermodells automatisch ein internes WSCST angenommen mit dem die EBCDIC/ASCII-Umsetzung durchgeführt wird.
Alle Modelle arbeiten mit der Codepage 850!

Benötigst du nun ein WSCST mit einer Umsetzung auf 1252 musst du per RTVWSCST eine Quelle basierend auf deinem Modell erstellen und nach der Umsetztabelle für Codepage 850 suchen.
Dort musst du die Sonderzeichen dann entsprechend der Codepage 1252 anpassen.
Ggf. findest du per WRKTBL eine Umsetztabellle von 273 nach 819 (z.B. Q273337819).
819 ist bzgl. der Sonderzeichen mit 1252 kompatibel.
Per CRTWSCST kannst du dann dein eigenes Objekt erstellen.

Machst du aber einen CPYSPLF mit anschließendem CPYTOSTMF musst du als Zielcodepage eben 1252 statt 850 wählen.

Beate
31-03-17, 09:30
Ich glaub,
Der Weg mit einer WSCST dürfte funktionieren..

Wir mussten eine RMTOUTQ definieren, die allerdings nicht in einem Drucker endet, sondern bei einem Server, der seinerseits wieder eine Weiterleitung zu unterschiedlichen Druckern macht.


Damit können wir dann sicher schonmal rumprobieren.
Danke
Beate

Fuerchau
31-03-17, 10:05
Dann wäre es doch ggf. besser eine 5250-Druckersitzung (gibts auch in der Java-IBM-Clientsolution, oder bei Holger) einzurichten und mit dieser an einen Windowsdrucker bzw. den Printserver zu gehen.