首先需要引入两个Jar包分别是:iTextAsian.jar 、itext-2.1.7.jar  可以去  http://download.csdn.net/detail/work201003/9227159  下载;

代码:

  1. import java.awt.Color;
  2. import java.io.BufferedOutputStream;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Calendar;
  8. import com.lowagie.text.DocumentException;
  9. import com.lowagie.text.Element;
  10. import com.lowagie.text.Image;
  11. import com.lowagie.text.PageSize;
  12. import com.lowagie.text.pdf.BaseFont;
  13. import com.lowagie.text.pdf.PdfContentByte;
  14. import com.lowagie.text.pdf.PdfGState;
  15. import com.lowagie.text.pdf.PdfReader;
  16. import com.lowagie.text.pdf.PdfStamper;
  17.  
  18. public class TestWaterPrint {
  19. public static void main(String[] args) throws DocumentException,
  20. IOException {
  21. // 要输出的pdf文件
  22. BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("E:/abc.pdf")));
  23. Calendar cal = Calendar.getInstance();
  24. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  25. // 将pdf文件先加水印然后输出
  26. setWatermark(bos, "D:/itext.pdf", format.format(cal.getTime())
  27. + " 下载使用人:" + "测试user", 16);
  28. }
  29.  
  30. public static void setWatermark(BufferedOutputStream bos, String input,
  31. String waterMarkName, int permission) throws DocumentException,
  32. IOException {
  33.  
  34. PdfReader reader = new PdfReader(input);
  35. PdfStamper stamper = new PdfStamper(reader, bos);
  36. int total = reader.getNumberOfPages() + 1;
  37. PdfContentByte content;
  38. BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.EMBEDDED);
  39. PdfGState gs = new PdfGState();
  40. for (int i = 1; i < total; i++) {
  41. content = stamper.getOverContent(i);// 在内容上方加水印
  42. //content = stamper.getUnderContent(i);//在内容下方加水印
  43. gs.setFillOpacity(0.2f);
  44. // content.setGState(gs);
  45. content.beginText();
  46. content.setColorFill(Color.LIGHT_GRAY);
  47. content.setFontAndSize(base, 50);
  48. content.setTextMatrix(70, 200);
  49. content.showTextAligned(Element.ALIGN_CENTER, "公司内部文件,请注意保密!", 300,350, 55);
  50. Image image = Image.getInstance("D:/itext2.png");
  51. /*img.setAlignment(Image.LEFT | Image.TEXTWRAP);
  52. img.setBorder(Image.BOX);
  53. img.setBorderWidth(10);
  54. img.setBorderColor(BaseColor.WHITE);
  55. img.scaleToFit(1000, 72);//大小
  56. img.setRotationDegrees(-30);//旋转 */
  57. image.setAbsolutePosition(200, 206); // set the first background image of the absolute
  58. image.scaleToFit(200,200);
  59. content.addImage(image);
  60. content.setColorFill(Color.BLACK);
  61. content.setFontAndSize(base, 8);
  62. content.showTextAligned(Element.ALIGN_CENTER, "下载时间:"
  63. + waterMarkName + "", 300, 10, 0);
  64. content.endText();
  65.  
  66. }
  67. stamper.close();
  68. }
  69. }

原文档图

效果图:

更多详细代码请查看:http://www.open-open.com/lib/view/open1339726488115.html

java 为pdf添加水印图片的更多相关文章

  1. JAVA中pdf转图片的方法

    JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用. 一.icepdf.有收费版和开源版,几种方法里最推荐的.转换的效果比较好,能识别我手头文件中的中文, ...

  2. 【JAVA】pdf转图片

    最近java项目中使用到了pdf转图片的需求,在此记录一下. 1.基于GhostScript p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px ...

  3. JavaWeb项目生成PDF文件添加水印图片并导出

    一.前言 首先需要在Maven中添加相应的jar包依赖,若项目没用到Maven,也可自行下载相应所需的jar包(itextpdf.jar 与 itext-asian.jar),如下图所示.点此下载 M ...

  4. Java 在PDF中添加水印

    在日常工作和学习中,PDF的普及给人们带来了极大的便利,但同时也出现了很多问题. PDF文件容易复制和传播,版权难以保护. 在海量文件中也很难区分信息,例如,你有没有打开一个文件夹,里面有这么多同名的 ...

  5. Java 将PDF 转为Word、图片、SVG、XPS、Html、PDF/A

    本文将介绍通过Java编程来实现PDF文档转换的方法.包括: 1. PDF转为Word 2. PDF转为图片 3. PDF转为Html 4. PDF转为SVG 4.1 将PDF每一页转为单个的SVG ...

  6. JAVA基于PDF box将PDF转为图片

    在一项目中用到,本身我是.NET的,团队中有用到JAVA,故此我处理这个功能,记录以下备用. 1.引用:fontbox-2.0.16.jar.pdfbox-app-2.0.16.jar 版本一定要正确 ...

  7. 转 Java操作PDF之iText详细入门

    转 Java操作PDF之iText详细入门 2016年08月08日 11:06:00 阅读数:19490 iText是著名的开放项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成 ...

  8. java生成PDF,各种格式、样式、水印都有

    代码中有两处需要图片,请自行替换. 一个是水印.一个是手指. 需要的JAR包链接:http://download.csdn.net/detail/justinytsoft/9688893 下面是预览: ...

  9. itextpdf JAVA 输出PDF文档

    使用JAVA生成PDF的时候,还是有些注意事项需要处理的. 第一.中文问题,默认的itext是不支持中文的,想要支持,需要做些处理. 1.直接引用操作系统的中文字体库支持,由于此方案限制性强,又绑定了 ...

随机推荐

  1. UIDatePicker控件

    UIDatePicker继承关系如下: UIDatePicker-->UIControl-->UIView-->UIResponder-->NSObject 1.创建UIDat ...

  2. Javascript数组操作方法

    1.shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] ...

  3. Python with ASP

    Python with ASP Python with ASP

  4. 图片拉伸: stretchableImageWithLeftCapWidth

    - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight: (NSInteger)topCa ...

  5. 蜂窝移动网络是什么,它和 Wi-Fi 有什么区别? 蓝牙和无线有什么区别?

    蜂窝移动网络是什么,它和 Wi-Fi 有什么区别? 转自知乎用户的一个回答: 原题问的是"数据流量是什么",不知道怎么又被改成"蜂窝移动网络是什么"了.说下个人 ...

  6. 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件【转】

    1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委 ...

  7. UEditor用法

    UEditor是百度的编辑器,界面美观,功能强大,用起来还不错. 详见该链接http://ueditor.baidu.com/ 一.下载 http://ueditor.baidu.com/downlo ...

  8. ASP.NET中的路径(path) 详解

    一 ASP.NET常用路径(path)获取方法与格式对照表 假设我们的网址为http://localhost:1897/ News/Press/Content.aspx?id=1019 跟 Brows ...

  9. 百度编辑器ueditor 在vs2008中的使用方法

    个人觉得百度编辑器ueditor还是不错的,虽然出生的时间比较短,但某些方面相比其它富文本编辑器更优秀,免费.可定制等等. 由于在官方下载的ueditor包是在vs2012下开发的,可以在vs2010 ...

  10. linux下Java环境的配置

    linux下Java环境的配置 现在用linux的朋友越来越多了,前几天就有两个朋友问我linux下怎么配置java环境,我想还有很多朋友想了解学习这方面的东西,就写一个完全一点的linux java ...