最近项目上面有个需求,将用户上传的office格式转换成pdf格式。下面记录下我走过的一些弯路,和得到的一些收获
1 使用java第三方api转换。
这个是我最开始的想法,因为java毕竟比较熟悉,学习成本,维护成本相对较低。这个方案找过很多第三方,例如poi之类的,但是有两个缺点,1 性能低,对cpu压力大,2 兼容性差,很多格式或者特殊字符解析不出。
2 使用openOffice
openOffice也算是大名鼎鼎了,我使用的是另一个分支libreoffice。这个方案是在linux服务器上安装openOffice然后通过openOffice命令来转换pdf。
性能问题基本解决,但是兼容性还是太差,特别是windowsOffice很多特有 格式无法读取或者乱码,而且需要安装微软中文字体还有可能涉及到侵权。
3使用微软提供的com组件实现
微软提供一个叫做SaveAsPDFandXPS的com组建来实现office转换成pdf。
java通过jacob来调用com组件
具体实现
1 如果是web工程的话在jdk的bin目录下放置jacob-1.14.3-x64.dll
2 需要一台windows服务器,将该功能单独部署
3 这台windows服务需要安装office 和SaveAsPDFandXPS
方案优点, 解决性能问题,完美解决兼容性问题。
方案缺点, 需将转换服务单独部署,成为独立服务。需要windows服务器。需要实现linux系统和windows系统共享文件。这里感谢运维人员提供支持,通过磁盘挂载的方式实现共享文件。
实现流程为:
用户上传文件到web,web项目将用户上传的文件保存到文档服务器,然后调用部署在windows上的远程服务同时传递文件路径,该远程服务根据路径查找文档服务器上的文件并转换,然会返回相应的结果。
稍微注意就是,看业务需求是同步转换还是异步转换,同步采用rpc机制调用远程服务,异步采用mq消息队列机制来实现远程服务调用。mq好处在于,可以最大化提升性能,因为可以通过队列来按顺序转换对应文件。
- 大小: 9.6 KB
分享到:
相关推荐
总之,"doc转pdf终极解决方案demo"通过Aspose.Words提供了一种高效且跨平台的方法,来解决在Windows和Linux系统间进行DOC到PDF转换的问题。无论是在企业级应用还是个人项目中,这种解决方案都能显著提高文档处理的...
总之,"Office转PDF插件"是一个实用的工具,它简化了Office文档与PDF之间的转换,提供了便捷、安全的解决方案,尤其适合经常处理这两种格式的用户。了解并掌握如何有效利用这类插件,能大大提高办公效率,减少不必要...
PDF-XChange Pro 4.0163注册版是一个完整的PDF解决方案,包含了许多实用工具,如PDF创建、编辑、转换、注释和扫描等。以下是这款软件的一些核心功能及其详细说明: 1. **PDF创建**:你可以直接从Word、Excel、...
#### 十、附加:Word转PDF的最简单方法 有时也需要将Word文档转换为PDF格式。 **步骤:** 1. 打开Word文档。 2. 选择“文件”->“另存为”。 3. 从文件类型列表中选择“PDF”格式。 4. 保存文件。 #### 结论 本文...
总结来说,Readiris Pro 12是一款非常实用的工具,对于需要频繁进行PDF转Word操作的用户,它提供了一种高效且准确的解决方案。如果你在法律、医学或其他专业领域工作,这个工具可以帮助你快速处理大量的非编辑性文档...
MODI 提供了一种解决方案,通过其内置的OCR(光学字符识别)技术,可以将PDF文件中的文字识别出来,然后转换成Word文档。 步骤如下: 1. **安装MODI**:首先,你需要确保已安装了Microsoft Office Document ...
标题中的“关于jacob的使用解决方案1”指出的是在Java环境中使用Jacob库遇到的问题及其解决方法。Jacob是一个Java到COM桥接库,允许Java应用程序访问和操作COM组件,如Microsoft Office套件,以便进行文件格式转换等...
在Java开发中,生成高质量的Word文档是一项挑战,特别是当涉及到复杂的格式、表格和图片时。传统的库如Apache POI虽然能处理基本的读写任务,但在...这种解决方案尤其适用于需要大量生成定制化报告或文档的业务场景。
SaaS领域的Office 365则长期占据市场细分领域的领先地位,其涵盖了文档编辑、团队协作、消息通讯、内容管理、数据分析和业务流程管理等一系列工具,为不同规模的企业和个人用户提供全面的云端办公解决方案。...
在IT领域,文档格式转换是日常工作中的常见需求。"飞速Word PDF互转工具"是一款专为此目的设计的软件,它的主要功能在于帮助用户...用户在选择文档转换解决方案时,应综合考虑各种因素,以找到最能满足自己需求的工具。
【Java生成复杂Word文档的完美解决方案】 在Java开发中,生成复杂的Word文档一直是一个挑战,尤其是在满足严格的格式和打印需求时。传统的解决方案如Apache POI和iText在处理大量表格、图片以及复杂的文档布局时,...
Apache POI和docx4j适合于那些希望自由开源解决方案的项目,而Aspose.Words和Spire.Doc虽然可能涉及商业许可费用,但它们提供了更全面的特性,尤其在处理复杂的docx文件和保持转换质量方面。 总的来说,docx到pdf的...
本项目提供了一个解决方案,利用了Apache POI和PDFBox两个开源库,以及exe4j工具来生成Windows平台的EXE文件。 Apache POI是一个流行的Java库,用于处理Microsoft Office格式的文件,如Word(DOC和DOCX)。在这个...
PDF转Word(图片转Word)是一个常见的需求,尤其在处理包含大量文本的图像或PDF文档时。这个过程主要依赖于OCR(光学...虽然这个过程可能需要一些手动操作,但它为处理非文本可编辑的文档提供了一个有效的解决方案。
这个实例不仅展示了C#与外部工具(如Office和SWFTOOLS)的集成能力,还体现了Web开发中对文件格式转换和在线展示的解决方案。对于开发者来说,理解和掌握这样的技术可以极大地提升工作效率,特别是在处理大量文档时...
4. **生成最终文档**:替换完占位符后,保存文档或将其转换为PDF等其他格式,供打印或分发。 #### 结论 Java与MS Office的结合,虽然面临一定的技术挑战,但通过合理的架构设计和技术选型,完全能够在保持Java跨...
如果你需要在Excel中添加图片、设置水印或者实现分页,EasyPOI都能提供相应的解决方案。例如,你可以先创建一个Excel模板,然后使用EasyPOI的API填充数据,添加图片到指定单元格,设置水印透明度和位置,最后通过...
以上是通过Freemarker模板引擎生成Word文档的基本知识点,包括了选择技术的理由、实现方案、遇到的难点及其解决方案、以及在不同环境下生成PDF文档的方法。这些知识点对于希望使用Freemarker模板引擎自动化生成文档...
### 基于TGO系统的地方坐标系约束平差解决方案 #### 一、TGO系统与地方坐标系约束平差 TGO系统,即Trimble Geomatics Office,是由美国Trimble公司研发的一款用于管理与处理GPS数据的综合性平台。其功能覆盖广泛,...
- 如果遇到任何问题,可以通过阅读项目文档或在线搜索解决方案来解决。 #### 结语 通过以上步骤,我们可以轻松地使用Python将PPT转换为PDF。这种方法特别适合需要频繁进行格式转换的工作场景。希望本教程对您有所...