将 html 导入 MS Office 然后保存为 docx 会丢失页脚

将 html 导入 MS Office 然后保存为 docx 会丢失页脚

我有以下简化的 html,其中包含一些 MS 特定的标签,如果在 Word 中打开文件,则可在文档的每一页中添加页眉和页脚。当我在 Word 中打开文件时,似乎会显示此信息(尽管我在页眉旁边确实看到了一个方形图标,这通常表示不支持的 unicode 和类似内容)。

但是,如果我将文件保存为 docx,然后重新打开该新文件,则页眉和页脚不会显示。

我正在测试本地安装的 Office 365 for Business(几周前安装的版本 16.0.14527.20276)

知道为什么会发生这种情况吗?如果我删除表格标签和相关的 tbody、tr、td 标签,问题就会消失。但网上很多帖子(搜索hrdftrtbl- 表格的 ID)似乎都有类似的 html,试图强迫 word 不要将标题放在错误的位置,或者重复标题太多等等。最近新版本的 word 中是否有某些更改,从而改变了推荐的执行方式?我尝试使用的 html 相当旧,我没有旧版本的 word 可以测试。

<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>90</w:Zoom>
    <w:DoNotOptimizeForBrowser/>
    </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;
      }

      @page Section1 {
        size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in ;
        mso-header-margin:.5in;
        mso-header:h1;
        mso-footer: f1;
        mso-footer-margin:.5in;
      }

      div.Section1 {
        page:Section1;
      }

      table#hrdftrtbl {
        margin:0in 0in 0in 9in;
      }
    </style>

    <title>hi</title>
  </head>

  <body>
    <div class="Section1">
      <div align="center">
        <strong>TEST DOCUMENT</strong>
      </div>
      <h1>section 1</h1>
      hello

      <h1>section 2</h1>
      there

    </div>
    <table id="hrdftrtbl">
      <tbody>
        <tr>
          <td>
            <div style="mso-element:header" id="h1">
              <div class="MsoHeader">myheader</div>
            </div>
          </td>
          <td>
            <div style="mso-element:footer" id="f1">
              <div class="MsoFooter">myfooter</div>
            </div>
          </td>
        </tr>
      </tbody>
    </table>
  </body>
</html>

相关内容