Ausgabemedium festlegen/abfragen

Die Festlegung/Abfrage des Ausgabemediums kann zum einen über einen Parameter beim Funktionsaufruf von LlPrint[WithBox]Start() erfolgen. Hier können verschiedene Werte übergeben werden:

Wert

Bedeutung

LL_PRINT_NORMAL

Ausgabemedium "Drucker" wird voreingestellt.

LL_PRINT_PREVIEW

Ausgabemedium "Vorschau" wird voreingestellt.

LL_PRINT_FILE

Ausgabemedium "Druckdatei" wird voreinge­stellt.

LL_PRINT_EXPORT

Als Ausgabemedium wird ein Exportmodul vor­ein­ge­stellt, welches anschließend über Ll­Print­SetOption­String(LL_­PRNOPTSTR_­EXPORT) festgelegt werden kann.

 

Zum anderen kann über LlPrint­SetOption­String(LL_­PRNOPTSTR_­EXPORT) ein bestimmtes Ausgabemedium eingestellt werden, welches gleichzeitig im Ll­PrintOptionsDialog() als Auswahl voreingestellt wird.

Beispiel zur Festlegung des Ausgabemediums auf RTF-Export:

LlPrintWithBoxStart(..., LL_­PRINT_­EXPORT, ...);
LlPrint­SetOption­String(hJob, LL_­PRNOPTSTR_­EXPORT, "RTF");
LlPrintOptionsDialog(...);

Falls der Endanwender kein anderes Ausgabemedium im LlPrintOptionsDia­log() auswählen können soll, dann müssen diese über LL_­OPTIONSTR_­EXPORTS_­ALLOWED vorher explizit deaktiviert werden. Dies geschieht, indem dort ausschließlich das gewünschte Ausgabemedium übergeben wird.

Der Endanwender kann allerdings auch im Designer über Projekt > Seitenlayout bei den Ausgabemedien ein Exportmodul voreinstellen. Das gewählte Exportmodul wird durch List & Label über die LL_­PRNOPTSTR_­EXPORT Option voreingestellt. Das Anwendungsprogramm sollte dies berücksichtigen und entweder selbst in diesem Falle keine Voreinstellung vornehmen oder die Möglichkeit der Voreinstellung im Designer verbieten. Ansonsten würde der Endanwender ziemlich verwirrt werden, wenn er im Designer explizit "RTF" als Standardexportmedium auswählt, das Anwendungs­pro­gramm aber beim Druck fest "HTML" vorschlägt.

Beispiel in C++ zur Berücksichtigung eines evtl. bereits eingestellten Export-Mediums (wenn keine Voreinstellung seitens des Endanwenders im Designer, dann als Voreinstellung Druck auf Vorschau einstellen):

LlPrintGetOptionString(hJob, LL_PRNOPTSTR_EXPORT, sMedia.GetBuffer(256),        256);
sMedia.ReleaseBuffer();
if (sMedia == "") //keine Voreinstellung vorhanden

{
       LlPrintSetOptionString(hJob, LL_PRNOPTSTR_EXPORT, TEXT("PRV"));
       LlPrintOptionsDialog(...);

}

Beispiel zum Ausschalten der Voreinstellungsmöglichkeit durch den End­anwen­der im Designer:

LlSetOption(hJob, LL_OPTION_SUPPORTS_PRNOPTSTR_EXPORT, FALSE);
//...
LlDefineLayout(...);

Die Abfrage des letztlich vom Endanwender gewählten Ausgabemediums ge­schieht nach erfolgtem LlPrintOptionsDialog() ebenfalls über diese Option.

Beispiel zur Abfrage des Ausgabemediums:

//...
LlPrintOptionsDialog(...);
LlPrintGetOptionString(hJob, LL_­PRNOPTSTR_­EXPORT, sMedia.GetBuffer(256), 256);
sMedia.ReleaseBuffer();
//...
if (sMedia == "PRV")
{
       LlPreviewDisplay(...);
       LlPreviewDeleteFiles(...); //optional   
}