![]() |
1
1
提取为
在这种情况下 输出很简单:PDF声称 真的有文字吗!
因此,问题不是文本提取器,而是iText
更详细TT1型 用于此段落的 图尼科德 具有以下映射的条目:
一、 e.所有代码都映射到U+0020和U+00F9之间的Unicode值,这是一个Unicode范围,在这个范围内,屏幕截图中看到的希伯来语字符显然不在其中。更确切地说:除了空格、一些标点符号和数字(它们被正确提取)之外,这些值在U+00E0和U+00F9之间,这是一个带有重音符号的拉丁字母及其类似字母所在的区域。
因此,PDF创建工具可能已经将到Windows-1255代码页的映射放到 图尼科德 地图。显然是错误的 映射必须包含到Unicode的映射。 图尼科德 映射是正确的,您仍然需要使用反向希伯来语输出。这确实是iText 5.x文本提取的一个限制,它对RTL语言没有特殊的支持。因此,您必须自己更改结果字符串中字符的顺序。 |
![]() |
2
1
首先,最合适的希伯来语字节字符集是“ISO-8859-8”(比windows-1255更好)。试着玩这个。另外,我会尝试使用字符集UTF-8提取字符串。 有一个开源java库MgntUtils,它有一个实用程序,可以将字符串转换为unicode序列,反之亦然:
此代码的输出为:
这是这个类的javadoc StringUnicodeEncoderDecoder 如您所见,希伯来语的Unicode符号是U+05**,其中第一个希伯来语字母(Alef-×)是U+05d0,最后一个希伯来语字母(Tav-×)是U+05ea。 Maven Central 或者在 Github 所以我首先要做的是得到原始字符串并将其转换为unicode序列,然后看看实际得到了什么。如果数据不正确,则尝试提取字节并用UTF-8构建字符串。无论如何,我强烈建议使用这个实用程序,因为它帮助了我很多次。 |
![]() |
shady · 根据Drupal 7中的语言切换样式 7 年前 |
![]() |
javadroid · RecyclerView从右向左增长元素 9 年前 |
![]() |
Phil · 我的括号与阿拉伯语文本的关系应该在哪里? 9 年前 |
![]() |
Eitan · 带有约束和RTL的UIScrollView的奇怪行为 11 年前 |
![]() |
Jen · IE7 RTL浮动右内侧浮动左 12 年前 |
|
James063 · 从右到左括号显示错误 12 年前 |