应用场景描述
后台管理系统(java springMVC开发)有一个打印pdf文档的功能,其实现原理是读取资源文件(.docx),再将文档(.docx)转化为pdf,转化是通过java 程序实现。
问题
在window系统上使用WPS编辑好了一个docx文档,并将docx转换为pdf,WPS上预览了docx和pdf的文档格式都没问题,结果docx放到系统上时,打印出来的pdf出现连续两页的页眉重叠。
解决思路
检查java程序,发现使用了LibreOffice的转化库进行转化,而我们编辑保存的文档是使用WPS,这让我想到了以前在Ubuntu系统上使用LibreOffice写的word文档,在window系统上打开(WPS,microsoft office软件)也出现过内容布局(格式)不一致的问题,特别是csv文件。
因此解决方法是下载个LibreOffice打开docx文档,将其保存为我们想要的布局,再放到项目中去。
比较前后两个文件,发现WPS上编辑好的接近40K,LibreOffice上编辑好的接近90K,说明这个两个工具在文本内部的字符处理还是存在不同的。