石龙镇做网站,微信小网站是怎么做的,嘉兴手机网站建设,wordpress网站如何引流来源#xff1a;【itext学习之路】-------#xff08;第四篇#xff09;给pdf增加文本水印和图片水印_tomatocc的博客-CSDN博客_itext添加水印
一般而言#xff0c;许多公司在做pdf之后#xff0c;都会将公司的logo或者网址以水印的方式添加到pdf文件中。本篇文章#x…来源【itext学习之路】-------第四篇给pdf增加文本水印和图片水印_tomatocc的博客-CSDN博客_itext添加水印
一般而言许多公司在做pdf之后都会将公司的logo或者网址以水印的方式添加到pdf文件中。本篇文章我们将介绍在制作pdf的时候如何将水印加入到pdf中去。
这里要说明一点水印是要放在pdf中的因此在创建PdfContentByte对象之前一定要先 document.newPage();。二者顺序是不能反过来的如果反过来的意思就是先画水印在创建一个pdf页面显然不符合逻辑了。
package cn.tomtocc.pdf;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfWriter;public class pdfTest {public static void main(String[] args) throws FileNotFoundException,DocumentException {//实现A4纸页面 并且横向显示不设置则为纵向Document document new Document(PageSize.A4.rotate());PdfWriter pdfWriter PdfWriter.getInstance(document,new FileOutputStream(d:/demo.pdf));// 打开文档document.open();// 创建第一页如果只有一页的话这一步可以省略document.newPage();// 加入水印PdfContentByte waterMar pdfWriter.getDirectContentUnder();// 开始设置水印waterMar.beginText();// 设置水印透明度PdfGState gs new PdfGState();// 设置填充字体不透明度为0.4fgs.setFillOpacity(0.4f);try {// 设置水印字体参数及大小 (字体参数字体编码格式是否将字体信息嵌入到pdf中一般不需要嵌入字体大小)waterMar.setFontAndSize(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED), 60);// 设置透明度waterMar.setGState(gs);// 设置水印对齐方式 水印内容 X坐标 Y坐标 旋转角度waterMar.showTextAligned(Element.ALIGN_RIGHT, www.tomatocc.com , 500, 430, 45);// 设置水印颜色waterMar.setColorFill(BaseColor.GRAY);//结束设置waterMar.endText();waterMar.stroke();} catch (IOException e) {e.printStackTrace();}finally {waterMar null;gs null;}// 加入文档内容document.add(new Paragraph(my first pdf demo));// 关闭文档document.close();pdfWriter.close();}
}
然后我们打开我们的pdf如下 接下来我们继续操作“图片水印”
package cn.tomtocc.pdf;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfWriter;public class pdfTest {public static void main(String[] args) throws FileNotFoundException,DocumentException {//实现A4纸页面 并且横向显示不设置则为纵向Document document new Document(PageSize.A4.rotate());PdfWriter pdfWriter PdfWriter.getInstance(document,new FileOutputStream(d:/demo.pdf));// 打开文档document.open();// 创建第一页如果只有一页的话这一步可以省略document.newPage();// 加入水印PdfContentByte waterMar pdfWriter.getDirectContentUnder();// 开始设置水印waterMar.beginText();// 设置水印透明度PdfGState gs new PdfGState();// 设置笔触字体不透明度为0.4fgs.setStrokeOpacity(0.4f);try {Image image Image.getInstance(d:/tomatocc.jpg);// 设置坐标 绝对位置 X Yimage.setAbsolutePosition(200, 300);// 设置旋转弧度image.setRotation(30);// 旋转 弧度// 设置旋转角度image.setRotationDegrees(45);// 旋转 角度// 设置等比缩放image.scalePercent(90);// 依照比例缩放// image.scaleAbsolute(200,100);//自定义大小// 设置透明度waterMar.setGState(gs);// 添加水印图片waterMar.addImage(image);// 设置透明度waterMar.setGState(gs);//结束设置waterMar.endText();waterMar.stroke();} catch (IOException e) {e.printStackTrace();}finally {waterMar null;gs null;}// 加入文档内容document.add(new Paragraph(my first pdf demo));// 关闭文档document.close();pdfWriter.close();}
}
然后我们打开文档就可以看到一个带图片水印的pdf了 到目前为止关于pdf的简单操作就介绍到这里在下篇文章中我们将要介绍印章水印。