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

Posted OkidoGreen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、自己的代码:

  • 文本中可以使用\\r\\n设置水印文字的换行
  • 通过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, "zhoushun\\r\\n2021-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);
    }
}

以上是关于Java-PDF添加水印文字或图片,使用Spire.PDF for Java的主要内容,如果未能解决你的问题,请参考以下文章

java实现给图片添加水印(文字水印或图片水印)

Android图片添加竖排文字水印

VB 给图片添加文字水印

Android给图片添加文字和水印

怎么给PDF文件添加水印?

用软件添加文字水印后,图片总是变得很大