itextpdf加盖章

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

 pom导入相关包

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import org.apache.commons.lang3.StringUtils;

import java.io.FileOutputStream;
import java.io.IOException; 


public void addWaterMark(String srcFile, String destFile, String text,int textWidth,
                             int textHeight, String imgFile,int imgWidth, int imgHeight) throws IOException, DocumentException {

        // 待加水印的文件
        PdfReader reader = new PdfReader(srcFile);
        // 加完水印的文件
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(destFile));

        int total = reader.getNumberOfPages() + 1;
        PdfContentByte content;

        BaseFont font =
                BaseFont.createFont("C:/Windows/Fonts/simhei.ttf",BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        // BaseFont base2 = BaseFont.createFont(BaseFont.HELVETICA,
        // BaseFont.WINANSI, BaseFont.EMBEDDED);
        // 水印文字
        String waterText = text;
        Image image = null;
        if (!StringUtils.isBlank(imgFile)) {
            image = Image.getInstance(imgFile);
            image.setAbsolutePosition(imgWidth, imgHeight);
            // 设置图片的显示大小
            image.scaleToFit(100, 125);
        }
        int j = waterText.length(); // 文字长度
        char c = 0;
        int high = 0;// 高度
        // 循环对每页插入水印
        for (int i = 1; i < total; i++) {
            // 水印的起始
            high = 50;
            // 水印在之前文本之上
            content = stamper.getOverContent(i);
            if (image != null) {
                content.addImage(image);
            }

            if (!StringUtils.isBlank(text)) {
                // 开始
                content.beginText();
                // 设置颜色 默认为蓝色
                content.setColorFill(BaseColor.BLUE);
                // 设置字体及字号
                content.setFontAndSize(font, 38);
                // 设置起始位置
                content.setTextMatrix(textWidth, textHeight);
                // 开始写入水印
                content.showTextAligned(Element.ALIGN_LEFT, text, textWidth, textHeight, 45);
                content.endText();
            }
        }
        //记得关流
        stamper.close();
        reader.close(); 

 

 

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值