描述
MXDC_ESCAPE打印机转义功能使应用程序可以通过Microsoft XPS文档转换器(MXDC)以XML Paper Specificaton(XPS)格式将文档写入文件或打印机。
要执行此操作,请使用以下参数调用ExtEscape功能。
C++ 语法
int ExtEscape( hdc, MXDC_ESCAPE, cbInput, lpszInData, cbOutput, lpszOutData ); |
PowerBASIC 语法
lResult = ExtEscape ( _ hdc, _ %MXDC_ESCAPE, _ cbInput, _ lpszInData, _ cbOutput, _ lpszOutData _ ) |
参数
hdc
[in]处理打印机设备上下文。
nEscape
[in]指定lpszInData参数指向的数据的大小(以字节为单位)。使用MXDC_ESCAPE进行此操作。
cbInput
[in]指定lpszInData参数指向的数据的字节数。
lpszInData
[in]指向包含输入数据的缓冲区的指针。这将永远是以下结构之一。
· | MxdcEscapeHeader |
· | MxdcPrintTicketEscape |
· | MxdcS0PagePassthroughEscape |
· | MxdcS0PageResourceEscape |
这些结构中的每一个将具有以下操作码之一,指定MXDC应该做什么。有关这些代码的详细说明,请参阅主题MxdcEscapeHeader.
MXDCOP_GET_FILENAME
返回在ExtEscape函数的lpszOutData参数中,输出文件的完整路径为零终止字符串或该字符串的大小。
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
[in]指定lpszOutData参数指向的数据的大小(以字节为单位)。
lpszOutData
[out]指向包含输出数据的缓冲区的指针。
返回值
如果函数成功,返回值大于零。如果函数失败或不支持,返回值小于或等于零。
备注
此转义由MXDC和XpsDrv支持,而不是由GDI支持。
在使用MXDC_ESCAPE呼叫ExtEscape之前,请使用GETTECHNOLOGY转义来确定驱动程序是否为MXDC。如果是MXDC,该函数将返回零终止字符串“http://schemas.microsoft.com/xps/2005/06”。确保将cbInput参数设置得足够大以容纳此字符串。
下表显示了XPS文件中将要写入的各种类型的对象。
目的 |
输出文件中的位置 |
固定页 |
/Documents/1/Pages/Esc%d.fpage |
缩略图 |
/Documents/1/Metadata |
打印机票 |
/Documents/1/Metadata |
字形 |
/Documents/1/Resources/Fonts |
图片 |
/Documents/1/Resources/Images |
引用文件 #INCLUDE Once
Mxdc.inc