java pdf 水印_Java 添加PDF文本水印和图片水印

本文介绍了如何使用Java编程在PDF文件中添加文本和图片水印,包括通过Spire.Pdf库的详细步骤,以防止文件被抄袭或盗用。提供了两个示例,分别展示添加文本水印和图片水印的代码实现。
摘要由CSDN通过智能技术生成

在日常办公中,PDF文件的使用越来越普遍。为了防止自己撰写的文件内容被抄袭或者被他人盗用,给PDF文件添加上水印是一个不错的选择。根据添加的水印内容不同一般可分为文本水印和图片水印。本文将通过使用Java程序来详细介绍如何在PDF文件中添加文本水印和图片水印。

Jar文件获取及导入:

方法1:通过官方网站下载获取jar包。解压后将lib文件夹下的Spire.Pdf.jar文件导入Java程序。(如下图)

6423d14244221eb55de010e2327dc748.gif

方法2:通过maven仓库安装导入。具体安装详解参见此网页。

【示例1】添加文本水印

import com.spire.pdf.*;

import com.spire.pdf.graphics.*;

import java.awt.*;

import java.awt.geom.*;

public class TextWatermark {

public static void main(String[] args) {

//创建PdfDocument对象

PdfDocument pdf = new PdfDocument();

//加载示例文档

pdf.loadFromFile("D:\\Desktop\\Sample.pdf");

//获取第一页

PdfPageBase page = pdf.getPages().get(0);

//调用insertWatermark方法插入文本水印

insertWatermark(page, "Confidential");

//保存文档

pdf.saveToFile("output/TextWaterMark.pdf");

}

static void insertWatermark(PdfPageBase page, String watermark) {

Dimension2D dimension2D = new Dimension();

dimension2D.setSize(page.getCanvas().getClientSize().getWidth() / 2, page.getCanvas().getClientSize().getHeight() / 3);

PdfTilingBrush brush = new PdfTilingBrush(dimension2D);

brush.getGraphics().setTransparency(0.3F);

brush.getGraphics().save();

brush.getGraphics().translateTransform((float) brush.getSize().getWidth() / 2, (float) brush.getSize().getHeight() / 2);

brush.getGraphics().rotateTransform(-45);

brush.getGraphics().drawString(watermark, new PdfFont(PdfFontFamily.Helvetica, 24), PdfBrushes.getViolet(), 0, 0, new PdfStringFormat(PdfTextAlignment.Center));

brush.getGraphics().restore();

brush.getGraphics().setTransparency(1);

Rectangle2D loRect = new Rectangle2D.Float();

loRect.setFrame(new Point2D.Float(0, 0), page.getCanvas().getClientSize());

page.getCanvas().drawRectangle(brush, loRect);

}

}

文本水印添加效果:

4db081759c6c84ae6d3359541f61c9b3.png

【示例2】添加图片水印

import com.spire.pdf.*;

import java.awt.geom.Rectangle2D;

public class ImageWatermark {

public static void main(String[] args) {

//加载PDF文档

PdfDocument doc = new PdfDocument();

doc.loadFromFile("D:\\Desktop\\Sample.pdf");

//获取第一页

PdfPageBase page = doc.getPages().get(0);

//设置背景图片

page.setBackgroundImage("D:\\Desktop\\Image.jpg");

//设置背景区域

Rectangle2D.Float rect = new Rectangle2D.Float();

rect.setRect(280, 300, 150, 150);

page.setBackgroundRegion(rect);

//保存文档

doc.saveToFile("output/ImageWaterMark.pdf");

doc.close();

}

}

图片水印添加效果:

05c77fbb37d9c02d4d5b95437886572c.png

(本文完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值