- 博客(79)
- 资源 (24)
- 问答 (1)
- 收藏
- 关注

原创 为何选择iText?java PDF开源库选择与iText发展历史
    转眼间,我写iText7系列已经有一年多了,还记得最开始的时候是因为兴趣才翻译iText,不过随着慢慢翻译文章才发现iText的强大之处,最近也是调研了整个java PDF开源库的生态圈,我给大家详细讲一下java PDF开源库的选择还有我选择iText的理由。1. 源起PDF1.1 PDF定义   
2018-05-04 16:26:31
29048
14

原创 iText7系列github地址及交流QQ群
iText7系列介绍    之前一直在翻译iText7相关的资料,人气也还行,这几天也把项目源码上传到了github上面,供大家下载学习。    iText7官网上有三本电子书的: 《iText 7 Jump-Sta
2018-04-11 16:32:48
1929
4
原创 iText如何提取PDF中的数据——1. 总览
iText官方给出了相关的整体解决思路,在这我给大家翻译并总结一下。在这里主要是抛砖引玉,后续会结合具体例子来解决我们实际过程中的出现的问题。
2022-12-25 15:09:03
799
原创 iText7高级教程之PDF与区块链——1.总览
你已经为你的供应商支付了一张数字发票,之后它似乎是假的——你是发票欺诈的受害者。这些问题以及更多问题现在可以通过区块链解决。本电子书重点介绍如何将区块链与PDF结合使用来编写应用程序。我们都知道区块链,因为它是比特币在加密货币环境中使用的技术。“虚拟货币”或“数字货币”只是分布式账本技术(DLT)的一种应用。它们已在比利时获得授权,目前正在国际上申请(ETA:2019年6月)。在接下来的几篇文章中,我们将深入了解与区块链和文档相关的特定主题。您可能已经在DZone上阅读了我们的。上发布的iText插件。
2022-12-13 16:20:42
277
原创 iText7高级教程之html2pdf——7.关于pdfHTML经常问的问题
当然,还有一些不完美之处。例如:上面中的项目显示为列表了,而不是导航栏中的项,但我们计划在未来版本的pdfHTML中解决这些问题。我们也可以使用媒体类型。
2022-12-12 17:37:56
137
原创 iText7高级教程之html2pdf——6.在pdfHTML中使用字体
在本章中,我们尝试了不同类型的字体。我们已经了解到,默认情况下只支持有限的字体集,而且我们可以添加对几乎任何我们喜欢的字体的支持,前提是我们可以访问相应的字体程序。我们还发现iText支持不同于西方从左到右书写系统的书写系统,并且支持连字(阿拉伯文、印度文……),但前提是我们包含pdfCalligraph插件。在下一章(也是最后一章)中,我们将讨论一些常见问题。iText7高级教程之html2pdf教程源码下载。
2022-11-29 18:58:41
803
原创 iText7高级教程之html2pdf——4.使用pdfHTML创建报告
假设有一个可以用作公司信纸的单页PDF文档,请参见图4.4中左侧的PDF。假设我们想在从HTML创建的PDF的背景中添加此单页,请参见右侧的PDF。假设我们还想不用以@page规则的方式添加页码。例如,请参见生成的PDF第一页上的白色大数字1。图4.4 使用单页PDF作为公司信纸iText7高级教程之构建基础块——7.处理事件,设置阅读器首选项和打印属性里面阐释的方法可以帮我们满足这个需求,你可看通过使用事件处理器来做到。在下面的代码中,我们创建了的实现,名叫Background。
2022-11-11 16:27:11
548
原创 iText7高级教程之html2pdf——3.基于媒体查询生成PDF
在本章中,我们创建了一个响应的HTML文件,并通过定义不同的媒体查询将该文件转换为不同的PDF文档。我们创建了一个PDF,它使用了一个专门为打印HTML文件而编写的CSS文件。我们还使用了媒体查询,使内容适应屏幕宽度。在下一章中,我们将了解使用pdfHTML作为报告引擎时的一些示例和最佳实践。
2022-11-03 18:31:53
346
原创 iText7高级教程之html2pdf——2.使用CSS定义样式
在前一章中,我们使用了不同的Java代码片段。 在本章中,我们将对每个示例使用相同的代码片段: 我们不看不同的Java代码片段,而是看不同的HTML和CSS片段。 在第一个实例中,我们通过使用诸如和的html标签,将样式定义为斜体和不同的字体大小,HTML代码如下: 基于该HTML文件创建的HTML页面和PDF如图2.1所示。 我们称之为老式的——有些人认为很low——因为现在HTML只用于定义内容及其结构。现在,所有样式(如宽度、高度、字体选择、字体大小、字体颜色、字体粗细等)都是使用层
2022-10-09 18:22:18
607
原创 iText7高级教程之html2pdf——1.从Hello HTML开始
和将该文件转换为 PDF。当您查阅类 的 API 文档时,您会发现这些方法的更多变体。在下一章中,我们将选择其中一种方法来转换不同的 HTML 文件。这些 HTML 文件中的每一个都将以不同的方式使用 CSS。
2022-09-28 19:37:09
556
原创 iText7高级教程之构建基础块——7.处理事件,设置阅读器首选项和打印属性
在“iText 7:Building Blocks”的最后一章中,我们介绍了功能,它允许我们在特定事件(例如开始、结束、插入和删除页面)发生时采取行动。同时也把目光聚集到允许我们告诉 PDF 阅读器在打开文档时如何呈现文档的阅读器首选项。我们还可以使用阅读器首选项的机制来设置一些打印机首选项。最后,我们查看了一些writer 属性。例如元数据、压缩和加密。我们在本教程中涵盖了很多内容。现在,您应该清楚地了解要从头开始创建文档时可用的基本构建块。
2022-09-21 17:16:32
449
原创 iText7高级教程之构建基础块——6.创建动作(Action)、目标(destinations)和书签(bookmarks)
本章都是关于帮助我们在文档之间导航的交互式元素。用于导航到外部网页的 URI 操作;导航到第一页、上一页、下一页和最后一页的已命名操作;GoTo 操作以转到文档内的指定目标或显式目标;远程转到操作以导航到同一窗口或新窗口中的另一个 PDF 文档;用于触发 PDF 特定 JavaScript 执行的 JavaScript 操作;然后仔细研究了目标,以及如何使用抽象类 PdfDestination``的子类之一来创建它们。
2022-09-09 16:18:31
536
原创 iText7高级教程之构建基础块——5.使用AbstractElement对象(part 2)
介绍完本章后,iText 7中所有的基础构建块都已经涵盖并介绍了。我们将两个最常用的构建块放在最后:和。 这些对象旨在以表格形式呈现内容。 许多开发人员使用 iText 将数据库查询的结果集转换为 PDF 格式的报告/页面。 他们创建了一个,其中每一行对应一个数据库记录,将每个字段值包装在一个 对象中。 我们可以使用之前的“Jekyll and Hyde”例子的数据库轻松地创建一个与 PDF 类似的表格,但让我们先从几个简单的例子开始。 如图5.1是我们用iText7创建的第一个表格: 创建的代
2022-09-07 14:31:57
541
原创 iText7高级教程之构建基础块——4.使用AbstractElement对象(part 1)
在之前的章节中,我们讨论了实现AbstractElement类的5个类。在章节2中,我们讨论了AreaBreak类。在章节3中我们讨论了实现ILeafElement类的4个类——Tab、Link、Text和Image类。在这章节,我们会着重于其他一系列实现AbstractElement的类。如用于分组元素的Div类和用于在元素之间划线的LineSeparator。我们在之前的章节中已经多次使用过Paragraph类,但是在本章中我们将会重新讨论它。最后我们将讨论List类和ListItem类,而Table和
2022-08-11 17:06:00
473
原创 iText7高级教程之构建基础块——3.使用ILeafElement实现类
类有三个子类:、、和。在第一章里面我们已经简明地讨论了类。在上一章我们讨论了的子类和。在接下来的是三章我们将围绕类来讨论: 注意在第二章我们已经讨论了对象,一直到第五章为止,我们会涵盖所有构件基础块的类; 在上一章中,我们使用了一个txt文件来创建PDF文档。同样的在本章中我们使用一个CSV文件来当做数据输入,如图3.1所示: 在上图我们可以清晰的看到,此 CSV 文件可以解释为包含由 6 个字段组成的记录的数据库表: 我们会使用工具类来解析这个文件,这个文件以UTF-8格式存储,读取并保存在二
2022-06-16 18:27:56
508
原创 Spring Boot数据库版本控制工具技术方案
1. 数据库版本困境在大家的日常开发过程中,肯定使用过代码版本控制工具,并且使用得十分熟练,但是对于数据库,有没有进行版本控制呢?我猜大部分企业和开发者都没有使用到数据库版本工具,如果没有使用,可能会遇到如下问题:当前环境下的数据库处于什么状态?多环境下数据库版本是否保持一致呢?例如刚刚修复线上的数据库变更是否应用到了测试和开发环境?我们编写的数据库语句是否已经执行了呢?在新的环境下,怎么快速设置一个新的数据库实例呢?特定软件代码版本与数据库 Schema 的兼容问题怎么解决?其实现在的数
2021-03-18 19:36:27
1386
2
原创 Spring boot Mybatis-Plus数据库单测实战(三种方式)
单元测试长久以来是热门话题,本文不会讨论需不需要写单测,可以看看参考资料1,我个人认为写好单测应该是每个优秀开发者必备的技能,关于写单测的好处在这里我就不展开讨论了,快速进入本文着重讨论的话题,如何写好数据库单测。 为什么要写数据库单测? 相信大家是不是有这样类似的经历,在写完复杂的sql语句后,自信满满的提测,发现很大一部分Bug都是因为sql语句出现问题了,要么少写逗号,要么漏了字段,悔不当初哇,为啥写完不多测测呢! 没关系!这就教你如何写数据库单测,让你轻松告别数据库相关bug。1. 数
2020-10-26 14:11:48
5701
13
原创 Mybatis分页查询及日期比较
1. 背景 在我们进行Mybatis的开发的时候,会遇到数据量大和日期的问题,本文关注以下问题:怎么进行数据库分页查询,避免结果过于庞大,运行速度慢怎么进行日期比较,从不同精度比较两个日期的大小2. 样例数据库设计 假设存在这样一张user用户表,他的定义(MySql)如下:idnamebirthdaybigint(20)varchar(64)date...
2019-09-29 17:10:53
1772
1
原创 单元测试mockito参数匹配使用场景和注意项
最近一直刚开始接触单元测试,也用了mockito框架,刚开始使用的话会遇到一些疑问,也会存在一些误区,所以在此记录一下使用mockito之参数匹配的问题。1.测试类场景 首先,我们来看一下我们要测试的类,主要分为Person人员信息类,它的里面有age属性;还有一个Salary工资类,里面有Pseron属性,getSalary是根据人员的getData的返回值进行盘代孕来返回工资的数值有...
2019-08-07 18:53:04
5014
原创 iText7高级教程之构建基础块——2.添加内容到Canvas或Document
在这一章中,我们通过添加BlockElement和Image对象添加到RootElement实例的方式来创建PDF文档。RootElement是拥有两个子类的抽象类:Document和Canvas:Document是创建自定义PDF的时候默认的根元素。由它来管理很多高等级(high-level)的操作例如设置页面大小和旋转角度,添加元素和添加文本.........
2019-06-08 19:19:51
6539
1
原创 iText7高级教程之html2pdf——0.引言
Hello,everyone!好久不见,我又准备开新坑啦!旧坑基础块的介绍也同时更新,请大家放心,废话不多说,让我们赶紧开始吧。整体介绍 在本次教程中,我们将会学习如何使用pdfHTML来把HTML转换成PDF,这是iText 7的一个插件,如果你刚开始接触iText,那么可以直接跳跃到第一章。如果你之前使用过iText,那你可能记得旧的HTML转PDF的函数,那么你可以使用过废...
2018-06-26 17:03:27
6019
6
原创 CuteKe网站开发与安全5——真实IP地址与一次惨痛的经历
    本章讲述如何用java来获取真实IP地址及相关安全,然后讲述MongoDB配置不当引起的安全问题。 1. 获取真实IP地址1.1 何时获取IP地址    我的做法是和获取url的时候一样,在每个Controller执行之前来获取请求的IP地址,同样的,我们也会获取每个请求对
2018-06-03 19:02:49
767
原创 CuteKe网站开发与安全4——CDN优化与Spring Security
    之前CuteKe网站刚刚上线的时候访问我的网站需要10秒左右,当然这是让人受不了的,所以我先改变了每个页面不必要的资源文件(header和footer的Fragment中不必要的文件不需要),发现节约了5秒左右,但是还是不行,还可以进行优化,我们可以进行CDN优化,本章我们会介绍CDN的概念与Spring Security里面是怎么支持缓存的。...
2018-06-03 19:00:49
488
原创 CuteKe网站开发与安全3——HOST头攻击与防御
承接上文,记录的url不一致极大可能就是Host头攻击,所以本章内容围绕Host头攻击展开,讲述Host头攻击的原理、实践、和防御,让大家能对Host头攻击有足够的认识。1. Host头原理1.1 HTTP头——Host 众所周知HTTP报文由报文首部、空行(CR+LF)和报文主体组成,在报文首部中有一个字段,在具体是请求报文的首部字段:Host。 首部字段Host...
2018-06-03 18:57:55
1976
原创 CuteKe网站开发与安全2——记录URL与URL不符合
    我的CuteKe网站也上线一段时间了,之前也是做了访问日志,发现日志还是不利于观察,还是把它访问记录数据库化了。但是这几天却发现在记录URL的时候发现了一个问题。1. 记录URL    我们先来看看如何记录URL与IP地
2018-05-07 17:13:23
370
原创 CuteKe网站开发与安全1——CuteKe网站架构与更新记录
    我的CuteKe网站已经上线一段时间了,访问也慢慢上去了,我也决定开新坑啦,这个系列我会把在开发这个网站的所有遇到的问题和困难记录下,每一章的标题和内容围绕两个主题来,自己本身也在读信息安全的研究生,所以开发和安全都会兼顾,希望能帮助大家能安全开发网站。 再次强调
2018-05-07 17:09:34
502
原创 iText7高级教程之构建基础块——1.引入字体&实践
本章的例子,请参考我翻译的博文:iText7高级教程之构建基础块——1.引入字体,里面有详细的解释,有什么不懂得也可以评论或者私信我! ## 例子1:创建不嵌入的三种字体的文档 三种不同的字体来创建带有标题和作者的PDF文档,三种字体是:Helvetica、Times-Bold和Times...
2018-04-12 16:17:18
3802
2
原创 iText7高级教程之构建基础块——1.引入字体
    本章我们开始讲述一些使用不同字体展示标题和作者的例子,在这里会引入一些类,例如FontProgram和PdfFont。 本章内容偏长,请耐心观看,中文字体相关,请参考的我的博客和个人网站 官网上的例子的编码、字体、操作系统可能与我们本机的环境不一样,所以结果可能不一样,请以实际为准1.创建一个PdfFont对象&n.........
2018-04-10 21:28:08
13499
10
原创 iText7高级教程之构建基础块——0.类与接口综述
    这系列开始全面讲述iText7里面的构建块(blocks)以及一些其他应用。 本系列也是翻译自iText的官网,同时也会添加自己个人的见解,如果大家有什么不明白的,可以去官网查看 总的接口    当我们谈及iText7里面的基础的构建块(就是一些页面元素),首先会提到那些实
2018-04-06 16:22:58
1876
1
原创 我的个人网站CuteKe
    从大四在实习的时候就一直有做个人网站的想法,当时接触的是structs2,多亏两位师兄的耐心指导,我算基本上入了java web这个坑,研一的话事情比较繁忙,不过始终没有放弃这个想法,最后总算在今年开学后的一段时间完成了这个个人网站。下面讲一下这个网站的情况,如果不是对网站开发感兴趣的可以直接往后看~,我的个人网站地址是这里。网站开发情况...
2018-04-01 14:55:07
1632
原创 模糊测试工具Sulley开发指南(3)——整体介绍
    我们开始来讲一些Sulley里面的整体介绍,方便我们能系统地了解Sulley的架构,了解Fuzzing的思路,最后能生成py文件来具体运行fuzzing。这章主要是整体印象,下一章开始会讲具体的模块以及如何写代码。1.Sulley现在的情况    先说说现在的开发者情况,在githu
2018-03-30 15:54:37
5722
原创 window安全小知识1——autorun.inf相关知识
1.autorun.inf的作用 autorun.inf是我们电脑使用中比较常见的文件之一 ,其作用是允许在双击磁盘时自动运行指定的某个文件,或者改变磁盘的图标等。2.autorun.inf的例子和参数 最简单的例子如下:[autorun]ICON=CFCA.icoOPEN=autorun.exe 其中ICON是磁盘USB/DVD-CD显示的图标,
2018-01-14 18:44:04
1072
原创 itext7学习笔记杂谈系列3——在绝对位置添加文本
之前也是有人问过我如何使用itext7在pdf的绝对位置中插入文本呢?这几天我也是查阅了相关资料,把相关应用场景和解决方法给大家说一说。应用场景其实在pdf中的绝对位置中插入文本的应用场景还是很多的,最典型的应用场景如下: 合同模板采用PDF合同里面大部分文字已经写好,少部分内容由用户填写,例如姓名,身份证号等要填入的内容的绝对位置已经确定,这时候我们网页端或者其他终端接收用户填入的
2018-01-02 17:10:47
10172
10
原创 itext7学习笔记——第7章实践&example
本章的例子,请参考我翻译的博文:itext7学习笔记——第7章,里面有详细的解释,有什么不懂得也可以评论或者私信我! ## 例子1:创建PDF/UA文档 在第一章里面的fox和dog赛跑的基础上,我们创建PDF/UA标准的文档,代码如下:import com.itextpdf.kernel.pdf.*;import com.itextpdf.kernel.utils.PdfMerge
2017-12-24 16:51:42
2308
原创 itext7学习笔记——第7章
在1-4章中,我们使用了iText7来创建PDF文档。在5-6章中,我们操作和重用了现有的PDF文档。在这些章节中我们操作的PDF文档都是在ISO 32000规范下的,是PDF文件的核心标准。ISO 32000并不是PDF的唯一ISO标准,还有很多为了特定原因创建的子标准。
2017-12-23 22:02:38
8116
1
原创 C++ 动态对象数组的知识总结
默认构造函数 首先,我们来看一下是什么是默认构造函数,如下面一段代码:#include<iostream>#include<math.h>using namespace std;class Point{ double x, y;public: void print(); Point(double a=0,double b=1){x=a;y=b;} //默认构
2017-12-12 19:03:14
21212
9
原创 itext7学习笔记——第6章实践&example
本章的例子,请参考我翻译的博文:itext7学习笔记——第6章,里面有详细的解释,有什么不懂得也可以评论或者私信我! ## 例子1:缩放PDF 我们读取一个带有图片的PDF文档,生成新的文档,文档里面的内容是第一页缩小后的页面,第二页原始大小,第三页为放大后的页面,代码如下:import com.itextpdf.kernel.geom.AffineTransform;import
2017-12-07 19:43:37
2437
原创 itext7学习笔记——第6章
前言&nbsp;&nbsp;&nbsp;&nbsp;在本章中,我们做进行更多的文档操作功能介绍,但是采用的方法会和之前不一样。在之前的篇章中,我们会创建一个关联PdfReader和PdfWriter的PdfDocument实例,我们操作单一的文档。 &nbsp;&nbsp;&nbsp;&nbsp;在本章中,我们会至少创建两个PdfDocument实例:至少一个源文件对象和一个
2017-12-07 15:45:28
8968
4
原创 itext7学习笔记——第5章实践&example
本章的例子,请参考我翻译的博文:itext7学习笔记——第5章,里面有详细的解释,有什么不懂得也可以评论或者私信我! ## 例子1:添加注释和内容 我们读取一个带有表单的PDF文档,往里面添加文档注释、一些文本和一个新的复选框,代码如下:import com.itextpdf.forms.PdfAcroForm;import com.itextpdf.forms.fields.Pdf
2017-11-17 11:26:43
2419
iText7高级教程之html2pdf教程源码
2022-10-20
openvas report转excel库指导手册
2018-01-17
libdasm-beta
2017-07-24
使用JDBC连接目标数据库会影响对方机器的负载/性能么
2015-12-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人