使用pdfCalligraph打印印地语字体报未知产品错误如何修复?
pdfCalligraph未知产品报错解决方案
报错说明
你遇到的报错核心是iText商业扩展模块未注册触发的校验异常:
iText.Commons.Exceptions.UnknownProductException: 'Product pdfCalligraph is unknown. Probably you have to register it'
印地语属于复杂书写系统,需要依赖pdfCalligraph模块完成连字、排版逻辑处理,调用该模块渲染印地语文本时,iText会先校验模块是否完成授权注册,未注册就会抛出上述异常。
解决步骤
- 首先确认你已获取pdfCalligraph的合法授权,该模块是iText的付费商业扩展,需单独采购授权,测试场景可申请30天官方免费试用授权
- 所有iText操作执行前,先加载包含pdfCalligraph授权的许可文件,对应代码示例如下:
(C#版本)
(Java版本)// 需引入iText.Licensing.Base命名空间 LicenseKey.LoadLicenseFile("你的授权文件本地路径/itext-licensekey.xml");// 需引入com.itextpdf.licensekey.LicenseKey类 LicenseKey.loadLicenseFile("你的授权文件本地路径/itext-licensekey.xml"); - 加载完成后可通过如下代码校验模块是否注册成功:
返回bool calligraphAvailable = ProductInfoFactory.Instance.IsProductRegistered(PdfCalligraphProductInfo.PRODUCT_NAME);true则代表模块激活成功,此时再执行印地语段落添加操作即可正常运行。
常见问题排查
- 确认项目中pdfCalligraph模块版本和iText Core版本完全一致,跨版本混用会导致模块无法被识别
- 确认授权文件未过期、读取路径正确、应用进程有对应文件的读取权限
- 不要使用破解版或非官方修改的pdfCalligraph模块,这类版本存在隐藏校验逻辑,即使临时绕过注册,也可能在生成PDF时随机出现内容损坏、水印嵌入等问题
内容的提问来源于stack exchange,提问作者shivarsenthil
相关产品推荐
相关产品推荐

