iText中给pdf内容添加水印

  1. /** 
  2.     * 给pdf文件添加水印 
  3.     * @param InPdfFile 要加水印的原pdf文件路径 
  4.     * @param outPdfFile 加了水印后要输出的路径 
  5.     * @param markImagePath 水印图片路径 
  6.     * @param pageSize 原pdf文件的总页数 
  7.     * @throws Exception 
  8.     */  
  9.    public static void addPdfMark(String InPdfFile, String outPdfFile, String markImagePath, int pageSize) throws Exception {  
  10.       
  11.     PdfReader reader = new PdfReader(InPdfFile, "PDF".getBytes());  
  12.        
  13.     PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outPdfFile));  
  14.      
  15.     Image img = Image.getInstance(markImagePath);// 插入水印     
  16.    
  17.     img.setAbsolutePosition(150100);  
  18.       
  19.     for(int i = 1; i <= pageSize; i++) {  
  20.        
  21.      PdfContentByte under = stamp.getUnderContent(i);  
  22.       
  23.      under.addImage(img);  
  24.          
  25.     }  
  26.       
  27.     stamp.close();// 关闭    
  28.       
  29.     File tempfile = new File(InPdfFile);  
  30.       
  31.     if(tempfile.exists()) {  
  32.        
  33.      tempfile.delete();  
  34.     }  
  35.       
  36.    }  
 /**
    * 给pdf文件添加水印
    * @param InPdfFile 要加水印的原pdf文件路径
    * @param outPdfFile 加了水印后要输出的路径
    * @param markImagePath 水印图片路径
    * @param pageSize 原pdf文件的总页数
    * @throws Exception
    */
   public static void addPdfMark(String InPdfFile, String outPdfFile, String markImagePath, int pageSize) throws Exception {
    
    PdfReader reader = new PdfReader(InPdfFile, "PDF".getBytes());
     
    PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outPdfFile));
   
    Image img = Image.getInstance(markImagePath);// 插入水印   
 
    img.setAbsolutePosition(150, 100);
    
    for(int i = 1; i <= pageSize; i++) {
     
     PdfContentByte under = stamp.getUnderContent(i);
    
     under.addImage(img);
       
    }
    
    stamp.close();// 关闭 
    
    File tempfile = new File(InPdfFile);
    
    if(tempfile.exists()) {
     
     tempfile.delete();
    }
    
   }
转自:http://blog.csdn.net/huiwenjie168/article/details/7616983
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iTextPDF是一个流行的用于Java的PDF库,如果你想在使用它生成PDF文件添加水印,可以按照以下步骤操作: 1. **引入依赖**: 首先,确保你已经添加iTextPDF的依赖到你的项目。如果你使用Maven,可以在pom.xml添加: ```xml <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>最新版本号</version> </dependency> ``` 请替换`最新版本号`为实际的iTextPDF库版本。 2. **创建PDF文档**: 创建PdfStamper对象,这是iText处理PDF水印的主要工具。首先打开一个已存在的PDF作为基础文档: ```java Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream("output.pdf")); document.open(); ``` 3. **创建水印**: 使用iText的Image类从一个图片资源或者字符串创建一个透明图像,这将作为水印的基础: ```java BufferedImage watermarkImage = ImageIO.read(new File("watermark.png")); // 或者使用String asImageSource float alpha = 0.5f; // 设置透明度 Image transparentWatermark = new Image(watermarkImage, 0, 0, alpha); ``` 4. **应用水印**: 在需要添加水印的位置,使用PdfStamper的addAnnotation()方法创建一个StampPosition,并将其应用于文档页上: ```java PdfImportedPage page = writer.getImportedPage(document, i); // i是页面索引 PdfStamper stamper = new PdfStamper(writer, page); Annotation stamp = new StampStamp(stamper.getUnderContent(i)); stamp.setRect(0, 0, watermarkImage.getWidth(), watermarkImage.getHeight()); stamper.addAnnotation(stamp, i); ``` 5. **关闭资源**: 在所有操作完成后,记得关闭文档和stamper: ```java stamper.close(); document.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值