簡體   English   中英

“ XML往返”對Word 2003文檔有什么影響?

[英]What are the effects of an “XML Roundtrip” on Word 2003 documents?

將Word 2003文檔保存為XML,然后再保存為XML,可以減小文件大小,並且可能還有更多我不知道的文件。 新文檔的WordML與舊文檔的差異僅顯示修訂版保存ID的差異。 那么, 往返過程中丟失了什么?

如果實際上什么都沒有丟失,那么如何解釋文件大小的數千字節呢?

以下只是一個猜測。

.doc文件實際上是OLE結構化的存儲 復合文件 后者是一種以明確定義的方式將多個流打包到單個文檔中的方法,並且該結構實際​​上非常接近文件中的文件系統-例如,它具有“扇區”和扇區分配表。 這種方法可以在不完全重寫的情況下就地編輯文檔文件。

但是,這種存儲方法會導致一些冗余,例如未使用的扇區。 往返文件時,可以有效地從頭開始重新創建它,因此可以消除任何此類冗余存儲偽像。

據我所知,Word除了在DOC文件中存儲文本和格式外,還存儲一些信息,例如用戶信息,文檔歷史記錄中的某些內容等。使用“文件>保存”時,這些信息會累積。 我想將其另存為XML並將其另存為DOC會刪除該信息。

如果我沒記錯的話,簡單的“另存為”已經減小了文件大小,並且我認為曾經有一些菜單項允許您保存比“文件>保存”版本小得多的DOC文件版本。 。

如果在十六進制編輯器中查看word文檔(.doc),您會發現有很多冗余的零塊。 很棒的格式,文檔!

無論如何,先保存為XML,然后再保存為doc,可能會擺脫掉數千個零字節。

如果您真的很好奇,只需在十六進制編輯器中打開兩個文件並運行差異算法,可以嘗試使用Hex Workshop和Hex Editor Neo。

我對一些較大的Word 2003文檔進行的實驗表明,將其另存為XML,然后另存為.doc,確實會導致文件稍小(但不是很大)。 如您所指出的那樣,rsidR屬性是不同的,但這並不能說明大小的減小,因為新的rsidR通常是相同的大小。

正如Danra所指出的,.doc文件的運行字節相同。 但是保存為.doc的較小文件也具有這種運行方式,因此我認為這是.doc二進制格式的產物,而不是攜帶信息的數據。 我盯着幾個往返的.doc文件,根本看不出外觀上的差異,支持這種差異不承載信息的想法。

檢查往返后創建的XML文件,顯示的主要區別是轉換為XML后沒有內容的幾個rPr(運行屬性)被刪除。 似乎可以節省下來,因為XML會刪除未使用的字符樣式和屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM