栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java-PDF添加水印【文字或图片】,使用Spire.PDF for Java

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java-PDF添加水印【文字或图片】,使用Spire.PDF for Java

Spire.PDF for Java 有免费版与收费版,单纯使用添加水印的功能的话,测试下来 免费版就够了,以下是相关代码与官网教程

1、官网:JAVA 添加 PDF 文本水印 (e-iceblue.cn)https://www.e-iceblue.cn/pdf_java_watermark/java-add-text-watermark-to-pdf-document.html

2、Maven安装Jar包:

通过 Maven 仓库安装 Spire 系列 Java 产品 (e-iceblue.cn)https://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.html 3、参考资料:Java在PDF中添加水印(文本/图片水印) - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/122408287 4、自己的代码:

  • 文本中可以使用rn设置水印文字的换行
  • 通过foreach设置每一页pdf的水印
  • new PdfFont(PdfFontFamily.Helvetica, 12) 设置字体及size
  • PdfBrushes.getBlack() 设置水印颜色
  • 水印的占位、宽度和透明度都可以进行设置,可以自行调整(代码中setSize 除3的地方)
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("C:\Users\zhoushun\Downloads\xxxx.pdf");

        //获取测试文档中的第一页
        pdf.getPages().forEach(page->{
            insertWatermark((PdfPagebase) page, "zhoushunrn2021-10-14 08:00:00");
        });

        //调用insertWatermark()方法添加文本水印

        //保存文档
        pdf.saveToFile("C:\Users\zhoushun\Downloads\textWaterMark.pdf");
    }

    static void insertWatermark(PdfPagebase page, String watermark) {
        Dimension2D dimension2D = new Dimension();
        dimension2D.setSize(page.getCanvas().getClientSize().getWidth() / 3, 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() / 3, (float) brush.getSize().getHeight() / 3);
        brush.getGraphics().rotateTransform(-45);
        brush.getGraphics().drawString(watermark, new PdfFont(PdfFontFamily.Helvetica, 12), PdfBrushes.getBlack(), 0 , 0 , new PdfStringFormat(PdfTextAlignment.Center));
        brush.getGraphics().restore();
        brush.getGraphics().setTransparency(0.5);
        Rectangle2D loRect = new Rectangle2D.Float();
        loRect.setframe(new Point2D.Float(0, 0), page.getCanvas().getClientSize());
        page.getCanvas().drawRectangle(brush, loRect);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329145.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号