给pdf加水印
2015-11-02 22:53
246 查看
package com.form.test; import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Chunk; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Font; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.pdf.PdfGState; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.PdfStamper; import com.itextpdf.text.pdf.PdfWriter; public class TestPriterWater { public static void main(String[] args) throws Exception { String pdfFilePath = "f:/itext-demo.pdf"; PdfReader pdfReader = new PdfReader("/home/xueqy/1.pdf"); // Get the PdfStamper object PdfStamper pdfStamper = new PdfStamper(pdfReader , new FileOutputStream( "/home/xueqy/2.pdf")); addWatermark(pdfStamper, "www.baidu.com"); pdfStamper.close(); } private static void addWatermark(PdfStamper pdfStamper , String waterMarkName) { PdfContentByte content = null; Rectangle pageRect = null; PdfGState gs = new PdfGState(); try { BaseFont base = BaseFont.createFont(); // 设置透明度为0.4 gs.setFillOpacity(0.4f); gs.setStrokeOpacity(0.4f); int toPage = pdfStamper.getReader().getNumberOfPages(); System.out.print(pdfStamper.getReader().getFileLength()+" :" +toPage); for (int i = 1; i <= toPage; i++) { pageRect = pdfStamper.getReader(). getPageSizeWithRotation(i); // 计算水印X,Y坐标 float x = pageRect.getWidth() / 2; float y = pageRect.getHeight() / 2; //获得PDF最顶层 content = pdfStamper.getOverContent(i); content.saveState(); // set Transparency content.setGState(gs); content.beginText(); content.setColorFill(BaseColor.GRAY); content.setFontAndSize(base, 24); // content.setFontAndSize( 20); content.showTextAligned(Element.ALIGN_CENTER , waterMarkName, 300, 350, 30); content.endText(); } } catch (Exception ex) { ex.printStackTrace(); } finally { content = null; pageRect = null; } } }
相关文章推荐
- linux驱动程序基础
- AFNetwork 作用和用法详解
- 数据库软件架构设计些什么
- Maven学习 (一) 搭建Maven环境
- 关于数据源跟事件封装实例
- 模式识别之线性判别---贝叶斯代码实现
- python培训Day2 随笔
- Solidworks的旋转切除
- 我的正则表达式学习笔记
- Oracle物化视图的一般使用(转)
- MyBatis入门(六)---mybatis与spring的整合
- Zach的鸡汤博客开通
- Oracle 事务总结(转)
- leetcode之Palindrome Number
- Spring事务管理
- web service 简介
- Python中定义字符串和修改字符串的原理
- windows 添加github .ssh
- NodeJS 模块开发及发布详解分享
- MySQL 5.6.26安装mysql-5.6.26-win64.zip绿色版