java - itext从pdf中获取特殊字母

标签 java pdf itext

我正在尝试从 pdf 电子书中提取重音单词。使用 itext 库时会产生最好的结果,但我无法从单词中获得重音。 示例:

побеђивање -应该显示为- побеђи́ва̄ње(缺少重音)

这些字母是西里尔塞尔维亚语。 我尝试了很多 ocr 解决方案,但它们都给出了不好的结果。有没有办法让我使用 itext 以 pdf 中的方式提取所有 pdf 数据。我知道这与 pdf 的工作方式有很大关系,而且这是一件很难得到的事情,但我确实需要这个,替代方法是重新输入所有数据。 pdf文件pdf example file

最佳答案

示例文档实际上包含一张大图像、一张扫描页面以及扫描打印字母顶部的不可见文本信息。此文本信息很可能是某些 OCR 过程的结果。

不幸的是,此文本信息已经缺少相关的重音符号。例如。第一个条目的文本

асталчнћ м дем. од астал.

添加为

(\340\361\362\340\353\367\355)Tj 0 Tc (\236)Tj
...

正如您所看到的,位置 1 和 4 使用了相同的字母 \340,而根据扫描的页面,匹配的打印字母之一有重音,而另一个则没有。

整个页面都会发生这种情况。

因此,任何常规文本提取尝试都将无法返回有问题的重音符号。您唯一的机会就是使用 OCR。

你说你

tried many of the ocr solutions but they all give bad results

您可能将 OCR 应用程序应用于 PDF 或其渲染版本。我建议您提取扫描的图像;这样您就可以获得所有的质量。 iText 可以帮助您提取图像。

关于java - itext从pdf中获取特殊字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30704296/

相关文章:

pdf - 批量转换并将裁剪后记转换为pdf

c# - 如何使用 iTextSharp 为页面添加边框?

java - 使用itext将文本文件转换为pdf时设置编码

html - PDF 和 HTML 中显示的字体不同

java - 想要查看 Eclipse 中一个 Java 对象使用的内存

java - 如何在不使用资源包的情况下翻译带有大量文本的java页面?

java - INSERT..RETURNING 在 JOOQ 中不起作用

java - 使用 junit @Rule、expectCause() 和 hamcrest 匹配器

java - 基本TCP通讯端口相关查询

node.js - 通过 node.js 和 socket.io 将 PDF.js View 流式传输给多人?