Freigeben über


MXDC_ESCAPE-Funktion

Die MXDC_ESCAPE Drucker-Escapefunktion ermöglicht anwendungen das Schreiben von Dokumenten in eine Datei oder einen Drucker im XPS-Format (XML Paper Specification) mithilfe des Microsoft XPS Document Converter (MXDC).

Rufen Sie zum Ausführen dieses Vorgangs die ExtEscape-Funktion mit den folgenden Parametern auf.

Syntax

int MXDC_ESCAPE(
    hdc,
    cbInput,
    lpszInData,
    cbOutput,
    lpszOutData
);

Parameter

Hdc

Ein Handle für den Kontext des Druckergeräts.

cbInput

Die Größe der Daten in Bytes, auf die der lpszInData-Parameter verweist.

lpszInData

Ein Zeiger auf einen Puffer mit den Eingabedaten, der immer in einer der folgenden Strukturen gespeichert wird.

**MxdcEscapeHeader**
**MxdcPrintTicketEscape**
**MxdcS0PagePassthroughEscape**
**MxdcS0PageResourceEscape**

Jede dieser Strukturen verfügt über ein opcode-Member, das angibt, was der MXDC tun soll. Ausführliche Hinweise zu diesen Codes finden Sie unter MxdcEscapeHeader.

Vorgangscode (opcode) Aktion
MXDCOP_GET_FILENAME
Legt den lpszOutData-Parameter der ExtEscape-Funktion auf fest, entweder den vollständigen Pfad der Ausgabedatei als Zeichenfolge ohne Ende oder die Größe dieser Zeichenfolge.
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ
Ordnet ein Druckticket einer festen XPS-Dokumentsequenz zu.
MXDCOP_PRINTTICKET_FIXED_DOC
Ordnet ein Druckticket einem XPS-Dokument zu.
MXDCOP_PRINTTICKET_FIXED_PAGE
Ordnet ein Druckticket einer XPS-Seite zu.
MXDCOP_SET_S0PAGE
Sendet das XPS-Markup der aktuellen Seite an die Ausgabe.
MXDCOP_SET_S0PAGE_RESOURCE
Sendet eine Ressource auf der Seite, z. B. ein Bild oder eine Schriftart, an die Ausgabe.
MXDCOP_SET_XPSPASSTHRU_MODE
Versetzt das MXDC in einen Passthrough-Zustand, sodass eine Anwendung XPS direkt in die Ausgabedatei schreiben kann, ohne dass das MXDC verarbeitet wird. Auf diese Weise kann ein gesamtes Dokument oder sogar eine Dokumentsequenz geschrieben werden.

cbOutput

Die Größe der Daten in Bytes, auf die der lpszOutData-Parameter verweist.

lpszOutData

Ein Zeiger auf einen Puffer, der die Ausgabedaten enthält.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert größer als 00. Wenn die Funktion fehlschlägt oder nicht unterstützt wird, ist der Rückgabewert kleiner oder gleich 0.

Bemerkungen

Diese Escape wird von MXDC und XPSDrv, aber nicht von GDI unterstützt.

Um zu ermitteln, ob der Druckertreiber der MXDC ist, rufen Sie ExtEscape mit dem GETTECHNOLOGY-Escape auf . Wenn der Treiber der MXDC ist, gibt extEscape die Zeichenfolge "http://schemas.microsoft.com/xps/2005/06"" zurück. Stellen Sie sicher, dass der Puffer, auf den vom parameter lpszOutData verwiesen wird, groß genug ist, um diese Zeichenfolge zu enthalten.

Um zu ermitteln, ob der Druckertreiber der im Lieferumfang enthaltene Microsoft XPS Document Writer-Treiber von Windows ist, vergewissern Sie sich, dass der Druckertreiber der MXDC ist, und ermitteln Sie dann, ob der Name des Druckertreibers "Microsoft XPS Document Writer" lautet.

Verwenden Sie eine der folgenden Techniken, um den Namen des Druckertreibers abzurufen.

Rufen Sie GetPrinterDriver auf, wobei der Wert des Level-Parameters auf 1 festgelegt ist. Der Druckertreibername wird im pName-Element der DRIVER_INFO_1-Struktur zurückgegeben.
oder
Rufen Sie GetPrinter auf, wobei der Wert des Level-Parameters auf 2 festgelegt ist. Der Druckertreibername wird im pDriverName-Element der PRINTER_INFO_2-Struktur zurückgegeben.

Die folgende Tabelle zeigt, wo verschiedene Objekte in der XPS-Datei zu finden sind, unterschiedliche Objekttypen werden geschrieben.

Object Speicherort in der Ausgabedatei
Seite korrigiert /Documents/1/Pages/Esc%d.fpage
Miniaturansicht /Documents/1/Metadata
Ticket drucken /Documents/1/Metadata
Schriftart /Documents/1/Resources/Fonts
Image /Documents/1/Resources/Images

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 [nur Desktop-Apps]
Header
Mxdc.h

Siehe auch

Drucken

Escapefunktionen des Druckers

ExtEscape