pdf添加水印

这篇具有很好参考价值的文章主要介绍了pdf添加水印。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

给pdf文件添加水印

  1. 引入依赖
  <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.13.3</version>
        </dependency>
  1. 添加水印
package com.it2.pdfdemo02.util;

import com.itextpdf.text.Element;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.*;

import java.io.FileOutputStream;

/**
 * @Description: PDF增加水印工具类
 */
public class PDFUtil {

    /**
     * 给PDF添加水印
     * @param inputFilePath 源文件
     * @param outputFilePath 生成的文件
     * @param waterMarkContent 添加水印的内容
     */
    public static void pdfAddWaterMark(String inputFilePath, String outputFilePath, String waterMarkContent) {
        try {
            // 水印的高和宽
            int waterMarkHeight = 30;
            int watermarkWeight = 60;
            // 水印间隔距离
            int waterMarkInterval = 200;
            // 读取PDF文件流
            PdfReader pdfReader = new PdfReader(inputFilePath);
            // 创建PDF文件的模板,可以对模板的内容修改,重新生成新PDF文件
            PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream(outputFilePath));
            // 设置水印字体
            BaseFont baseFont = BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //幼圆常规
            // 设置PDF内容的Graphic State 图形状态
            PdfGState pdfGraPhicState = new PdfGState();
            // 填充透明度
            pdfGraPhicState.setFillOpacity(0.2f);
            // 轮廓不透明度
            pdfGraPhicState.setStrokeOpacity(0.4f);
            // PDF页数
            int pdfPageNum = pdfReader.getNumberOfPages() + 1;
            // PDF文件内容字节
            PdfContentByte pdfContent;
            // PDF页面矩形区域
            Rectangle pageRectangle;
            for (int i = 1; i < pdfPageNum; i++) {
                // 获取当前页面矩形区域
                pageRectangle = pdfReader.getPageSizeWithRotation(i);
                // 获取当前页内容,getOverContent表示之后会在页面内容的上方加水印
                pdfContent = pdfStamper.getOverContent(i);
                // 获取当前页内容,getOverContent表示之后会在页面内容的下方加水印
//                 pdfContent = pdfStamper.getUnderContent(i);
                pdfContent.saveState();
                // 设置水印透明度
                pdfContent.setGState(pdfGraPhicState);
                // 开启写入文本
                pdfContent.beginText();
                // 设置字体
                pdfContent.setFontAndSize(baseFont, 20);
                // 在高度和宽度维度每隔waterMarkInterval距离添加一个水印
                for (int height = waterMarkHeight; height < pageRectangle.getHeight(); height = height + waterMarkInterval) {
                    for (int width = watermarkWeight; width < pageRectangle.getWidth() + watermarkWeight;
                         width = width + waterMarkInterval) {
                        // 添加水印文字并旋转30度角
                        pdfContent.showTextAligned(Element.ALIGN_LEFT, waterMarkContent, width - watermarkWeight,
                                height - waterMarkHeight, 30);
                    }
                }
                // 停止写入文本
                pdfContent.endText();
            }
            pdfStamper.close();
            pdfReader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. 添加字体文件到resoures\Font\simsun.ttc

用到的字体文件(幼圆常规,C盘Windows/Fonts目录下
pdf添加水印,Java日记,pdf

pdf添加水印,Java日记,pdf

  1. 测试用例
    @Test
    void addWater() {
        PDFUtil.pdfAddWaterMark("D:\\test3\\test1.pdf", "D:\\test3\\test1_watermark.pdf", "内部资料,禁止外传");
    }

pdf添加水印,Java日记,pdf文章来源地址https://www.toymoban.com/news/detail-733462.html

到了这里,关于pdf添加水印的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot 实现 PDF 添加水印

    PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。 PDFBox

    2024年02月09日
    浏览(109)
  • SpringBoot实现pdf添加水印

    在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍几种方案来实现PDF添加水印。 git地址:https://gitee.com/ninesuntec/pdf-add-watermark PDFBox 是一个流行的、免费的、用 Java 编写的库,它可以用来创建、修改和提取 PDF 内容。PDFBox 提供了许

    2024年02月13日
    浏览(37)
  • 使用PyMuPDF添加PDF水印

    使用Python添加PDF水印的博客文章。 C:pythoncodenewpdfwatermark.py 在日常工作中,我们经常需要对PDF文件进行处理。其中一项常见的需求是向PDF文件添加水印,以保护文件的版权或标识文件的来源。本文将介绍如何使用Python编程语言和PyMuPDF库在PDF文件中添加水印。 在开始之前,确

    2024年02月11日
    浏览(76)
  • SpringBoot 实现 PDF 添加水印方案

    PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。 PDFBox

    2024年02月13日
    浏览(40)
  • Aspose.Pdf使用教程:在PDF文件中添加水印

    Aspose.PDF  是一款高级PDF处理API,可以在跨平台应用程序中轻松生成,修改,转换,呈现,保护和打印文档。无需使用Adobe Acrobat。此外,API提供压缩选项,表创建和处理,图形和图像功能,广泛的超链接功能,图章和水印任务,扩展的安全控件和自定义字体处理。本文将为你

    2024年02月01日
    浏览(63)
  • Flying HTML生成PDF添加水印

    HTML转PDF并添加水印

    2024年01月22日
    浏览(45)
  • SpringBoot 之实现 PDF 添加水印的方案

    PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。 PDFBox

    2024年02月13日
    浏览(50)
  • 基于pdfbox实现的pdf添加文字水印工具

    最近有个需求需要给pdf加文字水印,于是开始搜索大法,但是发现网络上的代码基本都是将字体文件直接放在jar包里面。个人强迫症发作(手动狗头),想要像poi一样直接加载系统字体,于是研究了一下午pdfbox的源代码,发现 FontFileFinder 类可以实现这个功能。废话不多说,直

    2023年04月11日
    浏览(48)
  • 使用itext7为pdf文档添加水印

    iText7是一款功能强大的开源PDF处理库,用于创建、编辑和处理PDF文档。相比于iTextSharp,iText7具有更先进的功能和更好的性能。 添加水印是iText7的一个常见应用场景。水印可以用于保护文档的版权,标识文档的状态或来源等。使用iText7添加水印可以通过以下步骤实现: 导入

    2024年04月22日
    浏览(37)
  • 如何通过C++ 给PDF文档添加文字水印

    因PDF文档具有较好的稳定性和兼容性,现在越来越多的合同、研究论文、报告等都采用PDF格式。为了进一步保护这些重要文档内容免受未经授权的复制或使用,我们可以添加水印以表明其状态、所有权或用途。针对工作中可能出现的在 C++ 应用程序中给 PDF 文档添加文字水印的

    2024年02月05日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包