如何使用java实现word文档转pdf并添加水印
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍了如何使用java实现word文档转pdf并添加水印,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:前段时间,
千家信息网最后更新 2025年11月11日如何使用java实现word文档转pdf并添加水印
这篇文章主要介绍了如何使用java实现word文档转pdf并添加水印,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
具体如下:
前段时间,项目需要自动生成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 多种数据格式
官方下载地址:http://www.aspose.com/java/word-component.aspx
我所用的版本是aspose-words-14.9.0-jdk16。需要到的两个jar包(所需jar包下载。)。
上代码:
import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import org.slf4j.Logger;import com.aspose.words.Document;import com.aspose.words.SaveFormat;/** * * @ClassName: Word2PdfUtilt* @Description: PDF转换工具类* @author mzl* @date 2018年7月30日 下午5:26:44* */public class Word2PdfUtilt { protected static Logger log = Log.get(); public static void main(String[] args) { doc2pdf("D:\\Workspaces\\小花测试_20180731094521.doc","D:\\Workspaces\\test.pdf"); } public static void doc2pdf(String inPath, String outPath) { FileOutputStream os =null; try { File file = new File(outPath); // 新建一个空白pdf文档 os = new FileOutputStream(file); Document doc = new Document(inPath); // Address是将要被转化的word文档 doc.save(os, SaveFormat.PDF); } catch (Exception e) { e.printStackTrace(); }finally{ if(os!=null){ try { os.close(); } catch (IOException e) { e.printStackTrace(); } } } }}转成PDF格式后,图片等样式均没有乱。
以上就是生产PDF的步骤了,接下来添加水印:
/*** * @Title: insertWatermarkText* @Description: PDF生成水印* @author mzl* @param doc* @param watermarkText* @throws Exception* @throws*/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); } System.out.println("Watermark Set");}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));}感谢你能够认真阅读完这篇文章,希望小编分享的"如何使用java实现word文档转pdf并添加水印"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
文档
水印
篇文章
生成
要么
样式
格式
项目
浏览
复杂
思来想去
接下来
上代
两个
主流
乱码
价值
兴趣
同时
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手机软件开发订餐系统报告
猎聘网关于网络安全工程师薪资
滁州医疗软件开发费用
互联网金融科技企业有哪些
ad域文件服务器
明日之后官服推荐什么服务器呢
跨网段连接数据库
服务器怎么接无线wangka
寺庙网络安全简报
如何还原群集数据库
塔科夫无法选择服务器
针对网络安全的主要检测措施
大智慧代理服务器超时
数据库架构设计课程
团队协作 软件开发
黑苹果服务器内存
网络安全心得体会百度文库
数据库中间件的主要任务和功能
武汉大学网络安全待遇
数据库范式 例子
学校网络安全教育活动资料
h3c服务器上uid按钮
云服务器和域名哪个更好
海德容错服务器 资源不足
医疗器械网络安全解决方案
最常见的硬件服务器类型是什么
软件开发技术好做吗
盘龙区专业性软件开发价格走势
杭州九阳公司 网络安全
公安dna数据库自己的账号