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 |
|