有用itext 5.0以后版本生成PFD的么? 怎么生成图片水印? 给个参考

解决方案 »

  1.   

    try {
                PdfReader Read_PDF_To_Water = new PdfReader("Sample.pdf");
                int number_of_pages = Read_PDF_To_Water.getNumberOfPages();
                PdfStamper stamp = new PdfStamper(Read_PDF_To_Water, new FileOutputStream("New_PDF_With_Water_Image.pdf"));
                int i = 0;
                Image water_image = Image.getInstance("water.jpg");
                water_image.setAbsolutePosition(200, 400);
                PdfContentByte add_water;            
                while (i < number_of_pages) {
                  i++;
                  add_water = stamp.getUnderContent(i);
                  add_water.addImage(water_image);
                }
                stamp.close();
            }
            catch (Exception i1) {
                i1.printStackTrace();
            }
      

  2.   

    楼上的方法是在已生成的pdf基础上加水印。
    我是想在生成pdf的时候通过继承PdfPageEventHelper类,实现方法public void onEndPage(PdfWriter writer, Document document) 来加水印,请问怎么写?
      

  3.   

    Image waterImage = new Image(imgPath);
    waterImage.setAbsolutePosition(x, y);writer.setPageEvent( new MyPageEvent(waterImage) );
    public MyPageEvent extends PdfPageEventHelper {
      private Image waterMark;
      public MyPageEvent(Image img) {
        waterMark = img;
      }
      public void OnEndPage(PdfWriter writer, Document doc) {
        PdfContentByte content = writer.getContent();
        content.addImage( waterMark );
      }
    }
      

  4.   

    PdfWriter 没有getContent() 这个方法, 只有getDirectContentUnder() 和getDirectContent(),这两个方法
    然后图片没有透明度,结果都被内容遮住了
      

  5.   

    我使用这张图片效果
    getDirectContentUnder 显示在文字下
    getDirectContent 显示在文字上,挡住了文字