gpt4 book ai didi

pdf - iTextSharp 4.1.6和5.x版本之间的区别

转载 作者:行者123 更新时间:2023-12-03 07:14:02 28 4
gpt4 key购买 nike

我们正在开发与系统一起使用的Pdf解析器。
要求是这样的,我们将所有信息存储在任何pdf文档中,并且应能够照此复制文档(与原始文档的更改最少)。

我们进行了一些谷歌搜索,发现iTextSharp是实现我们目标的最佳伴侣。
我们正在使用.net开发我们的项目。

您可能已经猜到我在标题中提到的,需要对iTextSharp的特定版本(4.1.6与5.x)进行比较。我们知道4.1.6是具有LGPL/MPL许可证的iTextSharp的最新版本。 5.x版本是AGPL。

在选择LGPL版本之前,我们希望在两个版本之间有一个很好的比较,或者我们购买AGPL的许可证(我们不希望发布我们的代码)。

我浏览了iTextSharp中的修订版本,但我想知道是否存在任何内容,从而在版本之间进行了很好的比较。

提前致谢!

最佳答案

我是iText Software的CTO,所以就像Michaël在评论部分中已经answered一样,我同时还是最权威的信息来源和有偏见的信息来源。

有一个非常简单的比较表on the iText web site

该图表未涵盖文本提取,因此请允许我列出自iText 5以来的相关改进。

您可能还发现了this page

如果您想知道有关文本解析的错误修复和性能改进的信息,以下是更详尽的列表:

  • 5.0.0:文本提取:进行大修,以在用户空间中执行计算。即使文本或页面旋转了,这也使解析器能够正确确定换行符。
  • 5.0.1:重构了回调,因此随着渲染回调API的发展,方法签名无需更改。
  • 5.0.1:进行重构,以使外部用户可以更轻松地与内容流处理器进行交互。还重构了渲染监听器,因此文本和图像事件监听发生在同一接口(interface)中(减少了很多非增值复杂性)
  • 5.0.1:文本呈现器的新过滤功能。
  • 5.0.1:预览PDF内容的其他实用程序方法。
  • 5.0.1:添加了更高级的文本呈现器监听器,该监听器可以根据文本在页面上的物理位置
  • 来重建页面内容
  • 5.0.1:添加了对XObject Form处理的支持(现在可以解析通过PdfTemplate添加的文本)
  • 5.0.1:添加了对XObject Image回调的基本支持
  • 5.0.1:错误修复-某些页面方向的文本提取不正确
  • 5.0.1:错误修复-矩阵以错误的顺序连接。
  • 5.0.1:PdfTextExtractor:更改了默认的渲染监听器(新的位置感知策略)
  • 5.0.1:GraphicsState的 setter/getter
  • 5.0.2:对文本提取功能的接口(interface)的重大重构:例如引入类PdfReaderContentParser
  • 5.0.2:CMapAwareDocumentFont:进行调整以使处理准无效的PDF文件更加可靠
  • 5.0.2:PdfContentReaderTool:空指针处理,再加上一些放置适当的刷新调用
  • 5.0.2:PdfContentReaderTool:显示有关资源条目的详细信息
  • 5.0.2:PdfContentStreamProcessor:进行调整,以使嵌入式图像不会引起解析问题,并且不会改善EI检测
  • 5.0.2:LocationTextExtractionStrategy:固定的反并行算法,加上负的字符间偏移量。更改为文本提取策略,该策略首先构建文本模型,然后计算级联需求。
  • 5.0.2:调整线段实现;优化Bruno对文本提取所做的更改;例如:引入了MarkedContentInfo类。
  • 5.0.2:对文本提取功能的接口(interface)的重大重构:例如引入类PdfReaderContentParser
  • 5.0.3:添加了以用户单位
  • 获取图像区域的方法
  • 5.0.3:更好地解析嵌入式图像
  • 5.0.3:在解析ToUnicode流时,添加了对开始/结束序列的额外检查。
  • 5.0.4:数组中的内容流应像由空格
  • 分隔一样进行解析
  • 5.0.4:公开CTM
  • 5.0.4:重构以将嵌入式图像处理引入其自己的类。如果未应用过滤器,则添加了对图像数据的解析(在某些PDF中,图像数据的末尾与EI运算符之间没有空白)。最终,最好是实际解析图像数据,但这将需要对iText解码器进行相当大的重构(以便从流而不是已知长度的byte []进行工作)。
  • 5.0.4:处理多级过滤器;纠正将空格作为嵌入式图像流的第一个字节拉出的错误。
  • 5.0.4:将流过滤器应用于嵌入式图像。
  • 5.0.4:PdfReader:公开用于任意字节数组(而不是仅流)的过滤器解码器
  • 5.0.6:CMapParser:修复了读取损坏的ToUnicode cmap的问题。
  • 5.0.6:处理稍微变形的嵌入式图像
  • 5.0.6:CMapAwareDocumentFont:某些PDF的差异图大于256个字符。
  • 5.0.6:性能:缓存文本提取中使用的字体
  • 5.1.2:PRTokeniser:使查找startxref的算法的内存使用效率更高。
  • 5.1.2:RandomAccessFileOrArray:改进了对无法映射的大文件的处理
  • 5.1.2:CMapAwareDocumentFont:如果未初始化映射,则修复NPE(我宁愿使用垃圾字符,而不是在路上抛出意外异常)
  • 5.1.3:重构将过滤器应用于流的方式,调整解析器,使其可以处理多级过滤器
  • 5.1.3:images:允许正确解码1bpc位掩码图像
  • 5.1.3:图像:添加jbig2流以通过
  • 5.1.3:images:处理解码参数中的null和间接引用,如果无法解码图像,则抛出异常
  • 5.2.0:更好的错误消息和更好的处理大小为零的文件,并尝试读取文件末尾的内容。
  • 5.2.0:取消了使用内存映射要求文件小于2GB的限制。
  • 5.2.0:在RandomAccessFileOrArray中避免NullPointerException
  • 5.2.0:将pdfContentStreamProcessor中的实用程序方法设为私有(private),并阐明了
  • 类的有状态性质
  • 5.2.0:LocationTextExtractionStrategy:对字符串长度进行边界检查并进行重构,以使代码更易于阅读。
  • 5.2.0:更好地处理图像中的色彩空间字典。
  • 5.2.0:改进了对不适当的嵌入式图像内容的处理。
  • 5.2.0:在我们绝对需要它们之前,请不要解码内联图像流。
  • 5.2.0:避免未提供资源字典的NullPointerException。
  • 5.3.0:LocationTextExtractionStrategy:旧的比较方法导致Java 7中的运行时异常
  • 5.3.3:合并文本上升参数
  • 5.3.3:逐字形显示字形信息
  • 5.3.3:错误修复:文本到用户空间的转换已多次应用于sub-textrenderinfo对象
  • 5.3.3:错误修正:更正基线计算,因此不包括最终字符间距
  • 5.3.4:向LocationTextExtractionStrategy添加了低级过滤钩子(Hook)。
  • 5.3.5:修复了PRTokeniser中的错误:处理数字在流末尾的情况。
  • 5.3.5:出于性能原因,在PRTokeniser中将StringBuffer替换为StringBuilder。
  • 5.4.2:在LocationTextExtractionStrategy中添加了isChunkAtWordBoundary()方法,以检查是否应在上一个块和当前块之间插入一个空格字符。
  • 5.4.2:向LocationTextExtractionStrategy添加了getCharSpaceWidth()方法以获取空格字符的宽度。
  • 5.4.2:向LocationTextExtractionStrategy添加了getText()方法以获取当前块的文本。
  • 5.4.2:向SimpleTextExtractionStrategy添加了appendTextChunk(()方法)以公开附加过程,以便子类可以从文本解析操作之外添加文本。
  • 5.4.5:为PDF解析器添加了MultiFilteredRenderListener类。
  • 5.4.5:添加了GlyphRenderListener和GlyphTextRenderListener类,用于处理每个字形,而不是处理文本块。
  • 5.4.5:在TextRenderInfo中添加了方法getMcid()。
  • 5.4.5:修复了内容流中许多内联图像时的资源泄漏
  • 5.5.0:CMapAwareDocumentFont:如果未定义字体空间宽度,则使用字体的默认宽度。
  • 5.5.0:PdfContentReader:显示空字典时避免异常。

  • 如果不升级,有些事情将无法执行。例如,您将无法执行 these slides中描述的操作。

    如果您查看 the roadmap for iText,您会发现我们将来将在文本提取上投入更多的时间。

    老实说:使用5年的版本不仅像重新发明轮子,还就像掉入我们过去5年中遇到的每一个陷阱一样。我可以向您保证,购买许可证会便宜一些。

    关于pdf - iTextSharp 4.1.6和5.x版本之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24326767/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com