macro element

Type:Heading Tags
Attributes:
See:a body div macrolist

A macro is a way of including a specific piece of XML multiple times in the same document. There is no equivalent in HTML.

Currently this is only used in one place - when a new page is created. A macro is defined in a macrolist element in the head of the document. Each macro is effectively a div, and must have an id, which is used to reference it in the body of the document.

The exact properties of the div depend on the type of macro - header, footer or background-macro - but you can rely on them having a width and height specified.

The following example shows a macro being defined and then assigned to the background-macro attribute of the body. This is followed by the equivalent XML without macros (assuming the document is only one page).

Here's an example using the "background-macro" attribute.

<head>
<macrolist>
  <macro id="watermark">
    <div align="center" valign="middle" rotate="-45" font-size="48pt">
      Confidential
    </div>
  </macro>
</macrolist>
</head>
<body background-macro="watermark">
  <p>The Document Body</p>
</body>

When the above macro is processed, internally it's turned into the following structure.

<body>
  <div width="100%" height="100%" position="absolute">
    <div align="center" valign="middle" rotate="-45" font-size="48pt">
      Confidential
    </div>
  </div>
  <p>The Document Body</p>
</body>

The footer and header macros are similar. Here's a simple footer example...

<head>
<macrolist>
  <macro id="myfooter">
    <div align="center" border-top="1" >
      Page &pagenumber;
    </div>
  </macro>
</macrolist>
</head>
<body width="8.5in" height="11in" footer="myfooter" footer-height="1in">
  <p>The Document Body</p>
</body>

...and here's how the document looks internally after it's been processed. Note the change in dimensions

<body width="8.5in" height="10in">

  <div width="100%" height="1in" position="absolute">
    <div align="center" border-top="1">
      Page <pagenumber/>
    </div>
  </div>

  <p>The Document Body</p>
</body>