简体   繁体   English

HTML到MS Word文档的总页数

[英]HTML to MS Word doc with total number of pages

I am trying to create a Word document using HTML. 我正在尝试使用HTML创建Word文档。

Thanks to a number of examples I have been able to acheive this. 由于有许多示例,我已经能够实现这一目标。 However, I can't seem to place the total number of pages in text at the top of the first page in the document. 但是,我似乎无法将文本中的总页数放在文档第一页的顶部。

I am trying to add, "This document contains "PAGENUM" of pages in the first line of text, but when the document is created, the "PAGENUM" is blank (other than in the footer that I also would like to keep). 我试图添加“此文档在文本的第一行中包含页面的“ PAGENUM”个页面,但是在创建文档时,“ PAGENUM”为空白(除了我也想保留的页脚中)。

Is what I'm trying to achieve even possible or am I just getting it completely wrong? 我正在努力实现的目标还是完全错误的?

My code (Thanks to another user Vahid) is as follows, 我的代码(感谢另一个用户Vahid)如下,

<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">

 This document contains <span style='mso-field-code: NUMPAGES '></span> pages.

 MORE CONTENT

<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>

Thanks in advance. 提前致谢。

If you try to do it in Word and clean a bit the code it generates, you get something like this: 如果您尝试在Word中执行此操作并清除它生成的代码,则会得到以下内容:

            ...
<div class="Section1">

 This document contains
 <!--[if supportFields]>
  <span>
   <span style='mso-element:field-begin'></span>
   <span style='mso-spacerun:yes'> </span>
   NUMPAGES
   <span style='mso-spacerun:yes'>  </span>
   \* MERGEFORMAT <span style='mso-element:field-separator'></span>
  </span>
 <![endif]-->
 <span style='mso-no-proof:yes'>X</span>
 <!--[if supportFields]>
  <span>
   <span style='mso-element:field-end'></span>
  </span>
 <![endif]--> pages.

 MORE CONTENT
        ...

Please note that when you open the Word document, you have to "Update field" to see the correct number of pages. 请注意,当您打开Word文档时,必须“更新字段”才能看到正确的页数。 Otherwise it will display the "mso-no-proof" value (here "X"). 否则,它将显示“ mso-no-proof”值(此处为“ X”)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM