java设置pdf平铺图片水印 且移出Evaluation Warning : The document was created with Spire.PDF for Java.

在项目中,遇到需要给pdf添加水印的情况。pdf是使用润乾api生成的。但是由于使用的版本比较低,不支持水印,所以需要自己用java来设置水印。

首先需要使用第三方jar包Spire.Pdf.jar,可以网上找。
代码可以参考文档:官网指南参考代码

由于亲测以上链接的参考代码发现有些小问题。
再生成新的pdf时会有一串英文备注:
在这里插入图片描述
该备注只会标记再报表的第一页的顶部。所以可以在给报表生成水印前,添加一页空白页面,然后再删除空表页面的方式接解。

下面时代码示例:


import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfImage;
import com.spire.pdf.graphics.PdfTilingBrush;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Rectangle2D;

public class BookMark {
    public static void main(String[] args) {
        //创建PdfDocument对象,并加载PDF测试文档
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("demo.pdf");

        //添加一个空白页,目的为了删除jar包添加的水印,后面再移除这一页
        pdf.getPages().add();

        int rows = 3;  //指定一行有多少个图片
        int col = 3; //指定一个pdf页有多少行图片组
        //遍历文档每一页,加载图片,并设置成平铺背景(水印)
        for (int i = 0; i < pdf.getPages().getCount();i++) {
            PdfPageBase page = pdf.getPages().get(i);

            Dimension2D dimension2D = new Dimension();
            dimension2D.setSize(page.getCanvas().getSize().getWidth()/rows, page.getCanvas().getSize().getHeight()/col);

            PdfTilingBrush brush = new PdfTilingBrush(dimension2D);
            brush.getGraphics().setTransparency(0.2f); //透明度
            brush.getGraphics().translateTransform(brush.getSize().getWidth()/10,brush.getSize().getHeight()/10);//坐标位置
            //brush.getGraphics().rotateTransform(30);//选转角度

            PdfImage image = PdfImage.fromImage("log.png");
            brush.getGraphics().drawImage(image,(brush.getSize().getWidth()-image.getWidth())/rows,(brush.getSize().getHeight())/col);

            Rectangle2D rectangle2D = new Rectangle2D.Float();
            rectangle2D.setFrame(new Point(0,0),page.getCanvas().getClientSize());

            page.getCanvas().drawRectangle(brush,rectangle2D);
        }

        //移除第一个页
        pdf.getPages().remove(pdf.getPages().get(pdf.getPages().getCount()-1));

        //保存文档
        pdf.saveToFile("output\bookmarks.pdf");
        pdf.dispose();
    }
}

效果图:
在这里插入图片描述

感觉有用的小伙伴,点个赞吧。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值