функция MXDC_ESCAPE
Функция escape-MXDC_ESCAPE принтера позволяет приложениям записывать документы в файл или на принтер в формате XPS с помощью microsoft XPS Document Converter (MXDC).
Для выполнения этой операции вызовите функцию ExtEscape со следующими параметрами.
Синтаксис
int MXDC_ESCAPE(
hdc,
cbInput,
lpszInData,
cbOutput,
lpszOutData
);
Параметры
-
Hdc
-
Дескриптор контекста устройства принтера.
-
cbInput
-
Размер (в байтах) данных, на которые указывает параметр lpszInData .
-
lpszInData
-
Указатель на буфер, содержащий входные данные, который всегда хранится в одной из следующих структур.
- **MxdcEscapeHeader**
- **MxdcPrintTicketEscape**
- **MxdcS0PagePassthroughEscape**
- **MxdcS0PageResourceescape**
Каждая из этих структур имеет член кода операции, который указывает, что должен делать MXDC. Подробные сведения об этих кодах см. в разделе MxdcEscapeHeader.
Код операций (opcode) Действие - MXDCOP_GET_FILENAME
Задает параметру lpszOutData функции ExtEscape значение либо полный путь к выходному файлу в виде строки, завершаемой с нуля, либо размер этой строки. - MXDCOP_PRINTTICKET_FIXED_DOC_SEQ
Связывает билет на печать с фиксированной последовательностью документов XPS. - MXDCOP_PRINTTICKET_FIXED_DOC
Связывает билет на печать с документом XPS. - MXDCOP_PRINTTICKET_FIXED_PAGE
Связывает билет на печать со страницей XPS. - MXDCOP_SET_S0PAGE
Отправляет разметку XPS текущей страницы в выходные данные. - MXDCOP_SET_S0PAGE_RESOURCE
Отправляет ресурс на странице, например изображение или шрифт, в выходные данные. - MXDCOP_SET_XPSPASSTHRU_MODE
Переводит MXDC в состояние сквозной передачи, позволяя приложению записывать XPS непосредственно в выходной файл без обработки MXDC. Таким образом можно написать весь документ или даже последовательность документов. -
cbOutput
-
Размер (в байтах) данных, на которые указывает параметр lpszOutData .
-
lpszOutData
-
Указатель на буфер, содержащий выходные данные.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение больше нуля. Если функция завершается сбоем или не поддерживается, возвращаемое значение меньше или равно нулю.
Комментарии
Этот escape-экран поддерживается MXDC и XPSDrv, но не GDI.
Чтобы определить, является ли драйвер принтера MXDC, вызовите ExtEscape с escape-файлом GETTECHNOLOGY . Если драйвером является MXDC, ExtEscape вернет строку, завершаемую с нуля, "http://schemas.microsoft.com/xps/2005/06". Убедитесь, что буфер, на который ссылается параметр lpszOutData , достаточно велик для хранения этой строки.
Чтобы определить, является ли драйвер принтера встроенным драйвером Microsoft XPS Document Writer в Windows, убедитесь, что драйвер принтера является MXDC, а затем определите, является ли драйвер принтера именем "Microsoft XPS Document Writer".
Чтобы получить имя драйвера принтера, используйте один из следующих методов.
- Вызовите Метод GetPrinterDriver со значением параметра Level , равным 1. Имя драйвера принтера возвращается в элементе pNameструктуры DRIVER_INFO_1 .
или
Вызовите GetPrinter со значением параметра Level , равным 2. Имя драйвера принтера возвращается в элементе pDriverName структуры PRINTER_INFO_2 .
В следующей таблице показано, где найти различные объекты в XPS-файле, которые будут записываться в различные типы объектов.
Объект | Расположение в выходном файле |
---|---|
Исправленная страница | /Documents/1/Pages/Esc%d.fpage |
Thumbnail | /Documents/1/Metadata |
Печать билета | /Documents/1/Metadata |
Шрифт | /Documents/1/Resources/Fonts |
Image | /Documents/1/Resources/Images |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
Заголовок |
|