勇芳软件工作室.汉化:  Printing > Printer Escape Functions >

POSTSCRIPT_INJECTION

Previous pageReturn to chapter overviewNext page

描述

 

打印机转义功能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参数指向的缓冲区的大小(以字节为单位)。将此参数设置为SIZEOFPSINJECTDATA)加上要注入的原始数据的大小。

 

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字节或更少,包括“%%”,但不包括>{>}{>行终止。