2011-06-16 32 views
2

如果PDF中的字體類型爲Type0,我無法搜索內容。 PDF解析它返回一些垃圾字符串給我。在Type0字體中,我也無法掃描PDF內容(CGPdfContentStreamRef)。任何人有這方面的一些先前的知識,請幫助我。PDF解析導致我麻煩的Type0字體(IOS應用程序)?

在Apple開發者文檔中,我看到Apple只支持3種類型的PDF字體。

  1. kCGFontPostScriptFormatType1 = 1,
  2. kCGFontPostScriptFormatType3 = 3,
  3. kCGFontPostScriptFormatType42 = 42

(參考CGFontReference)

是這樣嗎?

+0

你問了不止一個問題,也許你可以問另外一個問題。你能解決這個問題嗎? – 2011-07-06 19:12:44

+0

? – lukya 2012-04-02 13:48:52

+0

直到現在我沒有得到任何解決方案哥們:( – 2012-04-04 04:39:14

回答

2

Type0字體直接引用字形(而不是字符),完全避免使用cmap。還要注意在鍵入0字體,文本使用兩個字節/八位字節每字形ID如下:

<000100020003> Tj 

將呈現字形1,2,然後字形3.

在字體的PDF字典裏通常一些ToUnicode引用包含將字形標識轉換回某些Unicode字符的映射的流。這是一個相當簡單的解析小文本文檔。

給出文本發出命令和ToUnicode流中的字形ID,您可以導出生成相同數據的Unicode字符串。

如果沒有ToUnicode ...你是你自己的。也許嵌入字體包含一個cmap(不太可能,這通常被剝離以節省空間),從而可以導出信息。但這可能太過牽強。