zoukankan      html  css  js  c++  java
  • [原创]java实现word转pdf

      最近遇到一个项目需要把word 转成pdf,百度了一下网上的方案有很多,比如虚拟打印、给word 装扩展插件等,这些方案都依赖于ms word 程序,在java代码中也得使用诸如jacob或jcom这类java com bridge,使得服务器开发受限于win平台,而且部署起来也很麻烦。后来在某论坛看到了一个openoffice+jodconverter的转换方案,可以完成word到PDF的转换工作,服务器开发端需要安装openoffice,但是需求一步额外的操作--需要在服务器开发上的某个端口提供一个openoffice服务,这对部署起来显得麻烦了点,貌似也不太安全。
      偶然机会发现了PageOffice组件也可以实现word转pdf功能。而且不只是简单的把word转为pdf格式,还可以支持动态填充数据到word模板文件然后再转为pdf文件。
      以下为官网介绍:

      

      调用PageOffice组件的FileMaker对象实现动态填充数据到word模板并转为pdf的核心代码如下:

        FileMakerCtrl fmCtrl = new FileMakerCtrl(request);
        fmCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
        WordDocument doc = new WordDocument();
        doc.openDataRegion("PO_company").setValue("北京某某有限公司");//给数据区域赋值,即把数据填充到模板中相应的位置
        fmCtrl.setSaveFilePage("/savepdf"); //保存pdf的action或RequestMapping方法
        fmCtrl.setWriter(doc);
        fmCtrl.fillDocumentAsPDF("doc/template.doc", DocumentOpenType.Word, "123.pdf");//填充word模板并转为pdf
      保存pdf的action或RequestMapping方法(/savepdf)的代码:
        FileSaver fs = new FileSaver(request, response);
        fs.saveToFile(request.getSession().getServletContext().getRealPath("doc") +"/"+ fs.getFileName());
        fs.close();

      示例源码及效果:http://www.zhuozhengsoft.com/dowm/,下载PageOffice for Java,解压后,拷贝Samples4文件夹到Tomcat的Webapps目录下,访问:http://localhost:8080/Samples4/index.html,查看示例:二、34、FileMaker转换单个文档为PDF(以Word为例) 

  • 相关阅读:
    Javascript FP-ramdajs
    微信小程序开发
    SPA for HTML5
    One Liners to Impress Your Friends
    Sass (Syntactically Awesome StyleSheets)
    iOS App Icon Template 5.0
    React Native Life Cycle and Communication
    Meteor framework
    RESTful Mongodb
    Server-sent Events
  • 原文地址:https://www.cnblogs.com/ziwuxian/p/9009569.html
Copyright © 2011-2022 走看看