PDF 到 Unicode CMap 字形映射

发布于 2024-12-09 23:11:51 字数 2022 浏览 0 评论 0原文

有没有办法获取 PDF toUnicode 表中未提供的字符 unicode? 或者我在映射角色时错过了什么?

我找不到代码点 <02DD>它将映射到 T(大写)字符 <0054>。 我想会有办法获取字符,因为预览(Mac APP)可以搜索文本?我想知道我哪里错过了????

/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<< /Registry (Adobe)
/Ordering (UCS) /Supplement 0 >> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
57 beginbfchar
<0001> <0020>
<0002> <0021>
<0003> <0026>
<0004> <2019>
<0005> <002C>
<0006> <002D>
<0007> <002E>
<0008> <003A>
<0009> <003F>
<000A> <0040>
<000B> <0041>
<000C> <0042>
<000D> <0043>
<000E> <0044>
<000F> <0045>
<0010> <0046>
<0011> <0047>
<0012> <0048>
<0013> <0049>
<0014> <004A>
<0015> <004B>
<0016> <004C>
<0017> <004D>
<0018> <004F>
<0019> <0050>
<001A> <0052>
<001B> <0053>
<001C> <0054>
<001D> <0055>
<001E> <0057>
<001F> <0059>
<0020> <2018>
<0021> <0061>
<0022> <0062>
<0023> <0063>
<0024> <0064>
<0025> <0065>
<0026> <0066>
<0027> <0067>
<0028> <0068>
<0029> <0069>
<002A> <006A>
<002B> <006B>
<002C> <006C>
<002D> <006D>
<002E> <006E>
<002F> <006F>
<0030> <0070>
<0031> <0072>
<0032> <0073>
<0033> <0074>
<0034> <0075>
<0035> <0077>
<0036> <0079>
<0037> <007A>
<0038> <FB01>
<0039> <00FC>
endbfchar
endcmap CMapName currentdict /CMap defineresource pop end end

Is there anyway to get a character unicode that didn't provided in PDF toUnicode table?
or did I miss something when mapping the character?

I can't find code point <02DD> which will map to a T (uppercase)character <0054>.
I think there will be a way to get the character, cause Preview (Mac APP) can search the text? I wonder where did I miss??????

/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<< /Registry (Adobe)
/Ordering (UCS) /Supplement 0 >> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
57 beginbfchar
<0001> <0020>
<0002> <0021>
<0003> <0026>
<0004> <2019>
<0005> <002C>
<0006> <002D>
<0007> <002E>
<0008> <003A>
<0009> <003F>
<000A> <0040>
<000B> <0041>
<000C> <0042>
<000D> <0043>
<000E> <0044>
<000F> <0045>
<0010> <0046>
<0011> <0047>
<0012> <0048>
<0013> <0049>
<0014> <004A>
<0015> <004B>
<0016> <004C>
<0017> <004D>
<0018> <004F>
<0019> <0050>
<001A> <0052>
<001B> <0053>
<001C> <0054>
<001D> <0055>
<001E> <0057>
<001F> <0059>
<0020> <2018>
<0021> <0061>
<0022> <0062>
<0023> <0063>
<0024> <0064>
<0025> <0065>
<0026> <0066>
<0027> <0067>
<0028> <0068>
<0029> <0069>
<002A> <006A>
<002B> <006B>
<002C> <006C>
<002D> <006D>
<002E> <006E>
<002F> <006F>
<0030> <0070>
<0031> <0072>
<0032> <0073>
<0033> <0074>
<0034> <0075>
<0035> <0077>
<0036> <0079>
<0037> <007A>
<0038> <FB01>
<0039> <00FC>
endbfchar
endcmap CMapName currentdict /CMap defineresource pop end end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

反目相谮 2024-12-16 23:11:51

在未提供 ToUnicode CMap 的情况下,有多种查找值的策略,但没有一个是理想的。

您可以检查字体的编码,看看它是否是标准的,如果是,那么您“可能”很幸运,假设该字体没有说谎。

您可以对 CIDFonts 的排序和注册表执行相同的操作。

如果失败,您可以尝试将字符代码视为 Unicode 代码点。这些都不能保证有效。

您还没有说出为什么您希望找到字符代码 0x02DD 的映射。

请注意,ToUnicode CMap 不映射到字符,而是映射到 Unicode (UTF-16 IIRC) 代码点。

也许您可以将整个 PDF 文件放在某个地方?查看位很难弄清楚发生了什么。

There are numerous strategies for finding a value when no ToUnicode CMap is provided, none of them are ideal.

You can examine the Encoding of the font to see if its standard, if it is then you 'might' be in luck, assuming that the font isn't lying.

You can do the same with the Ordering and Registry of CIDFonts.

Failing that, you can try treating the character code as a Unicode code point. None of these are guaranteed to work.

You haven't said why you expect to find a mapping for the character code 0x02DD.

Note that ToUnicode CMaps don't map to characters, they map to Unicode (UTF-16 IIRC) code points.

Maybe you could put the entire PDF file somewhere ? Looking at bits makes it hard to figure out what's going on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文