1. itext7史上最全实战总结 1.1. 前言 最近有个需求需要我用Java手动写一份PDF报告,经过考察几种pdf开源代码,最终选取了itext7,此版本为7.1.11,由于发现网上关于该工具的博文比较少,特别是实战博文几乎没有,在我踩完各种坑 干货 itext7语义本身和前端css很像,所以有点前端基础还是比较容易掌握的 1.4.1. Html段落转Pdf段落 我们可能遇到把一段Html文本转换成itext7的段落放进来,此时需要用到它的htmlToPdf模块,该模块对应POM <! 如下是我的处理例子供参考,我把输入html内容样式进行了一定修改后转成itext7组件,这里特别提心,html转过来的itext7组件可能会不支持部分样式的修改,所以需要在html中进行css样式的添加
static class MyEventListener implements IEventListener { private List<Rectangle> rectangles = new ArrayList<>(); @Override public void eventOccurred(IEventData data, EventType type) { if (type == EventType.RENDER_TEXT) { TextRenderInfo renderInfo = (TextRenderInfo) data; Vector startPoint = renderInfo.getDescentLine().getStartPoint(); Vector endPoint = renderInfo.getAscentLine().getEndPoint(); float x1 = Math.min(startPoint.get(0), endPoint.get(0)); float x2 = Math.max(startPoint.get(0), endPoint.get(0)); float y1 = Math.min(startPoint.get(1), endPoint.get(1)); float y2 = Math.max(startPoint.get(1), endPoint.get(1)); rectangles.add(new Rectangle(x1, y1, x2 - x1, y2 - y1)); } } @Override public Set<EventType> getSupportedEvents() { return new LinkedHashSet<>(Collections.singletonList(EventType.RENDER_TEXT)); } public List<Rectangle> getRectangles() { return rectangles; } public void clear() { rectangles.clear(); } } static class MyCharacterEventListener extends MyEventListener { @Override public void eventOccurred(IEventData data, EventType type) { if (type == EventType.RENDER_TEXT) { TextRenderInfo renderInfo = (TextRenderInfo) data; for (TextRenderInfo tri : renderInfo.getCharacterRenderInfos()) { super.eventOccurred(tri, type); } } } }
iText7 是一个功能强大的 PDF 操作库,支持多种 PDF 操作,包括表单填充、加密、数字签名等。 本文将介绍如何使用 iText7 在 C# 中填充 PDF 表单,并将其设置为只读,同时解决可能遇到的常见问题。 2. 环境准备 2.1 安装 iText7 在项目中添加 iText7 的 NuGet 包: dotnet add package itext7 --version 9.1.0 dotnet add package 参考资料 •Adobe Acrobat 表单字段属性 •iText7 官方文档 •博客园:iText7 使用指南 7. 总结 通过本文的介绍,可以使用 iText7 在 C# 中轻松实现 PDF 表单的填充和只读设置。iText7 提供了强大的 PDF 操作功能,适用于各种复杂的 PDF 处理场景。
iText7 是一个功能强大的 PDF 操作库,支持多种 PDF 操作,包括将 HTML 转换为 PDF。 通过 iText7 的pdfHTML扩展模块,可以轻松实现 HTML 到 PDF 的高质量转换。 本文将详细介绍如何在 C# 中使用 iText7 将 HTML 转换为 PDF,并提供代码示例和注意事项。 2. 环境准备 2.1 安装 NuGet 包 在项目中添加 iText7 和 pdfHTML 的 NuGet 包: dotnet add package itext7 --version 9.1.0 dotnet 总结 通过本文的介绍,您可以使用 iText7 在 C# 中轻松实现 HTML 到 PDF 的转换。iText7 提供了强大的功能,适用于各种复杂的 PDF 生成场景。 可以高效地将满足各种业务需求。
iText7 是一个功能强大的 PDF 操作库,支持多种 PDF 操作,包括表单填充、加密、数字签名、分割与合并等。 本文将通过实战,详细介绍如何使用 iText7 在 C# 中处理 PDF 文件,帮助快速上手并解决常见问题。 2. 环境准备 2.1 安装 iText7 dotnet add package itext7 --version 9.1.0 dotnet add package itext7.font-asian --version 安装 iText7 的字体支持包: dotnet add package itext7.font-asian 2. 总结 通过本文的实战案例,您可以使用 iText7 在 C# 中轻松实现 PDF 表单填充、文件合并、分割和加密等操作。iText7 提供了强大的功能,适用于各种复杂的 PDF 处理场景。
iText7仓库地址[5] iText 7 与iText 5是两个不同的体系。 iText 5已经暂停维护, iText 5与iText 7都分为商业版和社区版 itxt7和itext5对比[6] 开发文档[7] 地址:https://github.com/itext/itext7 iText5仓库地址: https://github.com/itext/itextpdf [4] iText 7官网: https://kb.itextpdf.com/home/it7kb [5] iText7 仓库地址: https://github.com/itext/itext7 [6] itxt7和itext5对比: https://itextpdf.com/en/products/features [
转眼间,我写iText7系列已经有一年多了,还记得最开始的时候是因为兴趣才翻译iText,不过随着慢慢翻译文章才发现iText的强大之处,最近也是调研了整个java PDF开源库的生态圈 可以访问iText GitHub 能方便地加入你的数据处理中,详情参阅参考资料7 2.2.3 文档例子比拼 最后看一下两者提供的文档: iText: 官网提供的资料很多 出版了几本电子书,最新的iText7 Java 7/JDK 1.7 具体发展历史图: 图2. iText发展历史图 各个版本的比较: 图3. iText各个版本比较图 具体的版本更新,可以访问官网 3.3 iText7 及各个插件版本 iText7有很多插件,能帮助我们完成各种功能,具体的版本号如下: 图4. iText7及各个插件版本 4.
itext7好像是最新版本,这种方式适合于维护PDF模板然后动态添加内容,有需要的小伙伴可以了解一下。 而且itext7更多用于需要去维护PDF模板的场景,并不适合我本次的需求。所以我最终使用html2canvas+jsPDF的方式来实现。
对于这个pdf我进行处理,首先是在nuget 里面搜索 itext 进行安装,使用itext7。
仓库如下 https://github.com/itext/itext7 备注:iText 5 与 iText 7都是收费的,使用时需要购买版权。虽然收费,但是值得拥有。
iText目前有两套版本,分别是iText5和iText7。iText5应该是网上用的比较多的一个版本。iText5因为是很多开发者参与贡献代码,因此在一些规范和设计上存在不合理的地方。 iText7是后来官方针对iText5的重构,两个版本差别还是挺大的。不过在实际使用中,一般用到的都比较简单的 API,所以不用特别拘泥于使用哪个版本。
/en itextpdf 官方文档:https://kb.itextpdf.com/home/it7kb itextpdf 官方 github 地址:https://github.com/itext/itext7
artifactId> <version>1.5.0</version> </dependency> #升级日志 重点修复fastjson漏洞,建议大家尽快升级;另外采用openpdf重构了PDF导出功能,移除了itext7
或者直接在mavan中引入坐标地址 https://github.com/itext/itext7同时itext也有收费的版本 还有一个.net的itext版本代码import java.io.File
itext7 :iText 7代表了想要利用利用好 PDF 的开发人员的更高级别的 sdk。
导出环节通过构建统一的AST抽象语法树,将编辑后的内容转化为标准化的抽象语法树结构,再通过格式渲染器实现向Word(POI)、PDF(iText7)、Markdown等格式的无损转换,解决跨格式转换过程中的样式丢失
本文提供了使用三个库的示例:iText7、Aspose.PDF 和 PdfSharpCore。