2009-10-03 76 views
31

我一直在試圖編寫一個簡單的Markdown - > docx解析器/編寫器,但我完全卡在最後一部分,這應該是最簡單的:即將文件夾壓縮到一個。 docx Word或其他.docx讀者將會認識到。如何將WordprocessingML文件夾壓縮成可讀的docx

我的解析器編寫器實際上並不相關:如果我簡單地解壓縮任何舊的Word製作的* .docx,然後嘗試用常用的壓縮實用程序重新壓縮它,並將其提供給文件結尾docx,則會出現此問題。是否應該添加一些神祕的標題,還是需要特殊的OPC壓縮實用程序?或者是什麼?

我不那麼想要一個能夠做到這一點的工具,以找出應該在那裏的東西。它似乎獨立於WordprocessingML規範。

不用說,我對壓縮一無所知。我可以通過Google找到的所有東西都與您可以在商業中使用的奇特實用程序有關,但我正在製作一個可執行文件,它可能是GPLd或其他東西,並且應該可以處理任何事情。

+2

埃裏克·懷特是完全正確的推斷,我經歷了「最常見的問題圍繞手動荏苒Open XML文檔」。錯誤已經在問題的標題中可見:我正在壓縮包含該材料的文件夾,而不是將這些材料分別加入到一個zip文件中。在我看來,我可能已經猜到了這一點,因爲當然,如果你解壓縮一個.docx文件,你不會得到一個小目錄,而是將文件放在你正在執行的目錄中。謝謝! - 當然,這意味着我應該回到我上面提到的項目...... :) – applicative 2011-04-24 22:21:40

回答

1

使用的壓縮算法是「Zip」(Base 64)壓縮。

7zip似乎提供這個,雖然我沒有測試過它。

37

將手工壓縮在一起的最常見問題打開XML文檔是,如果您壓縮目錄而不是內容,它將不起作用。換句話說,[content_types] .xml文件以及word,docProps和_rels目錄需要駐留在zip文件的根目錄下。

+4

嗨,我是原始的海報,但我失去了這個S.O.帳戶,否則我會將此標記爲「正確答案」。你是對的,我的錯誤是壓縮包含所有材料的目錄,認爲我需要正確的咒語,壓縮的形式......一些微妙之處。如果我將所有相關文件(包括批量添加像word一樣的子目錄本身在根目錄級別)累積到一個zip文件,MSWord非常願意打開該文件。到目前爲止,我已經在OS X上嘗試了這一點,沒有發生任何事情我會更多地學習。 – applicative 2011-04-24 22:13:13

+0

由WinZip和WinRAR真正開放,自制的docx都是可讀的! – 2013-11-15 09:45:34

11

下面是步驟來解壓my.docx並重新拉鍊:

% mkdir unzipped 
% cd unzipped/ 
% unzip ../my.docx  
% zip -r ../rezipped.docx * 
% open ../rezipped.docx 
相關問題