2012-02-18 9 views
5

最初のページにヘッダーをHTMLコードとして生成しています。 <style> タグが含まれていますOffice HTML Word header

@page Section { 
    size:8.5in 11.0in; 
    margin: 0.7in 0.9in 0.7in 0.9in; 
    mso-header-margin: 0.0in; 
    mso-footer-margin: 0.0in; 
    mso-title-page: yes; 
    mso-first-header: fh1; 
    mso-paper-source: 0; 
} 
div.Section { 
    page: Section; 
} 

<body>を:

<div class="Section" style="font-family: Verdana, sans-serif;"> 
    <![if supportFields]> 
     <div style="mso-element:header" id="fh1"> 
      <p class="MsoHeader"> 
       header 
      </p> 
     </div> 
    <![endif]> 
</div> 

それはヘッダに、ドキュメントの本体の両方で "ヘッダー" のテキストを示しています。リソース(http://techsynapse.blogspot.com/2007/03/generating-word-document-dynamically.htmlとhttp://www.pbdr.com/ostips/wordfoot.htm)私は、このような影響を回避する方法はないと言いました。私のための選択肢ではありません。

そして、私の質問には次のようなものがあります。その問題の回避策を知っていますか?メイン文書のヘッダーの表示を非表示にするにはどうすればよいのですか?どんなアドバイスでも事前に感謝します。

答えて

7

これは私の仕事:

<html 
xmlns:o='urn:schemas-microsoft-com:office:office' 
xmlns:w='urn:schemas-microsoft-com:office:word' 
xmlns='http://www.w3.org/TR/REC-html40'> 
<head><title></title> 

<!--[if gte mso 9]><xml> 
<w:WordDocument> 
    <w:View>Print</w:View> 
    <w:Zoom>90</w:Zoom> 
</w:WordDocument> 
</xml><![endif]--> 


<style> 
p.MsoFooter, li.MsoFooter, div.MsoFooter 
{ 
    margin:0in; 
    margin-bottom:.0001pt; 
    mso-pagination:widow-orphan; 
    tab-stops:center 3.0in right 6.0in; 
    font-size:12.0pt; 
} 
<style> 

<!-- /* Style Definitions */ 

@page Section1 
{ 
    size:8.5in 11.0in; 
    margin:1.0in 1.0in 1.0in 1.0in; 
    mso-header-margin:.5in; 
    mso-footer-margin:.5in; 
    mso-title-page:yes; 
    mso-header: h1; 
    mso-footer: f1; 
    mso-first-header: fh1; 
    mso-first-footer: ff1; 
    mso-paper-source:0; 
} 


div.Section1 
{ 
    page:Section1; 
} 

table#hrdftrtbl 
{ 
    margin:0in 0in 0in 900in; 
    width:1px; 
    height:1px; 
    overflow:hidden; 
} 
--> 
</style></head> 

<body lang=EN-US style='tab-interval:.5in'> 
<div class=Section1> 

<p> CONTENT </p> 

<br/> 
    <table id='hrdftrtbl' border='0' cellspacing='0' cellpadding='0'> 
    <tr><td> 

    <div style='mso-element:header' id=h1 > 
     <p class=MsoHeader ><p>&nbsp;HEADER-TITLE</p></p> 
    </div> 

    </td> 
    <td> 
    <div style='mso-element:footer' id=f1> 

     <p>&nbsp;FOOTER-TITLE</p> 
     <p class=MsoFooter> 
     <span style=mso-tab-count:2'></span> 
      Page <span style='mso-field-code: PAGE '><span style='mso-no-proof:yes'></span></span> of <span style='mso-field-code: NUMPAGES '></span> 
     </p> 

    </div> 



    <div style='mso-element:header' id=fh1> 

    <p class=MsoHeader><span lang=EN-US style='mso-ansi-language:EN-US'>&nbsp;FIRST-HEADER-TITLE<o:p></o:p></span></p> 

    </div> 

    <div style='mso-element:footer' id=ff1> 

    <p class=MsoFooter><span lang=EN-US style='mso-ansi-language:EN-US'>&nbsp;FIRST-FOOTER-TITLE<o:p></o:p></span></p> 

    </div> 

    </td></tr> 
    </table> 


</body></html> 
+0

いつも余分なスペースが表示されます。 – Ryan

+1

サーバからのヘッダでイメージを生成することはできませんが、localhost上では正常に動作しています。イメージのために生成されているパスもサーバー上で問題ありません。 localhostのイメージがワードファイルに追加されているが、サーバー上には追加されていないことを教えてください。 **注意**ローカルマシンには、ms-officeがインストールされていますが、サーバーにはインストールされていません。 –

+0

ヘッダーセクションの空き領域を削除するにはどうすればよいですか?私が単語でそれを見るとき、すべては大丈夫ですが、印刷すると空白が追加されます...任意のアイデア? –

3

を vencedor によって解答の上で更新して、ヘッダー/フッターの画像/あなたはこのような何かを行うことができ、テキストに追加余分な空の文字エンコーディングを削除するには:

<html 
xmlns:o='urn:schemas-microsoft-com:office:office' 
xmlns:w='urn:schemas-microsoft-com:office:word' 
xmlns='http://www.w3.org/TR/REC-html40'> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title></title> 

<!--[if gte mso 9]><xml> 
<w:WordDocument> 
    <w:View>Print</w:View> 
    <w:Zoom>100</w:Zoom> 
</w:WordDocument> 
</xml><![endif]--> 
<style> 
<!-- /* Style Definitions */ 
p.MsoHeader, li.MsoHeader, div.MsoHeader{ 
    margin:0in; 
    margin-top:.0001pt; 
    mso-pagination:widow-orphan; 
    tab-stops:center 3.0in right 6.0in; 
} 
p.MsoFooter, li.MsoFooter, div.MsoFooter{ 
    margin:0in 0in 1in 0in; 
    margin-bottom:.0001pt; 
    mso-pagination:widow-orphan; 
    tab-stops:center 3.0in right 6.0in; 
} 
.footer { 
    font-size: 9pt; 
} 
@page Section1{ 
    size:8.5in 11.0in; 
    margin:0.5in 0.5in 0.5in 0.5in; 
    mso-header-margin:0.5in; 
    mso-header:h1; 
    mso-footer:f1; 
    mso-footer-margin:0.5in; 
    mso-paper-source:0; 
} 
div.Section1{ 
    page:Section1; 
} 
table#hrdftrtbl{ 
    margin:0in 0in 0in 9in; 
} 
--> 
</style> 
<style type="text/css" media="screen,print"> 
body { 
    font-family: "Calibri", "Verdana","HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; 
    font-size:12pt; 
} 
pageBreak { 
    clear:all; 
    page-break-before:always; 
    mso-special-character:line-break; 
} 
</style> 
</head> 
<body style='tab-interval:.5in'> 
<div class="Section1"> 

Something page 1 
<div class="pageBreak"></div> 
Something page 2 
<div class="pageBreak"></div> 

<table id='hrdftrtbl' border='1' cellspacing='0' cellpadding='0'> 
     <tr> 
      <td> 
       <div style='mso-element:header' id="h1" > 
        <p class="MsoHeader"> 
         <table border="0" width="100%"> 
          <tr> 
           <td> 

            YOUR_HEADER IMAGE/TEXT 

           </td> 
          </tr> 
         </table> 
        </p> 
       </div> 
      </td> 
      <td> 
      <div style='mso-element:footer' id="f1"> 
       <p class="MsoFooter"> 
        <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
         <tr> 
          <td align="center" class="footer"> 
          YOUR_FOOTER_TEXT 
           <g:message code="offer.letter.page.label"/> <span style='mso-field-code: PAGE '></span> of <span style='mso-field-code: NUMPAGES '></span> 
          </td> 
         </tr> 
        </table> 
       </p> 
      </div> 
     </td> 
    </tr> 
    </table> 
    </div> 
</body> 
</html> 

これで、ヘッダーとフッターのセグメント用の完全なCSSコンポーネントが含まれるようになりました。

実際に余分なエンコードを削除するトリックは、MsoFooterセクションとMsoHeaderセクション内のさらに別のテーブルを宣言しています。

+0

非常に便利です、ありがとう! ヘッダーセクションで本文テキストを重複させる可能性のあるプロパティがあるかどうかを知っていますか? 今のところ、本文のテキストは常にヘッダーの最後の行のすぐ下にあります。 –

+1

こちらをご覧くださいhttp://sebsauvage.net/wiki/doku.php?id=word_document_generation私たちはmhtmlモデルを使用して終了しました(最下部にあります)、それは完全に動作します。この現在のメソッドの問題は、最後のページが半分以上になったときに、私たちのケースで余分なページを作成していた隠しテーブルです。 – Vahid

+0

はい、私は正常に使用したチュートリアルです。しかし、私はヘッダーをヘッダーに重ねることはできません。もう一つの選択肢はヘッダの代わりにウォーターマークを使うことですが、それはヘッダーhtmlを画像に変換することを意味し、それは簡単ではありません:/ 本文のテキストをページの先頭で始めるトリックがあればヘッダーがある場合、それは素晴らしいでしょう:) –

関連する問題