将 DOCX 文档转化为 PDF 是项目中常见的需求之一,目前主流的方法可以分为两大类,一类是利用各种 Office 应用进行转换,譬如 Microsoft Office、WPS 以及 LiberOffice,另一种是利用各种语言提供的对于 Office 文档读取的接口(譬如 Apache POI)然后使用专门的 PDFGenerator 库,譬如 IText 进行 PDF 构建。总的来说,从样式上利用 Office 应用可以保证较好的样式,不过相对而言效率会比较低。其中 Microsoft Office 涉及版权,不可轻易使用(笔者所在公司就被抓包了),WPS 目前使用比较广泛,不过存在超链接截断问题,即超过 256 个字符的超链接会被截断,LiberOffice 的样式排版相对比较随意。而利用 POI 接口进行读取与生成的方式性能较好,适用于对于格式要求不是很高的情况。另外还有一些封装好的在线工具或者命令行工具,譬如 docx2pdf 与 OfficeToPDF。