2.2.1 Record Syntax

The Record Syntax is specified as follows.

 <emf_spool_format> ::= <Header_record>
          [ <EMRI_PS_JOB_DATA_record> ]
          { <other_records> }
           <page_offset_records>
  
  
 <other_records> ::= <page_content_records> |
          <font_definition_records> |
          <font_offset_records> |
          <EMRI_DEVMODE_record> |
          <EMRI_PRESTARTPAGE_record>
  
  
 <page_content_records> ::= <EMRI_METAFILE_record> |
          <EMRI_FORM_METAFILE_record> |
          <EMRI_BW_METAFILE_record> |
          <EMRI_BW_FORM_METAFILE_record> |
          <EMRI_METAFILE_DATA_record>
  
  
 <page_offset_records> ::= <EMRI_METAFILE_EXT_record> |
          <EMRI_BW_METAFILE_EXT_record>
  
  
 <font_definition_records> ::= <EMRI_ENGINE_FONT_record> |
          <EMRI_TYPE1_FONT_record> |
          <EMRI_DESIGNVECTOR_record> |
          <EMRI_SUBSET_FONT_record> |
          <EMRI_DELTA_FONT_record>
  
  
 <font_offset_records> ::= <EMRI_ENGINE_FONT_EXT_record> |
          <EMRI_TYPE1_FONT_EXT_record> |
          <EMRI_DESIGNVECTOR_EXT_record> |
          <EMRI_SUBSET_FONT_OFFSET_record> |
          <EMRI_DELTA_FONT_EXT_record> |
          <EMRI_EMBED_FONT_EXT_record>
  

These record types perform the following roles:

  • An <EMRI_PS_JOB_DATA_record> stores injected PostScript code at the document level. If an <EMRI_PS_JOB_DATA_record> is present in the metafile, it MUST be the first EMF spool format record after the <Header_record>.

  • <page_content_records> store drawing commands for rendering and formatting individual pages of output. Within a <page_content_record>, a complete EMF metafile can be defined, as specified in [MS-EMF].

  • <page_offset_records> point to <page_content_records>, which MUST precede the <page_offset_records> in the metafile. Two types of <page_offset_records> are provided, for color and monochrome pages.

  • <font_definition_records> store font information within an EMF EMR_COMMENT_EMFSPOOL record that is identified with the signature "TONF", as specified in [MS-EMF] section 2.3.3.3. The EMR_COMMENT_EMFSPOOL record is part of an EMF metafile that is embedded in a <page_content_record>.

  • <font_offset_records> point to the embedded font definitions within preceding <page_content_records>.

  • An <EMRI_DEVMODE_record> stores device settings and information about device capabilities.

  • An <EMRI_PRESTARTPAGE_record> stores encapsulated PostScript (EPS).

All record types are specified in section 2.2.