2011-10-17 80 views
2

有無論如何得到一個字符unicode沒有提供PDF到Unicode表? 或映射角色時我錯過了什麼?PDF toUnicode CMap字形映射

我找不到代碼點< 02DD>,它將映射到T(大寫)字符< 0054>。 我想會有一種獲得人物的方式,導致Preview(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 

回答

2

當沒有提供ToUnicode CMap時,有許多策略可以找到值,但它們都不是理想的。

您可以檢查字體的編碼,看看它的標準,如果是,那麼你「可能」是運氣,假設字體不說謊。

您可以對CIDFonts的排序和註冊表執行相同的操作。

如果做不到這一點,你可以嘗試治療的字符代碼爲Unicode代碼點。這些都不能保證工作。

您還沒有說爲什麼您希望找到字符代碼0x02DD的映射。

注意ToUnicode CMap的不映射到角色,它們映射到Unicode(UTF-16 IIRC)的代碼點。

也許你可以把整個PDF文件放在某個地方?觀察位使得很難弄清楚發生了什麼。