html转word 页头页脚代码示例

原版word代码

方便理解

<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">
<head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><title></title>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<style>
@page
{
    mso-page-orientation: landscape;
    size:29.7cm 21cm;    margin:1cm 1cm 1cm 1cm;
}
@page Section1 {

    mso-title-page:yes; //首页不显示页眉页脚

    mso-page-numbers:0; //起始页码从0开始

    mso-header-margin:.5in;
    mso-footer-margin:.5in;
    mso-header: h1;
    mso-footer: f1;
    }
div.Section1 { page:Section1; }
table#hrdftrtbl
{
    margin:0in 0in 0in 900in;
    width:1px;
    height:1px;
    overflow:hidden;
}
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>
<xml>
<w:WordDocument>
<w:View>Print</w:View>
<w:Zoom>100</w:Zoom>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml>
</head>

<body>
<div class="Section1">

    <p>&nbsp;</p>
<br/>
    <table id='hrdftrtbl' border='0' cellspacing='0' cellpadding='0'>
    <tr><td>        <div style='mso-element:header' id=h1 >
        <!-- HEADER-tags -->
            <p class=MsoHeader >HEADER</p>
        <!-- end HEADER-tags -->
        </div>
    </td>
    <td>
    <div style='mso-element:footer' id=f1><span style='position:relative;z-index:-1'> 
        <!-- FOOTER-tags -->
        FOOTER

        <span style='mso-no-proof:yes'><!--[if gte vml 1]><v:shapetype
         id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
         path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
         <v:formulas>
          <v:f eqn="if lineDrawn pixelLineWidth 0"/>
          <v:f eqn="sum @0 1 0"/>
          <v:f eqn="sum 0 0 @1"/>
          <v:f eqn="prod @2 1 2"/>
          <v:f eqn="prod @3 21600 pixelWidth"/>
          <v:f eqn="prod @3 21600 pixelHeight"/>
          <v:f eqn="sum @0 0 1"/>
          <v:f eqn="prod @6 1 2"/>
          <v:f eqn="prod @7 21600 pixelWidth"/>
          <v:f eqn="sum @8 21600 0"/>
          <v:f eqn="prod @7 21600 pixelHeight"/>
          <v:f eqn="sum @10 21600 0"/>
         </v:formulas>
         <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
         <o:lock v:ext="edit" aspectratio="t"/>
        </v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_s3073" type="#_x0000_t75"
         alt="VHB" style='position:absolute;
         margin-right:0pt;margin-top:-400pt;
         z-index:-1;
         visibility:visible;mso-wrap-style:square;mso-wrap-distance-left:9pt;
         mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;
         mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;
         mso-position-horizontal-relative:text;mso-position-vertical:absolute;
         mso-position-vertical-relative:text'>
         <v:imagedata src="https://www.google.bg/logos/2012/Rodin-2012-homepage.png"/>
        </v:shape><![endif]--></span>
           <p class=MsoFooter>
           <span style=mso-tab-count:2'></span>
           Page <span style='mso-field-code: PAGE '><span style='mso-no-proof:yes'></span> from <span style='mso-field-code: NUMPAGES '></span>

        <!-- end FOOTER-tags -->
   </span>


        </p>
    </div>

    <div style='mso-element:header' id=fh1>
        <p class=MsoHeader><span lang=EN-US style='mso-ansi-language:EN-US'>&nbsp;<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;<o:p></o:p></span></p>
    </div>

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

</body></html>

参考地址:
http://stackoverflow.com/questions/13340216/html-generated-microsoft-word-document-with-header-footer-and-watermark


使用的插件是jQuery-WordExport.js来加页头页脚

<div class="page-number-wrap">  <!-- 最外层,页脚在这个class下包着才显示 -->
	<!-- 页脚开始 -->
	<div style="mso-element:footer" id=footer>
		<p class=MsoFooter style="text-align:center;">&nbsp;<span style="mso-field-code: PAGE "></span>&nbsp;</p>
	</div>
	<!-- 页脚结束 -->
</div>
// mso-title-page:yes; //首页不显示页眉页脚,比如第一页是封面时
// mso-page-numbers:0; //起始页码从0开始,设置开始页码
exportWord() {
  let styles = styles = `${styles}.page-number-wrap{mso-footer: footer;mso-title-page:yes;mso-paper-source:0; mso-page-numbers:0;}.MsoFooter{margin:0in;margin-bottom:.0001pt;mso-pagination:widow-orphan;tab-stops:center 3.0in right 6.0in;font-size:12.0pt;text-align:center;}`
  $('#print').wordExport('导出word名称', styles)
}

不理解或有问题请留言

Apache POI 是 Java 中用于处理 Microsoft Office 文件(如 Word、Excel 和 PowerPoint)的一个强大库。要从 Word 文档中读取段落并获取其所在的页脚,你需要使用 `XWPFDocument` 类来操作 `.docx` 文件,并结合 `XWPFParagraph` 和 `XWPFPictureData` 来获取信息。然而,POI 并不直接提供获取段落所在页脚的功能,因为这通常不是 POI 的核心功能。Word 文档的结构并不像 HTML 那样明显,页脚通常是基于节(section)的概念,而不是直接关联到每个段落。 为了实现这个需求,你可能需要遍历整个文档,查找包含该段落的节,并找到页眉/页脚区域。这涉及到更复杂的逻辑和对 Word 文档格式的深入理解。以下是一个基本的示例,展示了如何读取段落,但并未包括获取页脚的内容: ```java import org.apache.poi.xwpf.usermodel.*; public class WordParagraphReader { public void readParagraphAndFindFooter(XWPFDocument document, String paragraphText) throws Exception { for (XWPFParagraph para : document.getParagraphs()) { if (para.getText().contains(paragraphText)) { System.out.println("Found paragraph: " + para.getText()); // 获取段落所属的节 XWPFHeaderFooterPolicy headerFooterPolicy = document.getHeaderFooterPolicy(); for (XWFPiece piece : headerFooterPolicy.getAllHeaderFragments()) { if (piece.getText().contains(paragraphText)) { // 假设页眉/页脚中的文本和段落相同 System.out.println("Paragraph is in header/footer: " + piece.getText()); break; } } } } } } ``` 请注意,这段代码只是一个简化版本,实际情况下可能需要更复杂的方法,比如解析 XML 结构或者利用第三方库(如 Aspose 或 docx4j),它们提供了更高级的 API 来访问和处理 Word 文档的详细结构。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个......

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值