描述
打印机转义功能POSTSCRIPT_INJECTION在PostScript作业流中的指定点插入一个原始数据块。
以GDI为中心模式的PostScript驱动程序和以PostScript为中心的模式支持此转义功能。驱动程序兼容模式不支持。要设置PostScript驱动程序的模式,请调用POSTSCRIPT_IDENTIFY转义功能。
要执行此操作,请使用以下参数调用ExtEscape函数。
C++ 语法
int ExtEscape( hdc, POSTSCRIPT_INJECTION, cbInput, lpszInData, 0, NULL ); |
PowerBASIC 语法
lResult = ExtEscape ( _ hdc, _ %POSTSCRIPT_INJECTION, _ cbInput, _ lpszInData, _ 0, _ BYVAL %NULL _ ) |
参数
hdc
[in]处理打印机设备上下文。
nEscape
[in]指定lpszInData参数指向的数据的大小(以字节为单位)。使用POSTSCRIPT_INJECTION进行此操作。
cbInput
[in]指定lpszInData参数指向的缓冲区的大小(以字节为单位)。将此参数设置为SIZEOF(PSINJECTDATA)加上要注入的原始数据的大小。
lpszInData
[in]指向PSINJECTDATA结构的指针,然后注入原始数据。
cbOutput
[in]指定lpszOutData参数指向的数据的大小(以字节为单位)。将该参数设置为0。
lpszOutData
[out]指向包含输出数据的缓冲区的指针。将此参数设置为NULL。
返回值
如果函数成功,返回值大于零。如果函数失败或不支持,返回值小于或等于零。
备注
指定注射点的注射数据是累积的。换句话说,POSTSCRIPT_INJECTION将新的注入数据添加到以前为同一注入点指定的注入数据。
如果作业处于EMF数据类型,则必须使用POSTSCRIPT_INJECTION打印机转义功能在StartDoc之前提供所有注入数据。
如果作业是RAW数据类型,则必须在驱动程序需要之前提供以下注入数据:
· | 在调用第一个StartPage函数之前,头部分数据(在第一个%% Page :)之前。 |
· | 在为该特定页面调用StartPage功能之前,页面设置部分的数据(在为特定页面注入数据时)。 |
· | 在为起始页调用StartPage之前,页面设置部分的数据(从特定页面开始为所有页面注入数据时)。 |
· | 调用EndPage功能之前的页面预告片段数据。 |
· | 调用EndDoc函数之前的文档预告片段数据。 |
驱动程序内部缓存注入数据,并在输出中的适当点发出。缓存的信息在不再需要时被刷新。最迟在EndDoc电话后刷新。
以GDI为中心的模式,应用程序只能使用POSTSCRIPT_INJECTION打印机转义功能注入有效的DSC块数据。有效的DSC块必须满足以下所有条件:
· | 它由“线”的整体序列组成。 |
· | “行”必须以“%%”开头。 |
· | 除了最后一行之外,“行”必须以<CR >,<LF >或<CR ><LF >结尾。如果最后一行不以<CR >,<LF >或<CR ><LF >结尾,驱动程序会追加<CR ><LF(989796004)注入数据的最后一个字节之后。 |
· | “行”必须为255字节或更少,包括“%%”,但不包括>{>}{>行终止。 |