2017-02-23 99 views
0

假設我有一個標準的Word文檔document.doc。 在本文檔中,有超鏈接指向一些不再存在的服務器。我希望替換這個鏈接,因爲我必須對許多文件執行此操作,所以我希望有一種方法可以將它自動化。從Microsoft Word以外的Word文檔中替換超鏈接

如何將超鏈接從Microsoft Office外部更改爲其他內容?最好在Linux/Unix環境中。

我注意到,文件中的所有超鏈接都存儲在純文本,並且可以通過

strings document.doc | grep -i "hyperlink"

因此,我嘗試了簡單sed辦法像這樣的地方編輯查看:

sed -ir 's/www.badlink.com/www.goodlink.com/' document.doc 

然後我再次通過調用strings來確認超鏈接已更改。但是,在使用sed後,文檔無法通過MS Word打開 - 它表示文件已損壞。

那麼,有什麼簡單的方法可以通過Linux/Unix工具編輯Microsoft Word文檔中的鏈接嗎?在最糟糕的情況下,我想這個任務可以用一些Microsoft Office宏完成。如果這是唯一的可能性,那也沒關係。

回答

1

DOC不是RTF,你不能用簡單的文本編輯器編輯它。

,你可以很容易地使用VBA宏\一些其他語言中使用這個詞的Interop庫 - 做這個簡單的搜索&更換,以獲取更多信息檢查

https://msdn.microsoft.com/en-us/library/f1f367bx.aspx

現在,這取決於你的需要,如果你需要在服務器端做到這一點,你可以隨時使用OpenOffice或更好的Aspose(商業授權的第三方庫)來做這些事情(相當昂貴,但值得每一分錢 - 谷歌他們)

如果你需要這樣做在客戶端,並且(假設客戶使用word ,意味着它們正在運行Windows)可以使用VBA宏\ Office插件來完成。

相關問題