在动态生成的 Word 文档上使文本重叠 header
Making text overlap header on a dynamically generated Word document
我创建了 2 个相同的 word 文档:test1 和 test2
它们都包含 header.
两个文档之间的唯一区别是 header 的下边距已上移,因此文本可以与 header 重叠。
然后我生成 xml 并进行比较。我注意到一个有趣的行,这两个文档都不同,结果如下:
Test1.xml :
<w:pgMar w:top="1417" w:right="1417" w:bottom="1417" w:left="1417" w:header="708" w:footer="708" w:gutter="0" />
Test2.xml :
<w:pgMar w:top="-49" w:right="1417" w:bottom="1417" w:left="1417" w:header="708" w:footer="708" w:gutter="0" />
因此 w:pgMar
w:top 已从 1417
更改为 -49
。
现在我正在从 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><title>Mon document</title>
<meta charset=\"UTF-8\" />
<!--[if gte mso 9]>
<xml><w:WordDocument><w:View>Print</w:View><w:Zoom>100</w:Zoom> <w:DoNotOptimizeForBrowser/></w:WordDocument></xml>
<![endif]-->
<link rel=File-List href=\"mydocument_files/filelist.xml\">
<style><!--
@page
{
size:21cm 29.7cmt; /* A4 */
margin:1cm 1cm 1cm 1cm; /* Margins: 2.5 cm on each side */
mso-page-orientation: portrait;
mso-header: url(\"mydocument_files/headerfooter.htm\") h1;
mso-footer: url(\"mydocument_files/headerfooter.htm\") f1;
}
@page Section1 { }
div.Section1 { page:Section1; }
p.MsoHeader, p.MsoFooter { border: none; }
--></style>
</head>
<body>
<div class=Section1>
My content
</div>
</body>
</html>
谁能告诉我是否可以通过在某处集成注意到的 xml 参数或通过添加此代码样式来重现文本和 header 之间的重叠效果?
为 section1 设置负的上边距和为 mso-header 设置固定的边距解决了这个问题:
@page Section1 {margin: -1cm 1cm 1cm 1cm; mso-header-margin: 1cm;}
正文现在与 header 处于完全相同的级别,无论 header 的大小如何。
我创建了 2 个相同的 word 文档:test1 和 test2 它们都包含 header.
两个文档之间的唯一区别是 header 的下边距已上移,因此文本可以与 header 重叠。
然后我生成 xml 并进行比较。我注意到一个有趣的行,这两个文档都不同,结果如下:
Test1.xml :
<w:pgMar w:top="1417" w:right="1417" w:bottom="1417" w:left="1417" w:header="708" w:footer="708" w:gutter="0" />
Test2.xml :
<w:pgMar w:top="-49" w:right="1417" w:bottom="1417" w:left="1417" w:header="708" w:footer="708" w:gutter="0" />
因此 w:pgMar
w:top 已从 1417
更改为 -49
。
现在我正在从 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><title>Mon document</title>
<meta charset=\"UTF-8\" />
<!--[if gte mso 9]>
<xml><w:WordDocument><w:View>Print</w:View><w:Zoom>100</w:Zoom> <w:DoNotOptimizeForBrowser/></w:WordDocument></xml>
<![endif]-->
<link rel=File-List href=\"mydocument_files/filelist.xml\">
<style><!--
@page
{
size:21cm 29.7cmt; /* A4 */
margin:1cm 1cm 1cm 1cm; /* Margins: 2.5 cm on each side */
mso-page-orientation: portrait;
mso-header: url(\"mydocument_files/headerfooter.htm\") h1;
mso-footer: url(\"mydocument_files/headerfooter.htm\") f1;
}
@page Section1 { }
div.Section1 { page:Section1; }
p.MsoHeader, p.MsoFooter { border: none; }
--></style>
</head>
<body>
<div class=Section1>
My content
</div>
</body>
</html>
谁能告诉我是否可以通过在某处集成注意到的 xml 参数或通过添加此代码样式来重现文本和 header 之间的重叠效果?
为 section1 设置负的上边距和为 mso-header 设置固定的边距解决了这个问题:
@page Section1 {margin: -1cm 1cm 1cm 1cm; mso-header-margin: 1cm;}
正文现在与 header 处于完全相同的级别,无论 header 的大小如何。