java -PDF添加文本水印与图片水印
生活随笔
收集整理的這篇文章主要介紹了
java -PDF添加文本水印与图片水印
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java pdf添加水印文本及圖片文本
PDF文件添加文本水印:
?
?
PDF添加圖片水印:
private static final float IAMGE_HEIGHT = 110f; // 水印圖片的的高度private static final float IAMGE_WIDTH = 110f; // 水印圖片的的寬度public static void addPdfMark(String pdfPath,String logoPath, String outPath) throws Exception {PdfReader reader = new PdfReader(pdfPath, "PDF".getBytes());// 如果是web項目,直接下載應該放到response的流里面// PdfStamper stamp = new PdfStamper(reader,response.getOutputStream());// 添加水印之后的pdf文件PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outPath));int pageSize = reader.getNumberOfPages();float pageHeight = reader.getPageSize(1).getHeight();float pageWidth = reader.getPageSize(1).getWidth();try {// 每兩行顯示兩個 左邊一個,右邊一個int lineNum = (int) (pageHeight / IAMGE_HEIGHT); // 行數int middleY = (int) pageWidth / 2;for (int i = 1; i <= pageSize; i++) {for (int j = 0, k = 0; j < lineNum; j = j + 4, k++) {Random random = new Random();// 放入水印Image img = Image.getInstance(logoPath);img.scaleAbsolute(IAMGE_WIDTH, IAMGE_HEIGHT * 184 / 455);// 將水印顯示到最底層 img.setAlignment(Image.UNDERLYING);int trueY;while (true) {trueY = random.nextInt(middleY);if (trueY > IAMGE_WIDTH / 2 && trueY < (middleY - IAMGE_WIDTH)) {break;}}// 水印的位置img.setAbsolutePosition(trueY, j * IAMGE_HEIGHT + (float) random.nextInt((int) IAMGE_HEIGHT) - (k % 2) * 10);// 旋轉 角度img.setRotationDegrees(random.nextInt(360));PdfContentByte under = stamp.getUnderContent(i);PdfGState gs = new PdfGState();// 設置透明度為0.5gs.setFillOpacity(0.5f);under.setGState(gs);under.addImage(img);while (true) {trueY = random.nextInt(middleY) + middleY;if (trueY > middleY + IAMGE_WIDTH / 2 && trueY < (2 * middleY - IAMGE_WIDTH)) {break;}}// 水印的位置img.setAbsolutePosition(trueY, j * IAMGE_HEIGHT + (float) random.nextInt((int) IAMGE_HEIGHT) - (k % 2) * 10);// 旋轉角度img.setRotationDegrees(random.nextInt(360));under.addImage(img);}}} catch (Exception e) {throw e;} finally {stamp.close();reader.close();}測試--------------------------------------------------------------------------------
public static void main(String[] args) throws Exception {waterMark("xxx.pdf", "yyy.pdf", "測試工程");//addPdfMark("xxx.pdf","image.png","yyy.xml");System.out.println("結束");}}?
參考了很多前輩的,希望能幫到各位!
模塊所需jar包(itextpdf-5.5.13.1.jar)
轉載于:https://www.cnblogs.com/gccsbg/p/11126634.html
總結
以上是生活随笔為你收集整理的java -PDF添加文本水印与图片水印的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转 Java中final、finally
- 下一篇: spring boot处理请求返回值的格