gpt4 book ai didi

c# - itext 阅读 pdf 1s 作为向上箭头错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:04 26 4
gpt4 key购买 nike

出于某种原因,itextsharp 现在正在阅读 pdf,其中包含诸如 4123 之类的数字 4*23,其中 * 实际上是一个向上的箭头。不知道为什么会这样。请帮忙。

谢谢。

示例文件位于此处:https://dl.dropboxusercontent.com/u/116833/SAMPLE%20PDF.pdf

最佳答案

出现箭头的原因是该文件实际上试图误导根据第 9.10.2 节将字符代码映射到 Unicode 值的指南提取文本的文本提取器 PDF 规范 ISO 32000-1 而不会混淆那些喜欢 ActualText 标记内容序列条目的方法:前一种方法导致相信“3”是箭头,而后者被告知“3”是三。

这样做很可能是为了防止自动文本提取,同时允许手动复制和粘贴,因为 Adob​​e Reader 确实更喜欢 ActualText 标记的内容序列条目(因此,手动提取可以正常工作),而许多程序化提取器更喜欢前一种方法。

就我阅读规范的相关部分而言,它偏爱任何一种方式。

详情

例如查看第一部分编号: First part number

BT
/T1_1 1 Tf
10 0 0 10 69.1456 750.2834 Tm
(1 )Tj
ET
EMC
/Span <</MCID 14 >>BDC
BT
/T1_1 1 Tf
10 0 0 10 89.5488 750.2834 Tm
(2)Tj
/Span<</ActualText<FEFF0033>>> BDC
(3)Tj
EMC
(412109 )Tj
ET
EMC

如您所见,“3”标有 ActualText 条目,表明它确实是一个三(<FEFF0033> 是表示 Unicode 数字三的一种很长的方式)。

另一方面,字体 T1_1 提供包含映射的 ToUnicode

...
<30> <0030>
<31> <0031>
<32> <0032>
<33> <0018>
<34> <0034>
<35> <0035>
...

如您所见,虽然其他数字(0x30 是“0”,0x31 是“1”,...,0x39 是“9”)映射相同,但“3”,即 0x33,映射到 Unicode 代码指向 0x0018,和

U+0018 is the Unicode hex value of the character <control>, which is categorized as "control character" in the Unicode 6.0 character table.

"<control>" was previously named "CANCEL" in older versions of Unicode.

(cf. http://www.marathon-studios.com/unicode/U0018/Control)

在某些上下文中,此控制字符显示为向上箭头。

关于c# - itext 阅读 pdf 1s 作为向上箭头错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22671974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com