2016-11-05 64 views
0

我有我的臨時存儲.docx文件:轉換docx文件爲文本斯威夫特

let location: NSURL = NSURL.fileURLWithPath(NSTemporaryDirectory()) 
    let file_Name = location.URLByAppendingPathComponent("5 November 2016.docx") 

我現在想要做的是提取該文件中的文本。但我似乎無法找到任何轉換器或這樣做的方法。

我已經試過這樣:

let file_Content = try? NSString(contentsOfFile: String(file_Name), encoding: NSUTF8StringEncoding) 
    print(file_Content) 

但是它打印零。

那麼如何閱讀docx文件中的文本?

+0

你在調用'contentsOfFile:'時調用了什麼URL?不應該是'File_Name'?順便說一句 - 標準的做法是將方法和變量命名爲以小寫字母開頭。類名以大寫字母開頭。 – rmaddy

+0

@rmaddy是的,它應該是File_Name,只是一個複製和粘貼錯誤。 –

+0

你應該解決你的問題以避免混淆。 – rmaddy

回答

2

您的第一個問題是您如何從URL獲取字符串。 String(File_Name)不是將文件URL轉換爲文件路徑的正確方法。正確的方法是使用path函數。

let location = NSURL.fileURLWithPath(NSTemporaryDirectory()) 
let fileURL = location.URLByAppendingPathComponent("My File.docx") 
let fileContent = try? NSString(contentsOfFile: fileURL.path, encoding: NSUTF8StringEncoding) 

請注意許多變化。使用適當的命名約定。命名變量更清楚。

現在就是這樣的事情。這仍然不起作用,因爲docx文件是XML和其他文件的壓縮集合。您無法將docx文件加載到NSString。您需要使用NSData加載zip內容。那麼你需要解壓縮它。然後你需要瀏覽所有的文件並找到想要的文本。這遠不是微不足道的,它遠遠超出了單個堆棧溢出帖子的範圍。

+0

可能。但是要求這樣的推薦是堆棧溢出的主題。您需要使用Google。 – rmaddy

+0

不需要。您需要找到現有的庫以使用或查找其他語言的代碼並對其進行翻譯。 – rmaddy