前言:本文探讨的是利用pageEvent事件在生成PDF文件的过程中把图片水印加好,这样导出的是加好水印的pdf文件。

  • 1:加入依赖
<!--导出pdf相关--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>
  • 2:准备好水印图片,将图片拷贝到项目中

  • 3:代码示例,利用pageEvent事件加水印

定义事件类

package itextpdf;
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;/*** @author* @description 继承PdfPageEventHelper类来定义事件* @date 2018/6/19 11:08$*/
public class WaterMark1 extends PdfPageEventHelper {@Overridepublic void onEndPage(PdfWriter writer, Document document) {//获取水印图片的路径String markImagePath = this.getClass().getClassLoader().getResource("font").getFile() + "/logo.png";float pageHeight = document.getPageSize().getHeight();float pageWidth = document.getPageSize().getWidth();try {Image img = Image.getInstance(markImagePath);//生成水印图片final float IMAGE_SIZE = 0.6f;//图片缩放比例,大小0float plainWidth = img.getPlainWidth() * IMAGE_SIZE;float plainHeight = img.getPlainHeight() * IMAGE_SIZE;img.scaleAbsolute(plainWidth, plainHeight);//设置图片大小img.setAlignment(Image.UNDERLYING); // 在字下面//设置水印图片的坐标。img.setAbsolutePosition(pageWidth - plainWidth - 35, pageHeight - plainHeight - 5);//image.setRotation(-30);//设置旋转 弧度//image.setRotationDegrees(-45);//设置旋转 角度//image.scalePercent(50);//设置依照比例缩放,与设置大小作用相同//将水印图片加入到文档中,可使用循环添加多个,添加多个时注意每个图片的坐标等属性document.add(img);} catch (Exception e) {e.printStackTrace();}}
}

添加事件,注意要加在document.open()之前

        //创建documentDocument document = new Document(PageSize.A4);//设置要导出的文件名File file = new File("C:\\Users\\Administrator\\Desktop\\test.pdf");OutputStream outputStream = new FileOutputStream(file);PdfWriter writer = PdfWriter.getInstance(document, outputStream);//开始写writer.setPageEvent(new WaterMark1());//水印内容document.open();//此处省略写入文字过程...document.close()
  • 4,效果展示

导出pdf文件时加图片水印相关推荐

  1. 关于RDLC使用导出PDF文件时,中文乱码解决方案

    MicrosftReportViewer控件导出乱码,主要需要设置的是RDCL文件: 关于使用RDLC导出PDF文件时,中文出现乱码现象,本文进行了解决: 其实很简单. 本人平台情况VS2008 英文 ...

  2. 【PPT】PPT文档导出PDF文件时,去掉右上角时间

    PPT文档需要导出为PDF文件时,右上角页眉会出现时间戳,有时候不需要时间,如何去掉时间戳呢? Win10+Office2019 当需要将多页PPT打印在一张纸上时,右上角页眉会自动出现当前时间戳20 ...

  3. CoreIDRAW导出PDF文件时出现部分内容不显示、空白的问题解决方法。

    遇到问题: 在使用CoreIDRAW制作归档文件时,导出PDF文件后出现了部分内容不显示.空白的问题.我的设计是两页BOM表格与一页PCB丝印图.在使用"发布至PDF"导出PDF文 ...

  4. 如何在Visio导出pdf文件时不带边框

    首先在菜单栏选择 设计 适应绘图.将图片多余的空白处去掉.如下图所示. 其次,在菜单栏选择文件-导出-pdf,这时,点击选项 取消勾选辅助功能文档结构标记,即可去掉图片边框.如下图所示.

  5. java pdf添加透明水印_如何使用PDF编辑工具在PDF文件中添加透明水印

    PDF 文件在修改编辑的时候会使用到 PDF 编辑工具,不管是工 作中还是生活中,都会使用到 PDF 文件,当我们需要给 PDF 文件添 加透明水印时,该怎么操作呢,是不是有很多的小伙伴也很好奇, 那 ...

  6. 咖啡汪日志——JAVA导出pdf文件加水印 文字+图片、文字

    咖啡汪日志--JAVA导出pdf文件加水印 文字和图片.文字 hello,又大家见面了! 作为一只不是在戏精就是在戏精路上的哈士奇,今天要展示给大家的就是如何快捷地给pdf文件增加各种水印.嗷呜呜,前 ...

  7. Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印

    前段时间,为了解析PDF,花了不少时间去学习PDFbox和itext,这两个都是处理PDF的开源库,有java和C#的.作为一个刚开始学习这两个开源库的,感觉百度上的资源还是太少了.我做的是一个关于P ...

  8. 解决word转PDF文件时图片位置改变和字体格式改变的问题

    解决word转PDF文件时图片位置改变和字体格式改变的问题 在写论文的时候,使用word编辑完文本后将其导出为PDF总是出现图片位置改变或者字体格式改变的问题,好不容易在word中编辑好的格式却不能在 ...

  9. 支持导出PDF文件并转换成图片格式的PDF查看控件Spire.PDFViewer

    Spire.PDFViewer for .NET是一款功能强大的PDF查看控件.它是由e-iceblue公司在2012年新推出的一款产品.它允许开发者从本地文件夹(File),stream和byte ...

最新文章

  1. Python Excel操作模块XlsxWriter之插入图片worksheet.insert_image
  2. 高级性能服务器编程模型【IOCP完成端口】开发实现【二】
  3. 在简历中应用STAR法则
  4. fastdfs笔记_fastDFS 命令笔记-阿里云开发者社区
  5. XGBoost的参数说明
  6. redis 简单应用
  7. 设计模式 - 策略模式Strategy
  8. 使用SQL数据库在Python中执行CRUD操作
  9. MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?...
  10. 50 个高级 sql 语句
  11. 函数最值题目及答案_高考数学攻克压轴题:圆锥曲线取值范围和最值问题解题模型...
  12. 算法设计与分析期末复习题
  13. java jdk下载_jdk1.7下载|Java Development Kit (JDK) 下载「64位」-太平洋下载中心
  14. KK课表抓取教务系统
  15. 150行Python代码模拟太阳系行星运转(含music)
  16. Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 - 2019CVPR
  17. [渝粤教育] 西安建筑科技大学 技术经济学 参考 资料
  18. 58到家数据库30条军规解读 【转】
  19. (二)基于STM32f103的I2C通信接口的EPPROM模块(24C256)读写程序详解
  20. Cesium:加载GeoServer-WMS服务

热门文章

  1. 从0开始搭建自动化测试框架之PO分层架构
  2. PHP 7.4 configure error : Package requirements (zlib) were not met
  3. 修改内网服务器数据,内网服务器拷数据
  4. python判断word页码
  5. 2017年PHP程序员未来路在何方——韩天峰
  6. MacBook 安装固态硬盘
  7. 基于haar+adaboost的人脸检测、深度学习的人脸识别技术应用综述
  8. 常用动画特效 - CSS实现
  9. 为什么学习Vue框架??
  10. 空间直角坐标转大地坐标