IRONSOFTWAREHOME

可搜索PDF中非拉丁文字的乱码问题

Curtis Chau
Curtis Chau
Updated: 2026年7月3日

使用IronOCR识别文档,将其保存为可搜索的PDF时,识别的文本在屏幕上看起来正确,但在复制或提取时可能会变为乱码。 这发生在PDF的字体中没有您识别脚本的字形时,通常发生在非拉丁和复杂脚本上。解决方法是使用支持您的脚本的字体保存PDF; 下面的例子使用了古吉拉特文。

识别的文本没有匹配的字符映射,所以即使OCR正确读取了页面,复制的文本仍然是乱码。 仅限拉丁文字的字体无法解决此问题:您提供的字体必须覆盖您实际识别的脚本。

前提条件

  • 对应您脚本的IronOCR语言包。 此示例使用OcrLanguage.GujaratiBest。
  • 支持您目标脚本的TrueType字体。 此示例使用AnekGujarati,可从Google Fonts免费下载。
  • 该字体的完整文件路径。
请注意: 需IronOCR版本2026.3.3或更高。

解决方案

1. 放置一个覆盖您脚本的字体

找到一个包含您目标脚本字形的字体,放置在计算机上,并记录其完整路径。 对于古吉拉特文的例子:

C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf
Text

AnekGujarati变量字体的文件名中包含逗号,所以要准确复制。 路径必须指向确切的字体文件。

2. 将字体传递给SaveAsSearchablePdf

在保存可搜索PDF时,将您的脚本支持字体的路径作为CustomFontFile(第3个)参数提供。 第4个参数是可选的CustomFontName标签; 如果省略它,IronOCR将使用字体文件的名称:

ocrResult.SaveAsSearchablePdf(
    strOutputFile,
    false,
    @"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf",
    "AnekGujarati");
C#

解决乱码提取的参数是第3个参数:字体文件,必须包含您OCR的脚本字形。 第4个参数仅仅是嵌入字体的名称,不影响脚本映射。 针对不同的文档,将第3个参数指向支持该脚本的字体。

3. 确认文本提取

打开生成的PDF并复制识别的文本以验证现在可以正确提取。 如果仍然显示乱码,几乎可以肯定提供的字体缺少您脚本的字形; 重新检查字体是否确实覆盖了它。

注意事项

  • **不限于古吉拉特文:**任何非拉丁或复杂的脚本在PDF字体不覆盖时都可能显示乱码的复制文本,包括天城文(印地语、马拉地语)、阿拉伯语、泰语以及中文、日文或韩文文本。
  • **每种脚本一个字体:**提供包含您识别脚本的字体。 来自Google的Noto字体家族是一个广泛的选项,拥有每种脚本的字体,如Noto Sans Gujarati、Noto Sans Devanagari和Noto Sans Arabic。
Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 6,262,020版本:2026.9刚刚发布

立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户