首页 > 其他分享 >添加pdf水印

添加pdf水印

时间:2023-04-04 14:01:21浏览次数:45  
标签:水印 content stamper param reader pdf 添加

添加pdf水印

依赖

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13.3</version>
</dependency>

代码

/**
 * 添加水印
 *
 * @param srcPdfPath        文件路径
 * @param tarPdfPath        添加水印后输出路径
 * @param waterMarkContent  水印文案
 * @param numberOfPage      每页需要插入的水印数
 */
public static void addPdfWaterMark(String srcPdfPath, String tarPdfPath, String waterMarkContent, int numberOfPage) {

    PdfReader reader = null;
    PdfStamper stamper = null;
    try {
        reader = new PdfReader(srcPdfPath);
        stamper = new PdfStamper(reader, Files.newOutputStream(Paths.get(tarPdfPath)));
        PdfGState gs = new PdfGState();

        //设置字体
        BaseFont font =  BaseFont.createFont("font/simkai.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        // 设置透明度
        gs.setFillOpacity(0.4f);

        int total = reader.getNumberOfPages() + 1;
        // 设置文本样式
        PdfContentByte content;

        for (int i = 1; i < total; i++) {
            content = stamper.getOverContent(i);
            content.beginText();
            content.setGState(gs);
            // 水印颜色
            content.setColorFill(BaseColor.DARK_GRAY);
            // 水印字体样式和大小
            content.setFontAndSize(font, 35);
            // 插入水印  循环每页插入的条数
            for (int j = 0; j < numberOfPage; j++) {
                /*
                    第一个参数:文字对齐方式
                    第二个参数:水印内容
                    第三个参数:x轴
                    第四个参数:y轴
                    第五个参数:水印旋转角度
                 */
                content.showTextAligned(Element.ALIGN_CENTER, waterMarkContent, 300, 500 * (j + 1), 30);
            }
            content.endText();
        }
    } catch (Exception e) {
        log.error("【添加水印失败】失败原因:{}", e.getMessage(), e);
        e.printStackTrace();
    } finally {
        try {
            if (null != stamper) {
                stamper.close();
            }
            if (null != reader) {
                reader.close();
            }
        } catch (DocumentException | IOException ignored) {}
    }
}

测试

public static void main(String[] args) {
    addWaterMark("你的文件路径", "C:/" + UUID.randomUUID() +".pdf", "超级无敌牛呗的水印", 1);
}

标签:水印,content,stamper,param,reader,pdf,添加
From: https://www.cnblogs.com/zjh0420/p/17285382.html

相关文章

  • golang CVE-2016-2183漏洞,https需要添加tls设置加密算法CipherSuites白名单,将弱加密算
    golangCVE-2016-2183漏洞,https需要添加tls设置加密算法白名单,将弱加密算法DES和3DES去掉。服务端样例代码packagemainimport("crypto/tls""fmt""net/http")funchandler(writerhttp.ResponseWriter,request*http.Request){fmt.Fprintf(wri......
  • pdf 一键生成书签目录
    1、书签原始数据获得一般有许多软件可以通过提供章节序号章节标题章节页码的格式来生成目录第1章基础A111.1Scala解释器11.2声明值和变量31.3常用类型41.4算术和操作符重载51.5调用函数和方法71.6apply方法81.7Scaladoc9对于该格式,可以网上搜......
  • 百度统计--给博客园添加访问统计
    全埋点、可视化圈选、API等多种方式采集数据网站、APP、小程序等各端数据一站式管理构建用户id体系,全面深度管理用户资产https://tongji.baidu.com/web/welcome/login添加网站一般20分钟后再查看是否生效。......
  • 在Music中长按一首歌,执行"添加到播放列表"时,屏幕会闪两次
    請將PhoneWindow.DialogMenuCallback裡所有的用到mSubMenuHelper註釋掉,就可以解決這個問題詳細修改如下privatefinalclassDialogMenuCallbackimplementsMenuBuilder.Callback,MenuPresenter.Callback{privateintmFeatureId;......
  • magento 在产品页添加评论 Add Review Form in Magento Product View Page
    Magento产看产品评论需要点击到另外一个页面中,这种设计对于用户体验和SEO都相当不利。一方面用户无法在产品页面查看该产品的一些用户评价,另外,搜索引擎也会收录很多与产品无关的页面。那么如何让产品评论直接显示在产品页面呢?我们需要修改一下模板文件,很简单即可实现。 首先,在lay......
  • Android 在程序中动态添加 View 布局或控件
    有时我们需要在程序中动态添加布局或控件等,下面用程序来展示一下相应的方法:1、addView添加View到布局容器2、removeView在布局容器中删掉已有的View3、LayoutParams 设置View的大小位置下面来看一个demo;publicclassMainActivityextendsActivity{ @Override protectedvo......
  • 018redis3.0集群添加节点
    1:首先把需要添加的节点启动cd /usr/local/cluster/mkdir 7006cp /usr/local/cluster/redis.conf  /usr/local/cluster/7006/cd /usr/local/cluster/7006/vi redis.conf##修改redis.conf中的port参数的值为7006redis-server redis.conf2:执行以下命令,将这个新节点添加到集群......
  • 在 Adobe Acrobat 中 修改 增大或缩小 PDF 页面大小
    有时下载了一些扫描的PDF资料,原始PDF的页面大小不正常,例如有一个PDF的页面尺寸是「46cm*71cm」,导入到笔记软件中后,0.5mm的手写笔记在页面上就会显得非常小。这时就需要将PDF整体缩放到指定大小。找了下网上的方法,多数是推荐用「打印到PDF」的方法,或者用在线服务。......
  • C# http地址下载(后缀.pdf/.jpg/.docx)文件
    一、http后缀.pdf文件下载方法///<summary>///http地址文件下载(url路径格式为:http://192.168.1.218:8088/1231_tr/1762062.pdf"})///</summary>///<paramname="filePath">http文件下载路径</param>///<paramn......
  • IPMI添加用户
    1、查看用户清单ipmitooluserlist12、创建用户ipmitooluser setname3test3、设置密码ipmitoolusersetpassword3Test@1234、给用户权限ipmitoolchannelsetaccess13callin=onipmi=onlink=onprivilege=45、查看权限ipmitoolchannelgetaccess136、比较用......