前段时间,项目需要自动生成word文档,用WordFreeMarker生成word文档后,又要求生成的文档能在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研究了一下。

将word文档转化为PDF是项目中常见的需求之一,目前主流的方法可以分为两大类,一类是利用各种Office应用进行转换,譬如Microsoft Office、WPS以及LiberOffice,另一种是利用各种语言提供的对于Office文档读取的接口(譬如Apache POI,jacob,docx4j,openoffice),这些要么收费,要么要装插件,要么转换之后样式走形,乱码等等。

我使用Aspose.Words for Java 可以导出复杂WORD PDF HTML 多种数据格式

结果我的测试发现只能转换doc和docx文档

官方下载地址:https://products.aspose.com/words/java

我所用的版本是aspose-words-14.9.0-jdk16。文章最后附上插件破解版的下载地址以及源码

先看实现转换pdf文档的代码:

  /***  word文档转pdf,并添加水印* @param inPath 需要转换的word文档地址* @param outPath 存放的pdf文档地址* @param watermarkText 水印内容*/public void wordTransformPdf(String inPath,String outPath,String watermarkText){
/*        //需要转换的word文档地址String inPath = "D:\\word\\测试.doc";//存放的pdf文档地址String outPath = "D:\\word\\test.pdf";*/FileOutputStream os =null;try {// 新建一个空白pdf文档File file = new File(outPath);os = new FileOutputStream(file);// Address是将要被转化的word文档Document doc = new Document(inPath);//先添加水印//insertWatermarkText(doc,"测试使用水印");insertWatermarkText(doc,watermarkText);//后赋值word内容doc.save(os, SaveFormat.PDF);} catch (Exception e) {e.printStackTrace();}finally{if(os!=null){try {os.close();} catch (IOException e) {e.printStackTrace();}}}}

转成PDF格式后,图片等样式均没有乱下面可以看到成果

接下来添加水印的源代码:

 /**** @Title: insertWatermarkText* @Description: PDF生成水印* @author zz* @param doc 需要添加的pdf文档* @param watermarkText 水印内容* @throws Exception*/private static void insertWatermarkText(Document doc, String watermarkText) throws Exception {Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT);//水印内容watermark.getTextPath().setText(watermarkText);//水印字体watermark.getTextPath().setFontFamily("宋体");//水印宽度watermark.setWidth(500);//水印高度watermark.setHeight(100);//旋转水印watermark.setRotation(-40);//水印颜色watermark.getFill().setColor(Color.lightGray);watermark.setStrokeColor(Color.lightGray);watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);watermark.setWrapType(WrapType.NONE);watermark.setVerticalAlignment(VerticalAlignment.CENTER);watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);Paragraph watermarkPara = new Paragraph(doc);watermarkPara.appendChild(watermark);for (Section sect : doc.getSections()){insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY);insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST);insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN);}}private static void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, int headerType) throws Exception {HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType);if (header == null) {header = new HeaderFooter(sect.getDocument(), headerType);sect.getHeadersFooters().add(header);}header.appendChild(watermarkPara.deepClone(true));}

好了,附上下载地址https://download.csdn.net/download/weixin_47301274/12668092

java实现word文档转换pdf文档并且添加水印功能使用插件Aspose.Words相关推荐

  1. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  2. Office2007如何将Word文档转换PDF文档

    今天有需求将Word文档转换PDF文档,而公司安装的Office 2007自带没有另存PDF文档功能,所以我们要先给Office 2007 安装一个加载项,就能导出文件并将其保存为 PDF 或 XPS ...

  3. java实现Word文档转换PDF文档

    最近需要实现在java语言Word文档转成PDF文档的功能,做了一下调研,最后使用aspose-words实现了该功能. 注意,aspose-words 为商业软件,本文仅是使用方法的demo,使用的 ...

  4. java调用libreoffice_JAVA实现LibreOffice转换PDF文档

    首先,安装LibreOffice服务 使用.LibreOfficeAndJodconverter.java package com.jalor.LibreOffice; import java.io. ...

  5. java : word,excel,img,ppt各种文档转换pdf格式以流方式

    前提: 面对各种文件转换pdf格式,我下面写的都是一些方法,其中每个方法都以流的方式进行参数的传递. 通过猿友的帮忙,修改了部分jar包,解决excel转换pdf导致的水印问题~ 源码链接:https ...

  6. java 预览word文档_Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  7. Word文档转换PDF格式常见转换技巧汇总

    时下,随着PDF文件格式的优点爆出,PDF文件已成为出版业的新宠.不过大部分工作族仍习惯使用Word文档编辑,而不适应PDF文件编辑,但在传输上又造成了一定的麻烦,这就有了"转换" ...

  8. java零碎要点010---Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  9. Python 技术篇-利用pdfkit库实现html格式文件转换PDF文档实例演示

    准备: 首先需要安装 pdfkit 库,使用 pip install pdfkit 命令就好了. 还需要安装 wkhtmltopdf 工具,本质就是利用这个工具来进行转换,pdfkit 库就是作为接口 ...

最新文章

  1. iOS开发笔记 - 界面调试神器Reveal
  2. Firefox年内将默认启用AV1解码
  3. 监听输入 vue_深度对比vue与react创建APP的差别,值得收藏
  4. ASP.NET.CORE发布后启动网站出现500.19-0x8007000d错误解决方法
  5. 使用easyUI给datagrid添加pagination
  6. fdisk自动进行分区
  7. linux history 看更多历史记录_Linux内核5.3+将更多支持F2FS
  8. 内网渗透扫描神器 Perun
  9. C++ 设计模式 —— 策略模式(Strategy)
  10. 如何用计算机计算胸围,胸围尺码换算(罩杯自动计算器)
  11. 傲腾服务器系统,英特尔傲腾:加速智能新常态,驱动存储新未来
  12. 自己给打印机怎么加粉墨,联想兄弟打印机加粉步骤
  13. signature=daa3bbe3ad9a7c162ba9d98f8d9e7530,来用百度密语吧!!!
  14. java贪吃蛇程序v1
  15. Gym 101778G
  16. 总结 62 种在深度学习中的数据增强方式
  17. Python实现两两交换链表中的节点
  18. Reggie外卖项目 —— 项目开发整体介绍
  19. P2690 [USACO04NOV]Apple Catching G 题解
  20. 嵌入式开发<单片机软件调试>

热门文章

  1. win11开机频繁刷新桌面,explorer报错 ntdll.dll应用程序崩溃事件
  2. Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建一(虚拟机篇)
  3. Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建
  4. 工作再难找,也不要应聘这3种工作
  5. 库克解释苹果收购英特尔手机基带业务意图:掌控核心技术
  6. 夜明け前より瑠璃色な 音楽集 「Lunar Passport」Disc3 cue
  7. jQuery表单验证用户名密码
  8. 简单、稳定、可控:老牌财经网站上云记!
  9. Primefaces
  10. Android 手机银行安全性研究 (转)