java - 从 itext5 升级到 itext5.2 的问题

标签 java itext etl

最近我们不得不从 itext 版本 5 升级到版本 5.2,因为后者支持中文。然而,新版本中的一个主要变化是它不再支持 PdfTextExtractor 类的构造函数中的 TextProvidingRenderListener 类。我们定制了一个类来利用此功能:

public class CustomLocationAwarePdfRenderListener
implements TextProvidingRenderListener
{
    public CustomLocationAwarePdfRenderListener( int lineAlignErrorAllowed)
    {
        this.lineAlignErrorAllowed = lineAlignErrorAllowed;
        reset();
    }

但是,现在无法使用此类和名为 lineAlignErrorAllowed 的属性,该属性是 CustomLocationAwarePdfRenderListener 构造函数的一部分。 lineAlignErrorAllowed 基本上充当扫描最小编号的参数。源之前的行被认为过于复杂。 任何有关此主题的帮助将不胜感激。

最佳答案

在意识到最新 itext 版本中的 LocationTextExtractionStrategy 类值得替代 TextProvidingRenderListener 后,设法解决了此问题。虽然这次我们不得不延长类(class)。唯一需要的其他更改是通过将 LocationTextExtractionStrategy 的实例传递给 getTextFromPage 来更改代码以使用现在静态的 PdfTextExtractor 类。在寻找最新的 itext API 引用文档时遇到了一些困难,但还是找到了 here最后。 (不知何故,它们显示的格式与常规 java API 文档不同,但人们可以接受这一点)。

关于java - 从 itext5 升级到 itext5.2 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36843610/

相关文章:

java - 如何重置默认启动器/主屏幕替换?

java - 将 logging.properties 文件更改为 Slf4j 中的不同路径

java - Pyspark 中的广播加入得到 OnOutOfMemoryError

image - 如何使用 iText 在文本下插入图像作为 pdf 背景?

java - iText:根据 ResultSet 更改页面尺寸

java - ArrayList .contains() 有时为真,有时为假

asp.net - iTextSharp生成PDF并直接在浏览器上显示

amazon-web-services - 数据工程-用于有效提取数据(AWS)的基础架构/服务

c# - JSON 结构化列分成多列

sql-server - SQL Server 存储过程转换为 SSIS 包