因项目需要将word文件(.doc,.docx,.rtf)转换成pdf文件并添加水印,铺满全页。

现就将为pdf文件添加水印提取出来,word文件转换成pdf文件,网上的教程很多,如需需要联系我即可。

import java.awt.FontMetrics;
import java.io.FileOutputStream;import javax.swing.JLabel;import com.itextpdf.text.Element;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;public class TestwaterMark {private static int interval = -5;   public static void waterMark(String inputFile,    String outputFile, String waterMarkName) {    try {    PdfReader reader = new PdfReader(inputFile);    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(    outputFile));    BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",   BaseFont.EMBEDDED);  Rectangle pageRect = null;  PdfGState gs = new PdfGState();  gs.setFillOpacity(0.3f);  gs.setStrokeOpacity(0.4f);  int total = reader.getNumberOfPages() + 1;   JLabel label = new JLabel();  FontMetrics metrics;  int textH = 0;   int textW = 0;   label.setText(waterMarkName);   metrics = label.getFontMetrics(label.getFont());   textH = metrics.getHeight();textW = metrics.stringWidth(label.getText());  PdfContentByte under;    for (int i = 1; i < total; i++) {   pageRect = reader.getPageSizeWithRotation(i);   under = stamper.getOverContent(i);   under.saveState();  under.setGState(gs);  under.beginText();    under.setFontAndSize(base, 20);    // 水印文字成30度角倾斜  //你可以随心所欲的改你自己想要的角度for (int height = interval + textH; height < pageRect.getHeight();  height = height + textH*3) {    for (int width = interval + textW; width < pageRect.getWidth() + textW;   width = width + textW*2) {  under.showTextAligned(Element.ALIGN_LEFT  , waterMarkName, width - textW,  height - textH, 30);  }  }  // 添加水印文字    under.endText();    }   //说三遍//一定不要忘记关闭流//一定不要忘记关闭流//一定不要忘记关闭流stamper.close();  reader.close();} catch (Exception e) {    e.printStackTrace();    }    }    public static void main(String[] args) {waterMark("F:/exe/123.pdf", "F:/exe/456.pdf", "我是黑豆");  }}

示例图片

Java实现pdf文件添加水印,铺满全页。相关推荐

  1. java pdf水印排布问题_Java实现pdf文件添加水印,铺满全页。

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/duan1309/article/details/81232300 因项目需要将word文件(.doc ...

  2. java 给 pdf文件添加水印 | Itext7 | 文字水印 | 图片水印 | 多重水印

    java | Itext7 水印 | 文字水印 | 图片水印 本地开发环境:jdk1.8 效果图: maven依赖: <dependency><groupId>com.itex ...

  3. Java实现对PDF文件添加水印

    Java实现对PDF文件添加水印 目录 Java实现对PDF文件添加水印 导入依赖 工具方法 效果 最近项目中遇到对PDF添加水印,实现有多种,采取的是itextpdf 导入依赖 <!-- 对P ...

  4. itex将html转成pdf加水印,itext操作PDF文件添加水印

    功能描述:添加图片和文字水印 /** * * [功能描述:添加图片和文字水印] [功能详细描述:功能详细描述] * @param srcFile 待加水印文件 * @param destFile 加水 ...

  5. Java生成PDF文件_自用

    Java生成PDF文件 一.前言 前几天,做ASN条码收货模块,需要实现打印下载收货报表,经一番查找,选定iText--用于生成PDF文档的一个Java类库.废话不多说,进入正题. 二.iText简介 ...

  6. Java实现pdf文件转图片

    Java实现pdf文件转图片 文章顺序是按照测试类- -Service- -Service实现类- -工具类- - POM依赖. test测试类里 pdfPath:存放pdf源文件的地方 imgflo ...

  7. 使用java实现pdf文件转换为jpg或者png(可以批量操作、分类存放)

    使用java实现pdf文件转换为jpg或者png(可以批量操作) 使用java代码实现将pdf转换为图片格式.支持归类,支持pdf多页分页面转换存放. 需求背景:有几百个文件夹,每个文件夹里有两个pd ...

  8. Java生成PDF文件(Itext篇)

    在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样 ...

  9. Python3,2段代码,给pdf文件添加水印,原来watermark还可以这么玩。

    pdf添加watermark 1. 引言 2.指定水印内容输出到pdf文件 2.1 模块安装 2.2 思路 2.3 代码示例 3.水印内容批量输出到pdf文件 3.1 模块安装 3.2 思路 3.3 ...

最新文章

  1. 浅谈话题模型:LSA、PLSA、LDA
  2. [YTU]_2918( Shape系列-4)
  3. layer.js 使用
  4. data transformation python_Python 编码为什么那么蛋疼?
  5. TensorFlow 2.X中的动手NLP深度学习模型准备
  6. Linux 系统应用编程——多线程经典问题(生产者-消费者)
  7. django girls_Django Girls Budapest团队的活动筹划技巧
  8. 关键字:auto、static、register、const、volatile 、extern 总结
  9. [windpole]SharePoint异常:应用程序试图执行不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别。...
  10. php英文书籍在线,php英语四级在线练习系统
  11. python 万年历代码
  12. VOC2007和VOC2012数据集下载地址
  13. 基于StockRanker的AI量化选股策略
  14. countif函数比较两列不同_Excel如何对比两列姓名找出两列相同和不同的姓名有哪些方法...
  15. html代码word,Web前端
  16. EasyCVR平台如何实现超低延时的安防视频监控直播?
  17. 教务(选课)管理系统
  18. 2021年7月电动汽车保有量,充电站数量
  19. 交叉编译详解 - 概念篇
  20. 故障发散-Recv-Q阻塞

热门文章

  1. Bash bug漏洞目前最新最全的修复方式
  2. 桥接的路由器虚拟服务器,贝尔金路由器桥接与虚拟服务器设置步骤-路由器
  3. for i in range(起始值,终点值,步长):
  4. Ninth season thirteenth episode,Monica sang without underwear??????
  5. 程序员年入百万指南(六)如何选择工作机会
  6. 蓝牙耳机什么牌子好?四大品牌蓝牙耳机推荐
  7. 2021AI量化投资训练营重磅升级,自带编程的优势显而易见
  8. Qt实现钢笔、毛笔的笔锋效果
  9. IDEA配置自带的Maven
  10. 论文阅读笔记:GraphRAD---A Graph-based Risky Account Detection System