因为使用aspose-cells将excel文件生成pdf需要license授权码,网上找了很久都没有,想着直接把水印文字给替换掉或者遮盖掉。

1.引用itextpdf.jar包,如果导出文件包含中文最好引入itext-asian.jar,防止乱码。

<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.以下是实际操作代码

    /*** 替换指定文字为白色的遮罩层* @param src 需要被转换的带全路径文件名* @param dest 转换之后pdf的带全路径文件名* @param replaceStr 指定转换的文字(水印的文字)*/public static void replaceStr(String src, String dest, String replaceStr) {try {resu = new ArrayList<>();PdfReader reader = new PdfReader(src);//获取指定文字的坐标(就是上一步生成的pdf水印)getKeyWords(reader,replaceStr);PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));for (int i = 1; i <= resu.size(); i++) {String xy = resu.get(i - 1);PdfContentByte canvas = stamper.getOverContent(i);canvas.saveState();//设置颜色canvas.setColorFill(BaseColor.WHITE);//解析坐标double x = Double.valueOf(xy.split("--")[0]);double y = Double.valueOf(xy.split("--")[1]) - 10;//后面2个参数分别是宽高canvas.rectangle(x, y, 450, 100);canvas.fill();canvas.restoreState();}stamper.close();reader.close();} catch (Exception e) {e.printStackTrace();}}/*** 获取指定文字的坐标*/private static void getKeyWords(PdfReader pdfReader,String replaceStr) {try {int pageNum = pdfReader.getNumberOfPages();PdfReaderContentParser pdfReaderContentParser = new PdfReaderContentParser(pdfReader);for (int i = 1; i <= pageNum; i++) {pdfReaderContentParser.processContent(i, new RenderListener() {@Overridepublic void renderText(TextRenderInfo textRenderInfo) {String text = textRenderInfo.getText(); // 整页内容if (null != text && text.contains(replaceStr)) {Rectangle2D.Float boundingRectange = textRenderInfo.getBaseline().getBoundingRectange();String xy = boundingRectange.x + "--" + boundingRectange.y;resu.add(xy);}}@Overridepublic void renderImage(ImageRenderInfo arg0) {// TODO Auto-generated method stub}@Overridepublic void endTextBlock() {// TODO Auto-generated method stub}@Overridepublic void beginTextBlock() {// TODO Auto-generated method stub}});}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

Java 去除aspose-cells生成的pdf文件中水印文字相关推荐

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

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

  2. python 删除pdf页面_使用python从新生成的pdf文件中删除空白页

    使用下面的代码,我试图将图片从目录粘贴到PDF文件中.代码已经在工作,生成我的PDF几乎如我所愿.在 唯一的问题是它总是在图片之间添加空白页,我不知道为什么. 如果我执行代码,PDF将以空白页开始,然 ...

  3. pdf exe如何提取pdf文件_python应用:如何用python提取pdf文件中的文字

    从pdf中提取文字,相信很多人都干过这事,怎么在python中实现呢,今天带大家看看. 第一步导入库 import PyPDF2 第二步导入pdf文件 pdf_file =open('dataset/ ...

  4. vscode中打开pdf文件_提取pdf文件中的文字

    环境说明 windows10系统 python3.6版本 安装 网上很多说需要安装pdfminer3k和pdfminer3k.six,我尝试了先安装pdfminer3k后安装pdfminer3k.si ...

  5. 怎么修改PDF文件中的文字

    怎么修改PDF文件中的文字 最初PDF只被看作是一种页面预览格式,而不是生产格式.然而市场的感觉并非如此,市场期望转化了这种格式的焦点,从而也改变了该产品.各种各样的电子书阅读器充斥着国内外市场,已经 ...

  6. PDF如何编辑,怎么编辑PDF文件中的文字

    越来越多的小伙伴会私信小编询问小编关于PDF文件的修改技巧,在使用PDF文件的时候,往往是需要用到PDF编辑器的,编辑文件时,想要修改文件的内容,应该怎么去编辑呢,其实,还是很简单的,不会的小伙伴可以 ...

  7. 如何快速批量删除PDF文件中的文字 - PDF文字删除器

    在日常工作中,你可能经常会发现有一些PDF文件有错误的文字需要删除,或是重要的文字不能被显示.由于PDF是一个虚拟打印的文件格式,逐一在每个PDF文件上删除这些错误文字或重要文本可能会非常麻烦和复杂. ...

  8. java jar metainf_java – 从生成的jar文件中排除META-INF / maven文件夹

    我正在尝试创建一个jar文件,其中包含jar中提取的所有必需类.但对于像 log4j这样的少量依赖jar,它会在META-INF / maven / *中创建一些文件夹.我有一个限制,我将放置生成的j ...

  9. java基础IO流使用读取一个文件中的文字输出到控制台上

    读取一个文件中的文字输出到控制台上 import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IO ...

最新文章

  1. C语言编写的PHP框架--yaf入门编程
  2. 为什么有些老板要注册很多家公司
  3. GPU 「抗压」不行还费电,FPGA将成深度学习「新基建」
  4. #论文 《Wide Deep Learning for Recommender System》翻译
  5. hibernate原理
  6. typescript在ES3(IE7)环境下使用async、await
  7. iOS推送(利用极光推送)
  8. Win10系统Win键无法使用
  9. 2018 Python 开发者调查报告发布,数据出乎你意料吗?
  10. 拓端tecdat|r语言多均线股票价格量化策略回测
  11. rabbitmq python 发送失败_RabbitMQ Python端发送消息给Java端 接受消息全数字问题
  12. 【2019百度之星初赛二1003=HDU6676】度度熊与运算式 1(思维)
  13. 使用matlab设计iir滤波器并自行编写代码实现iir滤波器(可对应于C语言应用在嵌入式系统中)
  14. Android Binder机制详解
  15. 2019年中国公有云厂商发展状况白皮书
  16. 大学计算机教程王梦倩,【经验共享】中国矿业大学资源学院辅导员王梦倩
  17. 在计算机注册表中修改密码策略,密码不符合系统密码复杂性策略
  18. 用java设计一个三角形类_利用Java类库中的Point类设计一个三角形类,编程求三角形面积...
  19. CAD制图怎么绘制对称的图形?
  20. c语言int 转bool_深入理解C语言中的类型转换

热门文章

  1. win系统将中文用户名修改为英文用户名
  2. Largest Rectangular Area in a Histogram
  3. Gateway-02-gateway路由规则和过滤器
  4. linux管道、重定向和查看命令
  5. 冒泡排序法c语言实验报告,微机原理实验报告-冒泡排序
  6. 我的算法之狼追兔子问题之Java(while)
  7. c语言题集pdf,C语言习题集策略.pdf
  8. JavaScript事件流模型
  9. 55寸液晶电视成主流 这几个关键点你别错过
  10. 【电商宝scrm分享】3C类目商家如何玩转社群营销