package com.yun.hello.controller.weathercontroller; import com.itextpdf.text.BaseColor; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.pdf.*; import com.yun.hello.domain.weather.City; import com.yun.hello.domain.weather.WeatherResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.awt.*; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.text.SimpleDateFormat; import java.util.List; @RestController @RequestMapping("/itexpdf") public class WeatherController { @GetMapping public void addWaterMark() throws Exception { //要输出的pdf文件 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("E:/abc.pdf"))); //将pdf文件先加水印然后输出 setWatermark(bos,"study.pdf","w" + " 下载使用人:" + "测试user", 16); } public static void setWatermark(BufferedOutputStream bos, String input, String waterMarkName, int permission) throws Exception { PdfReader reader = new PdfReader(input); PdfStamper stamper = new PdfStamper(reader, bos); int total = reader.getNumberOfPages() + 1; PdfContentByte content; BaseFont base = BaseFont.createFont(); PdfGState gs = new PdfGState(); for (int i = 1; i < total; i++) { content = stamper.getOverContent(i);//在内容上方加水印 //content = stamper.getUnderContent(i);//在内容下方加水印 gs.setFillOpacity(0.2f); // content.setGState(gs); content.beginText(); content.setColorFill(BaseColor.LIGHT_GRAY); content.setFontAndSize(base, 500); content.setTextMatrix(20, 20); content.showTextAligned(Element.ALIGN_CENTER, "公司内部文件,请注意保密!", 30, 30, 550); content.setColorFill(BaseColor.BLACK); content.setFontAndSize(base, 80); content.showTextAligned(Element.ALIGN_CENTER, "下载时间:" + waterMarkName + "", 300, 10, 0); content.endText(); } stamper.close(); } }
笔记
最新推荐文章于 2023-04-27 10:13:47 发布