问题描述
使用poi生成docx文档时为文档添加的页脚,使用Microsoft Word打开生成的文档是能正常看到页脚的,但是使用WPS打开却看不到。
使用poi为文档添加页脚的代码:(网上所有教程写的都是这样)
default void renderFooter(XWPFDocument document, RenderConfig config) {
XWPFFooter footer = document.createFooter(HeaderFooterType.DEFAULT);
XWPFParagraph paragraph = footer.createParagraph();
paragraph.setAlignment(ParagraphAlignment.CENTER);
XWPFRun footerRun = paragraph.createRun();
footerRun.getCTR().addNewFldChar().setFldCharType(STFldCharType.Enum.forString("begin"));
footerRun.getCTR().addNewInstrText().setStringValue("PAGE \\* MERGEFORMAT");
footerRun.getCTR().addNewInstrText().setSpace(SpaceAttribute.Space.Enum.forString("preserve"));
footerRun.getCTR().addNewFldChar().setFldCharType(STFldCharType.Enum.forString("end"));
footerRun.setFontFamily("Times New Roman");
footerRun.setFontSize((int) config.getFontSize());
XWPFHeaderFooterPolicy headerFooterPolicy = new XWPFHeaderFooterPolicy(document);
headerFooterPolicy.createFooter(STHdrFtr.DEFAULT, new XWPFParagraph[]{paragraph});
}
问题分析
猜测:Apache poi可能是根据Microsoft Word文档格式去设计实现的一个工具包,在页眉页脚上可能WPS和Microsoft Word两家的格式不同,Apache poi并没有去兼容WPS?
根据猜测分析解决问题思路:要解决wps打开看不到页码的问题可能需要从根本上去解决,即:找出两者生成的页脚的差异,然后想办法解决掉这种差异。
那么,如何得知这两者的差异呢?
任何文件都是二进制,只是按照某种“协议”去存储内容,例如java编译后的class文件对应java的class结构,class数据结构就是这种文件的存储协议。那docx文档就是docx协议,只需要了解docx协议的存储数据结构就能对比找出差异。
WPS和Microsoft Word生成的页脚差异问题分析
参考文献:https://www.leadtools.com/help/sdk/dh/to/file-formats-microsoft-word-document-docx-doc.html,这里有句描述是“DOCX is a zipped, XML-based file format.”,即docx是一种基于xml的压缩文件格式。
页脚文件差异分析
我们将docx后缀改为”.zip”文件,并用压缩工具解压缩。
暂时无法在飞书文档外展示此内容
这是poi生成的文档解压后的目录:
word/footer1.xml文件就是poi生成的页脚文件。
<?xml version="1.0" encoding="UTF-8"?>
<w:ftr xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:p>
<w:pPr>
<w:jc w:val="center" />
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman" w:cs="Times New Roman"
w:eastAsia="Times New Roman" />
<w:sz w:val="30" />
</w:rPr>
<w:fldChar w:fldCharType="begin" />
<w:instrText>PAGE \* MERGEFORMAT</w:instrText>
<w:instrText xml:space="preserve" />
<w:fldChar w:fldCharType="end" />
</w:r>
</w:p>
</w:ftr>
按照这个思路,不用POI生成的。分别用Microsoft Word和wps创建一个带有页脚的文档,然后分别用对方打开各自创建的文档,观测页脚是否显示正常。
用Microsoft Word生成的文档,页脚会生成3份,但只有这一份有页码设置:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:ftr xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas"
xmlns:cx="http://schemas.microsoft.com/office/drawing/2014/chartex"
xmlns:cx1="http://schemas.microsoft.com/office/drawing/2015/9/8/chartex"
xmlns:cx2="http://schemas.microsoft.com/office/drawing/2015/10/21/chartex"
xmlns:cx3="http://schemas.microsoft.com/office/drawing/2016/5/9/chartex"
xmlns:cx4="http://schemas.microsoft.com/office/drawing/2016/5/10/chartex"
xmlns:cx5="http://schemas.microsoft.com/office/drawing/2016/5/11/chartex"
xmlns:cx6="http://schemas.microsoft.com/office/drawing/2016/5/12/chartex"
xmlns:cx7="http://schemas.microsoft.com/office/drawing/2016/5/13/chartex"
xmlns:cx8="http://schemas.microsoft.com/office/drawing/2016/5/14/chartex"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:aink="http://schemas.microsoft.com/office/drawing/2016/ink"
xmlns:am3d="http://schemas.microsoft.com/office/drawing/2017/model3d"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:oel="http://schemas.microsoft.com/office/2019/extlst"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing"
xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"
xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml"
xmlns:w16cex="http://schemas.microsoft.com/office/word/2018/wordml/cex"
xmlns:w16cid="http://schemas.microsoft.com/office/word/2016/wordml/cid"
xmlns:w16="http://schemas.microsoft.com/office/word/2018/wordml"
xmlns:w16du="http://schemas.microsoft.com/office/word/2023/wordml/word16du"
xmlns:w16sdtdh="http://schemas.microsoft.com/office/word/2020/wordml/sdtdatahash"
xmlns:w16sdtfl="http://schemas.microsoft.com/office/word/2024/wordml/sdtformatlock"
xmlns:w16se="http://schemas.microsoft.com/office/word/2015/wordml/symex"
xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup"
xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk"
xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"
xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"
mc:Ignorable="w14 w15 w16se w16cid w16 w16cex w16sdtdh w16sdtfl w16du wp14">
<w:p w:rsidR="0037557D" w:rsidRDefault="0037557D">
<w:pPr>
<w:pStyle w:val="af0" />
<w:jc w:val="center" />
<w:rPr>
<w:caps />
<w:color w:val="4472C4" w:themeColor="accent1" />
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:caps />
<w:color w:val="4472C4" w:themeColor="accent1" />
</w:rPr>
<w:fldChar w:fldCharType="begin" />
</w:r>
<w:r>
<w:rPr>
<w:caps />
<w:color w:val="4472C4" w:themeColor="accent1" />
</w:rPr>
<w:instrText>PAGE \* MERGEFORMAT</w:instrText>
</w:r>
<w:r>
<w:rPr>
<w:caps />
<w:color w:val="4472C4" w:themeColor="accent1" />
</w:rPr>
<w:fldChar w:fldCharType="separate" />
</w:r>
<w:r>
<w:rPr>
<w:caps />
<w:color w:val="4472C4" w:themeColor="accent1" />
<w:lang w:val="zh-CN" />
</w:rPr>
<w:t>2</w:t>
</w:r>
<w:r>
<w:rPr>
<w:caps />
<w:color w:val="4472C4" w:themeColor="accent1" />
</w:rPr>
<w:fldChar w:fldCharType="end" />
</w:r>
</w:p>
<w:p w:rsidR="0037557D" w:rsidRDefault="0037557D">
<w:pPr>
<w:pStyle w:val="af0" />
</w:pPr>
</w:p>
</w:ftr>
这份文档用wps打开,页脚显示正常。
现在用wps创建一份一样的文档。
暂时无法在飞书文档外展示此内容
然后查看生成的页脚代码如下。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:ftr xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing"
xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"
xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml"
xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup"
xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk"
xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"
xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"
xmlns:wpsCustomData="http://www.wps.cn/officeDocument/2013/wpsCustomData"
mc:Ignorable="w14 w15 wp14">
<w:p w14:paraId="6EEC5502">
<w:pPr>
<w:pStyle w:val="2" />
</w:pPr>
<w:bookmarkStart w:id="0" w:name="_GoBack" />
<w:bookmarkEnd w:id="0" />
<w:r>
<w:rPr>
<w:sz w:val="18" />
</w:rPr>
<mc:AlternateContent>
<mc:Choice Requires="wps">
<w:drawing>
<wp:anchor distT="0" distB="0" distL="114300" distR="114300" simplePos="0"
relativeHeight="251659264" behindDoc="0" locked="0" layoutInCell="1"
allowOverlap="1">
<wp:simplePos x="0" y="0" />
<wp:positionH relativeFrom="margin">
<wp:align>center</wp:align>
</wp:positionH>
<wp:positionV relativeFrom="paragraph">
<wp:posOffset>0</wp:posOffset>
</wp:positionV>
<wp:extent cx="1828800" cy="1828800" />
<wp:effectExtent l="0" t="0" r="0" b="0" />
<wp:wrapNone />
<wp:docPr id="1" name="文本框 1" />
<wp:cNvGraphicFramePr />
<a:graphic
xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:graphicData
uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
<wps:wsp>
<wps:cNvSpPr txBox="1" />
<wps:spPr>
<a:xfrm>
<a:off x="0" y="0" />
<a:ext cx="1828800" cy="1828800" />
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst />
</a:prstGeom>
<a:noFill />
<a:ln w="6350">
<a:noFill />
</a:ln>
<a:extLst>
<a:ext uri="{909E8E84-426E-40DD-AFC4-6F175D3DCCD1}">
<a14:hiddenFill
xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main">
<a:solidFill>
<a:schemeClr val="lt1" />
</a:solidFill>
</a14:hiddenFill>
</a:ext>
<a:ext uri="{91240B29-F687-4F45-9708-019B960494DF}">
<a14:hiddenLine
xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main"
w="6350">
<a:solidFill>
<a:prstClr val="black" />
</a:solidFill>
</a14:hiddenLine>
</a:ext>
</a:extLst>
</wps:spPr>
<wps:style>
<a:lnRef idx="0">
<a:schemeClr val="accent1" />
</a:lnRef>
<a:fillRef idx="0">
<a:schemeClr val="accent1" />
</a:fillRef>
<a:effectRef idx="0">
<a:schemeClr val="accent1" />
</a:effectRef>
<a:fontRef idx="minor">
<a:schemeClr val="dk1" />
</a:fontRef>
</wps:style>
<wps:txbx>
<w:txbxContent>
<w:p w14:paraId="4AD458EC">
<w:pPr>
<w:pStyle w:val="2" />
</w:pPr>
<w:r>
<w:fldChar w:fldCharType="begin" />
</w:r>
<w:r>
<w:instrText xml:space="preserve"> PAGE \* MERGEFORMAT </w:instrText>
</w:r>
<w:r>
<w:fldChar w:fldCharType="separate" />
</w:r>
<w:r>
<w:t>1</w:t>
</w:r>
<w:r>
<w:fldChar w:fldCharType="end" />
</w:r>
</w:p>
</w:txbxContent>
</wps:txbx>
<wps:bodyPr rot="0" spcFirstLastPara="0"
vertOverflow="overflow" horzOverflow="overflow"
vert="horz" wrap="none" lIns="0" tIns="0" rIns="0"
bIns="0" numCol="1" spcCol="0" rtlCol="0"
fromWordArt="0" anchor="t" anchorCtr="0" forceAA="0"
upright="0" compatLnSpc="1">
<a:spAutoFit />
</wps:bodyPr>
</wps:wsp>
</a:graphicData>
</a:graphic>
</wp:anchor>
</w:drawing>
</mc:Choice>
<mc:Fallback>
<w:pict>
<v:shape id="_x0000_s1026" o:spid="_x0000_s1026" o:spt="202"
type="#_x0000_t202"
style="position:absolute;left:0pt;margin-top:0pt;height:144pt;width:144pt;mso-position-horizontal:center;mso-position-horizontal-relative:margin;mso-wrap-style:none;z-index:251659264;mso-width-relative:page;mso-height-relative:page;"
filled="f" stroked="f" coordsize="21600,21600"
o:gfxdata="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 AAAABgAGAFkBAABtBgAAAAA= ">
<v:fill on="f" focussize="0,0" />
<v:stroke on="f" weight="0.5pt" />
<v:imagedata o:title="" />
<o:lock v:ext="edit" aspectratio="f" />
<v:textbox inset="0mm,0mm,0mm,0mm" style="mso-fit-shape-to-text:t;">
<w:txbxContent>
<w:p w14:paraId="4AD458EC">
<w:pPr>
<w:pStyle w:val="2" />
</w:pPr>
<w:r>
<w:fldChar w:fldCharType="begin" />
</w:r>
<w:r>
<w:instrText xml:space="preserve"> PAGE \* MERGEFORMAT </w:instrText>
</w:r>
<w:r>
<w:fldChar w:fldCharType="separate" />
</w:r>
<w:r>
<w:t>1</w:t>
</w:r>
<w:r>
<w:fldChar w:fldCharType="end" />
</w:r>
</w:p>
</w:txbxContent>
</v:textbox>
</v:shape>
</w:pict>
</mc:Fallback>
</mc:AlternateContent>
</w:r>
</w:p>
</w:ftr>
这与Word生成的差别很大。
用Microsoft Word打开后,发现出现页码不连续情况,从1~9,第10页就变成1了。
找出Microsoft Word生成的与POI生成的最小差异
Microsoft Word不能兼容wps,但是wps能兼容Microsoft Word。
因此,就看Microsoft Word与POI生成的文档差异。试着将Microsoft Word生成的文件,删减后,重新压缩,能否用WPS打开并正常显示页码。
左边是删减前,右边是删减后。就是把主题、样式、多余的页头和页脚删除。
另外[Content_Types].xml文件中有这些文件的引用,也需要删除。
重新压缩后,使用WPS能够正常打开。
按照这个思路,只需要对比这份删减后的文档,和poi生成的文档,存在什么差异。
接着用AI工具Cursor对两个文档进行分析,找到了这个差异:
Microsoft Word生成的document.xml,在页脚处,会有w:pgSz
、`w:pgMar
等标签。
<w:sectPr w:rsidR="00F6098D">
<w:headerReference w:type="even" r:id="rId6" />
<w:headerReference w:type="default" r:id="rId7" />
<w:footerReference w:type="even" r:id="rId8" />
<w:footerReference w:type="default" r:id="rId9" />
<w:headerReference w:type="first" r:id="rId10" />
<w:footerReference w:type="first" r:id="rId11" />
<w:pgSz w:w="11906" w:h="16838" />
<w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851"
w:footer="992" w:gutter="0" />
<w:cols w:space="425" />
<w:docGrid w:type="lines" w:linePitch="312" />
</w:sectPr>
POI生成的没有:
<w:sectPr>
<w:footerReference w:type="default" r:id="rId21" />
</w:sectPr>
在多次尝试后,发现,只需要在页脚处添加页大小:<w:pgSz w:w="11906" w:h="16838" />
,WPS打开文档就能正常显示页脚。仅有这一点区别。
解决方案
只需要在生成文档时,能让POI在document.xml的footerReference标签下面添加pgSz标签,问题就能解决。或者生成之后,自己写代码实现解压缩docx文件,找到document.xml文件,解析xml,在footerReference标签下面添加pgSz标签。
后者存在的缺陷:重新压缩后,使用Microsoft Word打开会识别到文件被修改过,会出现这个提示。
是否能直接让POI在生成的时候添加这个标签?
- 将poi版本升级到5.2.3(升级到这个版本才有需要的api)
- 在添加页脚后添加页大小,设置为A4纸大小
// 获取节属性
CTSectPr sectPr = document.getDocument().getBody().getSectPr();
// 设置页面大小(A4: 21cm x 29.7cm => twips: 11906 x 16838)
CTPageSz pgSz = sectPr.addNewPgSz();
pgSz.setW(BigInteger.valueOf(11906));
pgSz.setH(BigInteger.valueOf(16838));
生成的文档WPS和Microsoft Word打开都正常,并且Microsoft Word打开不会有警告。
Microsoft Word:
wps: