2.2.3.7 EMRI_PS_JOB_DATA Record
The EMRI_PS_JOB_DATA record stores encapsulated PostScript (EPS) data at the document level. If this record is present, it MUST appear immediately after an EMFSPOOL Header Record (section 2.2.2), as shown in the Record Syntax (section 2.2.1).
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ulID |
|||||||||||||||||||||||||||||||
cjSize |
|||||||||||||||||||||||||||||||
PostScriptDataRecords (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
ulID (4 bytes): A 32-bit unsigned integer that identifies the type of record. The value MUST be 0x00000014, from the RecordType Enumeration (section 2.1.1).
cjSize (4 bytes): A 32-bit unsigned integer that specifies the size, in bytes, of the data attached to the record. Each record in EMFSPOOL format MUST be aligned to a multiple of 4 bytes.
PostScriptDataRecords (variable): Data after the ulID and cjSize fields comes as multiple PostScript data records until all cjSize bytes are accounted for. Each variable-size record has the following structure.
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1PostScriptDataRecordSize
nEscape
nIgnore
PostScriptDataSize
PostScriptData (variable)
...
...
nAlignment (variable)
...
...
-
PostScriptDataRecordSize (4 bytes): A 32-bit unsigned integer that specifies the size, in bytes, of this PostScript data record. This value is based upon the value of PostScriptDataSize as follows:
-
Value of (PostScriptDataSize modulo 4)
Value of PostScriptDataRecordSize
0
PostScriptDataSize + 16
1
PostScriptDataSize + 15
2
PostScriptDataSize + 18
3
PostScriptDataSize + 17
-
-
nEscape (2 bytes): A 16-bit unsigned integer that specifies the escape code. It MUST be one of the following values; otherwise, this record is ignored.
-
Value
Meaning
POSTSCRIPT_IDENTIFY
0x1005
Specify either PostScript–centric or GDI–centric mode to the printer driver.
POSTSCRIPT_INJECTION
0x1006
Insert a block of raw data into a PostScript stream.
-
-
nIgnore (2 bytes): An unsigned integer that SHOULD be zero and MUST be ignored on receipt.
-
PostScriptDataSize (4 bytes): A signed integer that specifies the size of the PostScriptData field, in bytes.
-
PostScriptData (variable): The PostScript data.
-
nAlignment (variable): A buffer that is included to ensure the record is 32-bit aligned. The contents of this field MUST be ignored. The size of this field is based upon the value of PostScriptDataSize as follows:
-
Value of (PostScriptDataSize modulo 4)
Size of nAlignment
0
4 bytes
1
3 bytes
2
6 bytes
3
5 bytes
-