java实现pdf水印详解,支持换行、旋转且样式不会错乱,贼透彻

您所在的位置:网站首页 win11word怎么加水印 java实现pdf水印详解,支持换行、旋转且样式不会错乱,贼透彻

java实现pdf水印详解,支持换行、旋转且样式不会错乱,贼透彻

2024-07-17 20:38| 来源: 网络整理| 查看: 265

java实现pdf水印详解,支持换行、旋转且样式不会错乱,贼透彻 业务需求代码实现思路效果图本地代码实现一、前期准备二、pdf水印生成简单样例(基础)三、showTextAligned方法解读四、根据需求实现水印

业务需求

   在客户点击链接评价完后生成相应评价数据的pdf文件,并且添加水印,水印添加完成后进行第三方签名。水印名称为项目名称,字体默认,字号12,颜色浅灰色,水印文字排列为8 * 3(一行3个水印,一页8行),水印30度旋转,且支持文字换行,换行后文字居中。

代码实现思路

   因为是公司项目,为了方便整理成了3步骤实现,第一步生成评价数据的pdf文件,第二步添加水印,第三步进行第三方签名,这篇文章主要分析水印相关的实现和详细步骤拆分,看完自己就可以根据需求定制水印,想放哪儿就放哪儿,怎么好看你就能怎么整。

效果图

在这里插入图片描述 在这里插入图片描述

本地代码实现 一、前期准备 依赖: com.itextpdf itextpdf 5.4.3 com.itextpdf itext-asian 5.2.0 一个pdf文件 二、pdf水印生成简单样例(基础) public static void main(String[] args) throws Exception { ReducePdfTestService reducePdfService = new ReducePdfTestService(); reducePdfService.setPdfWaterMarForFileTest("D:/file/todest/", "test.pdf", "测试水印"); } /** * 给已经输出的pdf文件添加水印 * @param filePath * @param fileName * @param * @throws Exception */ public void setPdfWaterMarForFileTest(String filePath, String fileName , String waterText) throws Exception { // 输入PDF文件路径 String inputFile = filePath + fileName; // 输出PDF文件路径 String outputFile = filePath +"temp_" + fileName; // 创建PdfReader对象读取原始PDF文件 PdfReader reader = new PdfReader(inputFile); // 创建PdfStamper对象,用于添加水印 PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputFile)); // 用于添加水印的主要对象 PdfContentByte waterMar; // 创建水印字体 BaseFont base = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED); // 设置水印透明度 PdfGState gs = new PdfGState(); // 设置填充字体不透明度 gs.setFillOpacity(0.12f); gs.setStrokeOpacity(0.3f); // 获取pdf页数 int n = reader.getNumberOfPages(); // 添加水印到每一页 for (int i = 1; i


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3