Word转PDF,PNG,HTML神器XDOC

原创

猿天地2020-08-02 17:09:10©著作权

文章标签

神器;

阅读数

601

©著作权归作者所有:来自51CTO博客作者猿天地的原创作品,如需转载,请注明出处,否则将追究法律责任

https://blog.51cto.com/u_14888386/2515901

**前言**

在很多的项目中都会遇到操作Word文件的需求,特别是To B的这种项目。像一些招聘网站最常见的一个功能那就是导出简历啦,可以导出doc,pdf,html等格式。

需求:

•用户上传Word模板,需要将数据替换到Word模板中,然后输出PDF文件。

•上传的模板需要在网页中显示,也就是输出的PDF文件是什么样子,网页中也要显示什么样子。

基于上面的需求,最基本的功能还是得修改Word文件,修改完成之后然后再转PDF, 如何在网页中显示呢?比如说我们可以生成html格式,嵌入到网页中,生成图片也是可以的。

最常见的操作框架有POI, OpenOffice也挺强大,可以直接通过命令的方式转换格式。上面的需求你用其他的框架肯定能实现,可能会比较麻烦,今天给大家推荐一个非常好用的神器XDOC。

我之所以称为神器,原因是确实非常好用,主要是简单,不需要任何jar包依赖,不需要安装任务软件,直接有云服务支持,并且是免费的。

官网地址:http://www.xdocin.com/

**使用**

使用有下面几种方式:

•直接调用接口

•采用封装好的jar

为了简单我们直接使用封装好的,要么引入jar,要么复制XDocService.java

XDocService用于在java应用中和操作系统命令行中调用xdoc服务。

程序库 :

http://www.xdocin.com/XDocService.ja

源代码 :

http://www.xdocin.com/XDocService.java

首先我们先来简单的对一个word文件转pdf操作, 在E:\test目录下创建一个test.docx文件,如下图:

![](https://s4.51cto.com/images/blog/202008/02/701758a9320bccf8a31e714b0061ffeb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

image.png

文件中有文字,字体设置,有图片,接下来开始编写转换代码:

```

XDocService service = new XDocService();

try {

service.to("E:\\test\\test.docx", new File("E:\\test\\test.pdf"));

} catch (IOException e) {

e.printStackTrace();

}

```

只需要2行代码,我们就可以实现word转pdf的操作,是不是很简单。

![](https://s4.51cto.com/images/blog/202008/02/a2e892d9b6a399006d7bd5865656e505.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

image.png

接下来实现一个稍微复杂点的需求,在将word转pdf的时候,动态去修改word中的内容,我们修改下docx文件,将标题变成动态的,使用${文字}格式编写。

![](https://s4.51cto.com/images/blog/202008/02/f3fc7b54fc40b6d34658b3d73d9f40e7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

image.png

也就是说这个模板是固定的,但是我们可以在生成的时候去设置这个标题的文字,看代码:

```

XDocService service = new XDocService();

try {

Mapparam = new HashMap();

param.put("标题", "微服务");

service.run("E:\\test\\test.docx", param, new File("E:\\test\\test.pdf"));

} catch (IOException e) {

e.printStackTrace();

}

```

涉及到参数的传递我们用run方法,效果如下:

![](https://s4.51cto.com/images/blog/202008/02/be89efc8cb75520a9f010c11c6d4eb0d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

image.png

最后再讲一个点,将docx中的图片也能动态替换,同样的修改模板,改成占位符就可以了。

![](https://s4.51cto.com/images/blog/202008/02/ac64eadad412ee5748b596e5602bd068.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

image.png

代码需要将图片作为参数传入,有2种方式,一种是传递图片的地址,需要是http://xx.png,能够通过网络访问,还有一种就是本地图片,本地图片需要转成DataURI方式传入。

```

XDocService service = new XDocService();

try {

Mapparam = new HashMap();

param.put("标题", "微服务");

param.put("图片", "http://cxytiandi.com/images/gongzhonghao.jpg");

service.run("E:\\test\\test.docx", param, new File("E:\\test\\test.pdf"));

} catch (IOException e) {

e.printStackTrace();

}

```

![](https://s4.51cto.com/images/blog/202008/02/bae08c15a79fa3bcab89dd89d1146f15.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

image.png

就写这么多吧,更多的使用方式,请自行去官网查看文档。总之就是一句话,很好用。

![](https://s4.51cto.com/images/blog/202008/02/c02192804249f5f70db782f2c3d9bbe0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

尹吉欢

我不差钱啊

喜欢作者

打赏

收藏

评论

html输出doc,Word转PDF,PNG,HTML神器XDOC相关推荐

  1. Word转PDF,PNG,HTML神器XDOC

    前言 在很多的项目中都会遇到操作Word文件的需求,特别是To B的这种项目.像一些招聘网站最常见的一个功能那就是导出简历啦,可以导出doc,pdf,html等格式. 需求: 用户上传Word模板,需 ...

  2. PDF输出和word转PDF输出

    一.前端 // 预览 PDF 文件 export function viewPDF(Id, params = {}) {axios({method: 'post',headers: {'Content ...

  3. python docx 合并文档 图片_使用python抓取大量简历文档内数据(word:docx;pdf;图片等)输出表格文件...

    1. 文章背景描述: 近期公司有员工离职了,技术岗位的. 让HR招人,招聘进度也太慢了,实在等不及,就撸起袖子自己上.(之前从来没招聘过) 自己在某招聘网站注册后,花了若干人民币,短时间收到大量求职者 ...

  4. java 将word转为pdf文件的两种方式【spire.doc.free】【documents4j】

    场景 如资产证明等场景下,一般要求同时生成word与pdf两种格式的证明文件,且两者格式需保持一致,可以各自单独生成,但那样可能需要维护两个模板文件,所以也可以仅定义一份word的模板文件,使用模板生 ...

  5. POI生成word文档,再通过spire.doc.free 实现word转pdf

    一.POI实现导出当前页面为word文档 1.导入poi依赖 <dependency><groupId>org.apache.poi</groupId><ar ...

  6. winform实现word转换为PDF(.doc)

    注意:实现word转换为PDF文件,本人安装Office为2013; word以后缀为.doc为例实现文件类型转换,具体方式如下所示: 实现步骤: 1.添加命名空间引用--using Microsof ...

  7. 常用文件格式转换大全: PDF转Word,WORD转PDF转换器,DOCX转DOC转换

    为什么80%的码农都做不了架构师?>>>    常用文件格式转换大全: Diywz - PDF转Word,WORD转PDF转换器,DOCX转DOC转换器  常用的文件格式互转工具,实 ...

  8. Word控件Spire.Doc 转换教程(二十三):保留或禁用从 Word 到 PDF 转换的超链接

    超链接为读者提供了更多的附加信息,它被广泛用于我们的 word 文档.Spire.Doc 具有强大的超链接文字元素操作功能.开发者可以在word文档中添加.修改和删除超链接.Spire.Doc for ...

  9. 网页报告不能直接转换成Word、PDF格式怎么办?Spire.doc控件可以轻松解决

    关于客户 客户是一家从事调研的企业,主要为各大企业提供有关产品.市场环境调研.行业调查与分析等服务.通过与客户沟通,我们了解到客户有一个基于网页端的调研分析系统,用于汇总分析各城市上传的调研项目,最终 ...

最新文章

  1. 通过BeanShell获取UUID并将参数传递给Jmeter
  2. Git查看、删除、重命名远程分支和tag【转】
  3. String类型的学习
  4. MySQL清理注册表
  5. mysql5.7.12安装问题
  6. python请输入_python中的三种输入方式
  7. 计算机科学创新大赛,计信学院举办第六届科技创新小发明大赛
  8. Python菜鸟教程,带你十分钟入门!
  9. 12306自动抢票软件代码实现
  10. 观影坪-纪录片之《穹顶之下》
  11. Go语言中的字符串特性
  12. 类似安卓的点9图片,气泡图片调成自己需要的
  13. MYSQL报错:Error writing file ‘./xxxx/xxxxxx.frm‘ (Errcode: 28 - No space left on
  14. 在某OC字符串中,搜索指定的某字符串:-rangeOfString:
  15. [JZOJ4236] 登山
  16. SP,Substance painter
  17. 分辨率、DPI、PPI和屏幕尺寸,你都知道是啥么?
  18. 告诉你C盘里的每个文件夹都是干什么用的
  19. android一个程序叫什么名字,android寻星应用程序叫什么??
  20. 爬取2019年央视新闻APP

热门文章

  1. 工程机械液压系统的组成及功能概述
  2. 大华 sdk java_[日常总结] 大华SDK基于Java的二次开发实现Restful Api
  3. 视频格式转化(将MP4格式转换成ogg格式)
  4. python代码解析
  5. JavaScript封装异步函数 —— 【异步编程】 —— 如何获取一个函数中异步操作的结果?
  6. Bat To Exe Converter。
  7. comsol计算机模拟过程,借助数值模拟分析多孔结构
  8. JS实现上下左右键 (键盘事件)
  9. 风尚云网学js-关于js对象数组如何去重?
  10. 使用 sudo nautilus 进入ubuntu 文件管理器。可以随意复制,删除,粘贴,无权限限制