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 voreingestellt. |
LL_PRINT_EXPORT |
Als Ausgabemedium wird ein Exportmodul voreingestellt, welches anschließend über LlPrintSetOptionString(LL_PRNOPTSTR_EXPORT) festgelegt werden kann. |
Zum anderen kann über LlPrintSetOptionString(LL_PRNOPTSTR_EXPORT) ein bestimmtes Ausgabemedium eingestellt werden, welches gleichzeitig im LlPrintOptionsDialog() als Auswahl voreingestellt wird.
Beispiel zur Festlegung des Ausgabemediums auf RTF-Export:
LlPrintWithBoxStart(...,
LL_PRINT_EXPORT, ...);
LlPrintSetOptionString(hJob,
LL_PRNOPTSTR_EXPORT, "RTF");
LlPrintOptionsDialog(...);
Falls der Endanwender kein anderes Ausgabemedium im LlPrintOptionsDialog() 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 Anwendungsprogramm 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 Endanwender im Designer:
LlSetOption(hJob,
LL_OPTION_SUPPORTS_PRNOPTSTR_EXPORT,
FALSE);
//...
LlDefineLayout(...);
Die Abfrage des letztlich vom Endanwender gewählten Ausgabemediums geschieht 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
}