2012-01-13 26 views

回答

1

如果您只需要從Word文檔獲取純文本,那很簡單。

假設你有一個NSData充滿了從Word的.doc數據...

從數據讀取一個UInt32的,在字節索引536這個數字,再加上512,是字節索引文本開始的地方。 (它通常始於2048年,但並非總是如此。)

從數據中的字節索引588讀取另一個UInt32。這個數字是文本中有多少個字符。

從這兩個UInt32中創建一個範圍,然後從該範圍內的數據中讀取文本。

UInt32 fcMin; 
[data getBytes:&fcMin range:NSMakeRange(536, sizeof(UInt32))]; 
UInt32 ccpText; 
[data getBytes:&ccpText range:NSMakeRange(588, sizeof(UInt32))]; 
NSData *textData = [data subdataWithRange:NSMakeRange(fcMin + 512, ccpText)]; 
NSString *textContent = [[NSString alloc] initWithData:textData encoding:NSUTF16LittleEndianStringEncoding]; 
+0

我在getBytes:range調用時發現錯誤,說無法識別的選擇器發送到intance ... – pneftali 2012-01-15 15:23:57

+0

@pneftali你確定你在調用NSData實例嗎?所有參數都是我使用的相同類型? – Isabel 2012-01-16 08:04:58

+0

DOC或DOCX格式有什麼區別? – Raptor 2012-03-13 09:45:20