java 为pdf添加水印图片
首先需要引入两个Jar包分别是:iTextAsian.jar 、itext-2.1.7.jar 可以去 http://download.csdn.net/detail/work201003/9227159 下载;
代码:
- import java.awt.Color;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import com.lowagie.text.DocumentException;
- import com.lowagie.text.Element;
- import com.lowagie.text.Image;
- import com.lowagie.text.PageSize;
- import com.lowagie.text.pdf.BaseFont;
- import com.lowagie.text.pdf.PdfContentByte;
- import com.lowagie.text.pdf.PdfGState;
- import com.lowagie.text.pdf.PdfReader;
- import com.lowagie.text.pdf.PdfStamper;
- public class TestWaterPrint {
- public static void main(String[] args) throws DocumentException,
- IOException {
- // 要输出的pdf文件
- BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("E:/abc.pdf")));
- Calendar cal = Calendar.getInstance();
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- // 将pdf文件先加水印然后输出
- setWatermark(bos, "D:/itext.pdf", format.format(cal.getTime())
- + " 下载使用人:" + "测试user", 16);
- }
- public static void setWatermark(BufferedOutputStream bos, String input,
- String waterMarkName, int permission) throws DocumentException,
- IOException {
- PdfReader reader = new PdfReader(input);
- PdfStamper stamper = new PdfStamper(reader, bos);
- int total = reader.getNumberOfPages() + 1;
- PdfContentByte content;
- BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.EMBEDDED);
- PdfGState gs = new PdfGState();
- for (int i = 1; i < total; i++) {
- content = stamper.getOverContent(i);// 在内容上方加水印
- //content = stamper.getUnderContent(i);//在内容下方加水印
- gs.setFillOpacity(0.2f);
- // content.setGState(gs);
- content.beginText();
- content.setColorFill(Color.LIGHT_GRAY);
- content.setFontAndSize(base, 50);
- content.setTextMatrix(70, 200);
- content.showTextAligned(Element.ALIGN_CENTER, "公司内部文件,请注意保密!", 300,350, 55);
- Image image = Image.getInstance("D:/itext2.png");
- /*img.setAlignment(Image.LEFT | Image.TEXTWRAP);
- img.setBorder(Image.BOX);
- img.setBorderWidth(10);
- img.setBorderColor(BaseColor.WHITE);
- img.scaleToFit(1000, 72);//大小
- img.setRotationDegrees(-30);//旋转 */
- image.setAbsolutePosition(200, 206); // set the first background image of the absolute
- image.scaleToFit(200,200);
- content.addImage(image);
- content.setColorFill(Color.BLACK);
- content.setFontAndSize(base, 8);
- content.showTextAligned(Element.ALIGN_CENTER, "下载时间:"
- + waterMarkName + "", 300, 10, 0);
- content.endText();
- }
- stamper.close();
- }
- }
原文档图
效果图:
更多详细代码请查看:http://www.open-open.com/lib/view/open1339726488115.html
java 为pdf添加水印图片的更多相关文章
- JAVA中pdf转图片的方法
JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用. 一.icepdf.有收费版和开源版,几种方法里最推荐的.转换的效果比较好,能识别我手头文件中的中文, ...
- 【JAVA】pdf转图片
最近java项目中使用到了pdf转图片的需求,在此记录一下. 1.基于GhostScript p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px ...
- JavaWeb项目生成PDF文件添加水印图片并导出
一.前言 首先需要在Maven中添加相应的jar包依赖,若项目没用到Maven,也可自行下载相应所需的jar包(itextpdf.jar 与 itext-asian.jar),如下图所示.点此下载 M ...
- Java 在PDF中添加水印
在日常工作和学习中,PDF的普及给人们带来了极大的便利,但同时也出现了很多问题. PDF文件容易复制和传播,版权难以保护. 在海量文件中也很难区分信息,例如,你有没有打开一个文件夹,里面有这么多同名的 ...
- 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 ...
- JAVA基于PDF box将PDF转为图片
在一项目中用到,本身我是.NET的,团队中有用到JAVA,故此我处理这个功能,记录以下备用. 1.引用:fontbox-2.0.16.jar.pdfbox-app-2.0.16.jar 版本一定要正确 ...
- 转 Java操作PDF之iText详细入门
转 Java操作PDF之iText详细入门 2016年08月08日 11:06:00 阅读数:19490 iText是著名的开放项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成 ...
- java生成PDF,各种格式、样式、水印都有
代码中有两处需要图片,请自行替换. 一个是水印.一个是手指. 需要的JAR包链接:http://download.csdn.net/detail/justinytsoft/9688893 下面是预览: ...
- itextpdf JAVA 输出PDF文档
使用JAVA生成PDF的时候,还是有些注意事项需要处理的. 第一.中文问题,默认的itext是不支持中文的,想要支持,需要做些处理. 1.直接引用操作系统的中文字体库支持,由于此方案限制性强,又绑定了 ...
随机推荐
- UIDatePicker控件
UIDatePicker继承关系如下: UIDatePicker-->UIControl-->UIView-->UIResponder-->NSObject 1.创建UIDat ...
- Javascript数组操作方法
1.shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] ...
- Python with ASP
Python with ASP Python with ASP
- 图片拉伸: stretchableImageWithLeftCapWidth
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight: (NSInteger)topCa ...
- 蜂窝移动网络是什么,它和 Wi-Fi 有什么区别? 蓝牙和无线有什么区别?
蜂窝移动网络是什么,它和 Wi-Fi 有什么区别? 转自知乎用户的一个回答: 原题问的是"数据流量是什么",不知道怎么又被改成"蜂窝移动网络是什么"了.说下个人 ...
- 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件【转】
1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委 ...
- UEditor用法
UEditor是百度的编辑器,界面美观,功能强大,用起来还不错. 详见该链接http://ueditor.baidu.com/ 一.下载 http://ueditor.baidu.com/downlo ...
- ASP.NET中的路径(path) 详解
一 ASP.NET常用路径(path)获取方法与格式对照表 假设我们的网址为http://localhost:1897/ News/Press/Content.aspx?id=1019 跟 Brows ...
- 百度编辑器ueditor 在vs2008中的使用方法
个人觉得百度编辑器ueditor还是不错的,虽然出生的时间比较短,但某些方面相比其它富文本编辑器更优秀,免费.可定制等等. 由于在官方下载的ueditor包是在vs2012下开发的,可以在vs2010 ...
- linux下Java环境的配置
linux下Java环境的配置 现在用linux的朋友越来越多了,前几天就有两个朋友问我linux下怎么配置java环境,我想还有很多朋友想了解学习这方面的东西,就写一个完全一点的linux java ...