目录
1.引包
项目要使用iText,必须引入jar包。才能使用,maven依赖如下:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.11</version> </dependency>
二维码生成
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency>
2.工具类
package com.zz.common.utils;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.List;
import java.util.Map;
/**
* pdf工具类
*
* @author zhooulianjie
* @date 2021/2/3
*/
@Slf4j
public class PdfUtils<main> {
/**
* pdf添加水印
*
* @param outputFile 添加完水印的文件输出地址
* @param inputFile 原PDF文件地址
* @param word 水印内容
* @param model 水印添加位置1中间,2两边
*/
public static void setPdfWatermark(String outputFile, String inputFile, String word, int model) {
PdfReader reader;
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(outputFile)));
FileInputStream input = new FileInputStream(inputFile);
reader = new PdfReader(input);
PdfStamper stamper = new PdfStamper(reader, bos);
PdfContentByte content;
// 创建字体
BaseFont base = BaseFont.createFont("C:/WINDOWS/Fonts/simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
PdfGState gs = new PdfGState();
// 获取PDF页数
int total = reader.getNumberOfPages();
// 遍历每一页
for (int i = 0; i < total; i++) {
// 页宽度