icePDF去水印的方法(推荐)
使用icePDF带字体架包进行pdf转图片时,会有官方的水印。可以通过反编译架包来去除水印,只需修改架包中的两个类即可。
1、首先下载到icepdf的架包。
2、用解压缩软件,对该jar文件进行解压,得到名为icepdf-core的文件夹。
3、找到2个要修改的class文件,用反编译软件,另存成java文件。
在icepdf-core\org\icepdf\core\application文件夹下的ProductInfo.class文件,
在icepdf-core\org\icepdf\core\pobjects\graphics文件夹下的Padding.class文件。
4、修改两个java文件中的内容。
(1)修改ProductInfo.java文件中的getVersion()方法,使其返回一个空字符串。
(2)Padding.java文件有两处要修改,一是修改最上面的两个字符数组为空。
二是在static语句块的第二个for循环中增加int定义。
5、将两个java文件编译成class文件,装有java环境的可以直接用javac命令进行编译。(java文件要放在执行命令的对应目录,这个例子里是在c盘执行命令,所以java文件也要放在c盘,如下图)
注:(1)如果编译时报下图红圈处错误,是因为java文件是UTF-8编码问题,将java文件用记事本打开,另存为ANSI格式,再重新编译。
(2)编译Padding.java文件时报如下错误,是因为缺少依赖的包,将第2步中解压出的icepdf-core文件夹下的org文件夹整个复制到c盘,再重新编译。
6、最后用压缩软件,将两个编译好的class替换进jar文件中。这样ok了!
以上这篇icePDF去水印的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
icePDF去水印的方法(推荐)
使用icePDF带字体架包进行pdf转图片时,会有官方的水印.可以通过反编译架包来去除水印,只需修改架包中的两个类即可. 1.首先下载到icepdf的架包. 2.用解压缩软件,对该jar文件进行解压,得到名为icepdf-core的文件夹. 3.找到2个要修改的class文件,用反编译软件,另存成java文件. 在icepdf-core\org\icepdf\core\application文件夹下的ProductInfo.class文件, 在icepdf-core\org\icepdf\cor
-
VC中实现文字竖排的简单方法(推荐)
好多人都觉得在VC中实现文字竖排是一件很难的事情,其实可以使用"躺"着的字体很方便的实现文字竖排. Windows中有一些字体是"躺"着的,例如:@Fixedsys.@System.@宋体.@黑体等等,有很多,这些字体和不加@的字体的唯一区别就是用这些字体显示的文字是"躺"着的.如下图: 对这些"躺"着的字体进行270°的旋转就可以实现文字竖排了,效果如下: 以下代码可以产出竖排的宋体. CFont font; CFont *
-
js 判断各种数据类型的简单方法(推荐)
了解js的都知道, 有个typeof 用来判断各种数据类型,有两种写法:typeof xxx ,typeof(xxx) 如下实例: typeof 2 输出 number typeof null 输出 object typeof {} 输出 object typeof [] 输出 object typeof (function(){}) 输出 function typeof undefined 输出 und
-
js定义类的几种方法(推荐)
ECMAScript6已经支持了class,但之前版本都不支持类,但是可以通过一些方法来模拟类. js中的类,既是重点,也是难点,很多时候都感觉模棱两可. 首先强调一下js中很重要的3个知识点:this.prototype.constructor. 下面我们来总结一下定义(模拟)类的几种方法: 1.工厂模式 function createObject(name,age){ var obj = new Object(); obj.name = name; obj.age = age; obj.ge
-
Python多层嵌套list的递归处理方法(推荐)
问题:用Python处理一个多层嵌套list ['and', 'B', ['not', 'A'],[1,2,1,[2,1],[1,1,[2,2,1]]], ['not', 'A', 'A'],['or', 'A', 'B' ,'A'] , 'B'] 需求1)如何展开成一层? 需求2)如何删除重复的元素? 包括重复的list, 要考虑子list的重复元素删除后造成的子list重复 #!/usr/bin/env python # -*- coding: utf-8 -*- def unilist(l
-
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
实例如下: $.ajax({ type: 'POST', url: url, success(function(data){ //判断是否为JSON对象 if(typeof(data) == "object" && Object.prototype.toString.call(data).toLowerCase() == "[object object]" && !data.length){ alert("is JSON 0
-
Js得到radiobuttonlist选中值的两种方法(推荐)
如下所示: <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="ajaxselect.OnmouseTitle.WebForm1" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
-
java之File对象对文件的操作常用的几个方法(推荐)
File对象是对文件操作最常用的类,平常工作总用的很多,贴出来了几个我工作常用的几个方法.简单总结了下 直接上代码: //构建文件对象 File file=new File("E:/android_demo/a"); File fileTest=new File("E:/android_demo/a/test.mp3"); //获取文件的父路径 File f=file.getParentFile(); System.out.println("f==&quo
-
phpredis提高消息队列的实时性方法(推荐)
数据库存贮都用list形式 要存2个队列 1个用作消息队列保存到数据 还有个 就是用来实时读取数据在redis $redis->lpush($queenkey, json_encode($array)); $redis->lpush($listkey, json_encode($array)); /*消息队列实例*/ public function insertinfo() { $infos = array('info1' => mt_rand(10,100), 'info2' =>
-
jQuery页面加载初始化的3种方法(推荐)
jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(function(){ alert("第一种方法."); }); 第二种: $(function(){ alert("第二种方法."); }); 第三种: jQuery(function($) { alert("第三种方法."); }); ps; 不用jQuer
随机推荐
- 六款值得推荐的android(安卓)开源框架简介
- 深入学习jQuery Validate表单验证
- php设计模式 Prototype (原型模式)代码
- 十大常见Java String问题_动力节点Java学院整理
- 浅谈iOS 数据结构之链表
- Python根据区号生成手机号码的方法
- asp 自定义分段函数/求第N名成绩
- Javascript学习指南
- 浅谈MyISAM 和 InnoDB 的区别与优化
- PHP中JSON的应用技巧
- JS Array.slice 截取数组的实现方法
- Ajax动态加载数据库示例
- win2008之IIS7中FTP设置技巧
- 常见的Nginx配置误区
- 有序列表ol漂亮css分页样式代码(纯css)
- jQuery插件zTree实现删除树节点的方法示例
- Javascript中this关键字指向问题的测试与详解
- Android开发实现ScrollView中嵌套两个ListView的方法
- Java实现实时监控目录下文件变化的方法
- 小试小程序云开发(小结)