header/footer
ヘッダー・フッターパーツの構造
Wordで作成したWordprocessingML文書のメイン文書パーツと同じフォルダには、headern.xml(nは1以上の自然数)とfootern.xmlというファイルがあります。このxmlファイルはヘッダー・フッターのパーツです。


Wordで文書にヘッダー・フッターを挿入すると、パッケージにはヘッダー・フッターのパーツが追加されます。


このパーツの内容は、hdr要素、ftr要素をルートに、p要素などの段落が列挙された単純な構造です。
<w:hdr
...
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
...>
<w:p w:rsidR="00AA1868" w:rsidRPr="00AA1868" w:rsidRDefault="00AA1868">
<w:pPr>
<w:pStyle w:val="a3"/>
<w:rPr>
<w:b/>
<w:sz w:val="32"/>
<w:szCs w:val="32"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00AA1868">
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
<w:b/>
<w:sz w:val="32"/>
<w:szCs w:val="32"/>
</w:rPr>
<w:t>回覧</w:t>
</w:r>
</w:p>
</w:hdr>
WordprocessingMLではヘッダー、フッターは出力されるページの種類によって3種類に分けられています。その種類は、先頭ページのみのヘッダー・フッター、もしくは偶数ページ・奇数ページのヘッダー・フッターです。この先頭ページ・偶数ページ・奇数ページそれぞれのヘッダーやフッターが別ファイルに出力され、header1.xml、header2.xml、header3.xml、footer1.xml、footer2.xml、footer3.xmlのようにナンバリングされたファイル名が使われます。
このファイル名に付けられた番号とページの種類は必ずしも一致しません。つまり、header1.xml=先頭ページのヘッダーではないということです。どのファイルがどの種類なのかは、header1.xmlファイルの内容によって判別ができます。
<w:hdr w:type="even">
<w:p w:rsidR="00C703AC" w:rsidRDefault="00C703AC">
<w:pPr>
<w:pStyle w:val="Header"/>
</w:pPr>
</w:p>
</w:hdr>
hdr要素のtype属性の値がページの種類となります。
ヘッダーの種類 | type属性値 |
---|---|
先頭ページのみのヘッダー | first |
偶数ページのヘッダー | even |
奇数ページのヘッダー | odd |
メイン文書からの参照
メイン文書パーツのセクション(sectPr)にはヘッダー・フッターへの参照としてheaderReferenceおよびfooterReference要素があります。この要素はid属性を持ち、このid属性値と関連付け(word/_rels/
document.xml.rels)ファイルの内容を結び付けることでヘッダー・フッターを参照します。
<w:headerReference r:id="rId6"/>
<w:footerReference r:id="rId8"/>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId8"
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer"
Target="footer1.xml"/>
<Relationship Id="rId6"
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/header"
Target="header1.xml"/>
</Relationships>
ヘッダーの場合、headerReferenceのid属性値(rId6)と同じ値を持ち、タイプ定義がヘッダーであるRelationship要素がヘッダーパーツを示します。そのTarget属性の値が参照するヘッダーパーツのファイル名ということになります。この場合、Targetのパスはdocument.xmlを基準とした相対パスで示されます。フッターの場合も同様です。