You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

ITEXT 7报错:com.itextpdf.samples包未找到,NetBeans运行示例遇问题

解决ITEXT 7 - Package com.itextpdf.samples not found报错

这个报错的核心原因很明确:com.itextpdf.samples是iText官方示例仓库专属的内部包,并不包含在iText7的正式Maven依赖中。你复制的示例代码依赖了这个包下的工具类(比如字体常量、通用示例工具),但你的本地Maven项目并没有这些代码,所以会报找不到包的错误。

下面给你几个可行的解决方案:

方案1:修改示例代码,移除对samples包的依赖

直接把示例中引用com.itextpdf.samples的部分替换成iText7核心API的代码:

  • 如果代码里用到了SamplesFontConstants这类字体常量类,你可以直接替换成自己的字体路径,比如加载支持印地语的字体文件:
    // 替换原SamplesFontConstants中的字体引用
    PdfFont hindiFont = PdfFontFactory.createFont("src/main/resources/NotoSansDevanagari-Regular.ttf", PdfEncodings.IDENTITY_H);
    
  • 如果用到了示例工具类(比如输出PDF的通用方法),自己实现对应的逻辑即可,比如直接创建PdfWriterDocument对象来生成文件。

方案2:直接在iText官方示例仓库中运行代码

  1. 克隆iText的官方示例仓库(包含所有com.itextpdf.samples包的代码)
  2. 将仓库导入NetBeans(因为是Maven项目,NetBeans可以直接识别)
  3. 在项目中找到HindiExample.java直接运行即可,所有依赖和工具类都已经配置好。

方案3:确保你的pom.xml引入了正确的iText7依赖

检查你的pom.xml,确保包含iText7核心及亚洲字体支持的依赖(版本建议用最新稳定版):

<dependencies>
    <!-- iText7核心PDF内核 -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>kernel</artifactId>
        <version>7.2.5</version>
    </dependency>
    <!-- iText7布局模块,用于文本排版 -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>layout</artifactId>
        <version>7.2.5</version>
    </dependency>
    <!-- 亚洲字体支持包,包含多种东亚/南亚字体 -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>font-asian</artifactId>
        <version>7.2.5</version>
    </dependency>
</dependencies>

额外提示:处理印地语时,一定要确保使用的字体支持Devanagari脚本(印地语使用的书写系统),font-asian依赖中已经包含了适合的字体,你也可以使用开源的Noto Sans Devanagari字体。

内容的提问来源于stack exchange,提问作者Manish Pandey

火山引擎 最新活动