PRN-Export

Hallo,

vor fast vier Jahren habe ich hier im Forum eine Anfrage gestellt, wie ich eine Vorschaudatei in eine Druckerdatei .prn konvertieren kann. Leider erhielt ich keine Antwort.

Jetzt stellt sich mir das Problem erneut. Wie kann ich eine Vorschaudatei in eine Druckerdatei .prn konvertieren?
Laut Programmierreferenz ist dies möglich mit LlStgsysStorageConvert(…) bzw. mit LlStgsysConvert (HLLSTG hStrg, LPCTSTR pszQuelldatei, LPCTSTR pszZieldatei, LPCTSTR pszFormat):

Auszug aus der Programmierreferenz:
INT LlStgsysConvert (HLLSTG hStg, LPCTSTR pszDstFilename, LPCTSTR pszFormat)

pszFormat: Gewünschtes Zielformat. Erlaubte Werte:
“TIFF” (auch als “PICTURE_MULTITIFF”)
“JPEG” (auch als “PICTURE_JPEG”)
“PNG” (auch als “PICTURE_PNG”)
“EMF”
“TTY”
“PDF”
“XPS”
“PRN”

Es funktioniert aber nicht, der Returnwert beider Funktionen ist jeweils -12 (= Fehler während des Druckens). Von beiden Funktionen wird zwar eine .prn-Datei angelegt, sie ist aber leer!

Fehlermeldung aus der Log-Datei:
EXCEPTION(Konvertierungsfehler: Drucker ‘’ kann nicht geöffnet werden: Der Vorgang wurde erfolgreich beendet. (00000000))

Den Bericht zweimal zu erzeugen, einmal als Vorschau- und einmal als .prn-Datei, ist eine schlechte Option, da der der Aufbau der Berichte zeitaufwendig sein kann. Die Vorschaudatei muss ich nur deshalb erzeugen, weil ich die Seitenzahl benötige.

Die Konvertierungen in ein anderes Format funktionieren fehlerfrei.

Ich verwende L&L 18.

Hallo Herr Blumenauer,

vielen Dank für Ihren Beitrag.

Unter C# konnten wir das Verhalten wie folgt lösen:

report.ConvertTo(@"", @“PRN;PRN.Device=”);

Wichtig ist hierbei das Hinzufügen des zur Erstellung der Vorschaudatei verwendeten Druckers über “PRN.Device=…”

Unabhängig davon werden wir die Dokumentation ab der nächsten Unterversion um diese Information erweitern. Vielen Dank für Ihren Hinweis!

Mit freundlichen Grüßen

Patrick Preuschoff
Technischer Support
combit GmbH

Hallo Herr Preuschoff,

vielen Dank für Ihre Antwort.
So funktioniert es jetzt auch mit der API-Funktion:

LlStgsysStorageConvert(pszQuelldatei, pszZieldatei, “PRN;PRN.Device=Devicename”);

Viele Grüße,

Dirk Blumenauer