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的通用方法),自己实现对应的逻辑即可,比如直接创建
PdfWriter和Document对象来生成文件。
方案2:直接在iText官方示例仓库中运行代码
- 克隆iText的官方示例仓库(包含所有
com.itextpdf.samples包的代码) - 将仓库导入NetBeans(因为是Maven项目,NetBeans可以直接识别)
- 在项目中找到
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




