【itext学习之路】--4.给pdf增加文本水印和图片水印

来源:【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的简单操作就介绍到这里,在下篇文章中,我们将要介绍印章水印。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Postman 使用方法详解

From:https://blog.csdn.net/fxbin123/article/details/80428216 Postman使用详解:https://www.cnblogs.com/xiaoxi-3-/p/7839278.html Postman用法简介:https://blog.csdn.net/flowerspring/article/details/52774399 Postman 详解&#xff…

该系列主要整理收集在使用C#开发WinForm应用文章及相关代码来源于WinForms小组...

该系列主要整理收集在使用C#开发WinForm应用文章及相关代码, 平时看到大家主要使用C#来开发Asp.Net应用,这方面的文章也特别多,而关于WinForm的文章相对少很多,而自己对WinForm一直比较感兴趣,这几年积累收藏了不少文章,现在整理一下分类推荐给大家,避免大家浪费大把的时间去找…

基于互联网大脑架构的腾讯未来趋势分析[系列1]

作者:刘锋,计算机博士 《互联网进化论》前言互联网大脑架构不是人为规划出来的,而是过去50年,互联网在科学探索和商业竞争两大动力推动下,形成的类脑架构。它的提出是基于2008年以来,我们对移动互联网&…

Linux看内存标压低压,三代锐龙、国产Linux上身笔记本电脑,性能是否和参数一样好看?...

原标题:三代锐龙、国产Linux上身笔记本电脑,性能是否和参数一样好看?如果你从很早开始就关注电脑行业,基本上你身边的朋友都会告诫你一句:“笔记本电脑千万别买AMD的……”并不是AMD不好,说实话&#xff0c…

【itext学习之路】--6.将html转成pdf(解决中文不显示)

来源:【itext学习之路】-------(第七篇)将html转成pdf(解决中文不显示)_tomatocc的博客-CSDN博客 在上一篇文章中,我们学习了使用对pdf进行盖章/签章/数字签名,到此为止,常用的pdf操作已经全部实现&#x…

Windows 安装 MongoDB 和 可视化工具Robo3T

MongoDB 官网下载地址:https://www.mongodb.com/try/download/community MongoDB 是一款非常热门的 NoSQL 面向文档的数据库管理系统, 分为 企业版收费版 和 社区免费版。MongoDB 使用 BSON 对象来存储,与 JSON 格式类型的 "键 - 值&quo…

【Vegas原创】VMWare安装Linux5的注意事项

1,VMWare版本需在6.5及以上。否则,在Linux桥接网络时,不能成功。 2,VMWare增强工具的安装问题请参看:http://www.cnblogs.com/vegaslee/archive/2009/09/22/1571671.html 3,VMWare下Linux的使用请参看&…

量子计算生态:市场预期、行业应用与“霸权”争夺

来源:资本实验室从IBM宣布推出业界首个商用量子计算系统,到我国开通全球首条量子通信干线并成功实现首次洲际量子通信,2017年的量子计算领域精彩不断,并不断提升市场对量子计算的预期。除了应用于国防安全,在科研、医疗…

linux下能运行python,(转)Linux下运行python

原文: http://blog.csdn.net/jackywgw/article/details/48847187在linux命令行下运行python,可以直接输出hello worldjackywgwjackywgw-A8F:~/python_learning$ pythonPython 3.3.6 (default, Apr 17 2015, 00:20:01)[GCC 4.9.2] on linuxType "hel…

xhtmlrenderer + iText-HTML转PDF

来源:xhtmlrenderer iText-HTML转PDF_hunan961的博客-CSDN博客_xhtmlrenderer xhtmlrendereitext2.0.8 将html转成pdf,带样式、图片(也支持二维码、条形码)等 主要步骤 生成html(css样式直接放在style中)html转换pdf方法数据返…

Ubuntu 防火墙 ufw

UbuntuHelp:UFW :http://wiki.ubuntu.org.cn/UbuntuHelp:UFW Ufw使用指南:http://wiki.ubuntu.org.cn/Ufw使用指南 ubuntu ufw防火墙:http://wap.dongnanshan.com/fn.php?subuntu ufw防火墙 UFW要领:通用防火墙规则和命令&#x…

NASA打算送机器蜜蜂去探索火星上的生命痕迹

来源:国际智能机器人用机械昆虫做侦察兵是科幻电影里存在了多年的场景,如今现实中已经有科学家在做这件事,譬如用机械蜜蜂探索太空。NASA最近就花了12.5万美元资助一个名为“Marsbees”的火星探测工具的科研项目。“Marsbees”是一款微型机器…

linux usb 驱动漏洞,不测不知道 这么多的USB漏洞要从何“补”起?

原标题:不测不知道 这么多的USB漏洞要从何“补”起?[PConline 杂谈]生活中,USB接口可以说无处不在,路由器、打印机、投影机、PC电脑、台式机等等,且使用频率极高。当然,作为硬件设备的输入输出接口,其安全…

小虎队 - 情难枕

现场感很好。。。时间在不远的前方穿梭,走在街头看着形色匆匆赶路回家的人群,这个城市,无声无息的变化........ 在这个意义上已到成熟的年纪,在茶语谈笑间总会想起往日的欢愉,在每个80后成长的人,那些昔日…

xhtmlrenderer 将html转换成pdf,完美css,带图片,手动分页,解决内容断开的问题

来源:xhtmlrenderer 将html转换成pdf,完美css,带图片,手动分页,解决内容断开的问题 - 煮过的花朵 - 博客园 之前用itext7将html导出为pdf,比较方便,代码较少,而且支持base64的图片。…

商汤科技宣布C轮战略融资6亿美元 阿里领投苏宁跟投

来源:雷帝网 人工智能平台公司商汤科技SenseTime宣布完成6亿美元C轮融资,由阿里巴巴集团领投,新加坡主权基金淡马锡、苏宁等投资机构和战略伙伴跟投。商汤科技联合创始人、CEO徐立表示:商汤科技C轮融资将进一步夯实公司在人工智能…

MongoDB Shell和Robo3T使用以及与SQL语法比较

From:MongoDB Shell 了解使用 - 大葱哥 - 博客园 MongoDB基本管理命令:MongoDB基本管理命令_千与的专栏-CSDN博客_mongo查询命令 MongoDB常用操作命令大全:MongoDB常用操作命令大全_piaocoder-CSDN博客_mongodb常用命令 mongodb 命令行基本…

PowerDesiGner数据库设计

原文地址:http://hi.baidu.com/shunkunl/blog/item/871c75ef8596faeace1b3e00.htmlPowerDesign:PowerDesign是 Sybase推出的主打数据库设计工具。PowerDesign致力于采用基于Entiry-Relation的数据模型,分别从概念数据模型 (Conceptual Data M…

mipony linux客户端,Mipony网盘下载工具

Mipony是一个特别设计的下载管理器下载的免费网盘如Rapidshare,Megaupload,Hotfiles,Gigasize,Filefactory,Mediafire,Netload。简介:支援“HJSplit”档案合并功能,还可以自动侦测网…

2018全球100个最有价值的科技品牌 18个中国品牌上榜

来源:全球企业动态英国品牌评估机构Brand Finance发布“2018全球100个最有价值的科技品牌榜”(Top 100 most valuable tech brands 2018),前五位都是美国品牌。美国上榜品牌总价值9590亿美元,占百强品牌总价值14673亿美元的65%。亚马逊跃升至…