空的 Word 文檔為什麼會佔有十幾 KB 的空間?

而空的 txt 是0 kb。

高中老師神秘地解釋為美帝的陰謀論,求科普.

==2015.4.19 更新問題,題主特意去下了2013的office,來給各位個準話==

原題是建立在2007版本之上的。

題主試了其他版本以及一些知友的評論:

2007版本無論是doc或是docx是10kb

2013版本無論doc或是docx是0kb

不過也有例外的,真就不清楚了

想來真是神奇。。謝謝各位的科普回答!


你可以把 Word 文檔的擴展名 .docx 修改為 .zip,然後就可以解壓縮啦!

隨後你就會發現,裡面包含了一些比較基本的定義,例如 樣式 定義(樣式 是一種很方便的排版方法,具體用法你可以搜一下),像是 標題1 的字體是什麼,字型大小有多大,顏色是什麼之類的。

就算你的文檔是「空的」,沒有任何文本,還是會留下樣式信息的。

與之對應,文本文件是 100% 純天然文本,天然得除了你在 Windows 記事本 裡面輸入的文本以外,真的就沒有什麼了。所以如果你想知道一個文件裡面究竟有些什麼,那麼,用記事本探索吧!

Rev 1.0

新成就:獲得了三個贊。額,謝謝大家!

剛剛下課,吃完蓋澆飯,做做飯後運動什麼的。

好的,我們來實踐一下。

首先,打開 Microsoft Office Word,什麼都不寫,直接保存,然後你應該就可以拿到一個 12KB 的文件了。

然後修改擴展名(沒看到後面的 .docx?請自行搜索如何顯示擴展名。)(請選擇性忽略 Images 文件夾,它跑錯片場了。)

解壓縮

然後直奔主題

看到了一些文件。所以說你發現了 docx 本質上其實就是一個 zip 壓縮包,裡面的文件和文件夾井井有條。實際上,不僅僅是 docx,還有 xlsx、pptx、vsdx 等等等等(msaccdb 除外),其實都可以用這種方法來探索的。用記事本打開其中一個文件試試

如果你想了解一下什麼是XML,請自行搜索。我在這裡只是想向大家分享一個探索和發現的過程。

所幸 IE 為我們提供了一種很便捷的瀏覽方式。我們打開 IE

然後把剛才的 XML 文件拖進去

然後……

是的!你可以更加清晰地了解這個文檔的內容了。你還可以把上面的內容和剛才記事本裡面的內容對比一下。

如果你有了解過 XML,會發現 XML 其實是一種很開放的描述性語言,也就是說,它和 漢語、英語、C++、Java 一樣,都只是一個框架,之於你要在這個框架下面來表述什麼東西,其實和語言無關,而是是需要一些約定的。例如,如果你想知道對方晚飯吃的是什麼,你可以問:

Q: 你晚上吃的啥?

A: 我吃的蓋澆飯。

- 或 -

Q: What did you have for dinner tonight?

A: I had Gai Jiaofan.

而對於我們這裡見到的這個 [Content_Types.xml],為什麼會有這些 ContentType、PartName,而不是蓋澆飯?請自行搜索 開放式打包約定[Open Packaging Conventions ,OPC]。

即使你不知道什麼是 OPC ,這還是不妨礙你繼續對眼前的這個 docx 繼續進行探索。我們來打開 word 文件夾

然後在 IE 中打開 document.xml

先不管前面密密麻麻的 xmlns,你可以看看這裡

&
&

你可能已經猜到了,這裡的各種神縮寫

pg == page

Sz == Size

Mar == Margin

所以呢?這兩行其實定義了頁面的大小,還有頁邊距。

頁面寬 11906,高 16838,

頁面上邊距 1440,下邊距 1440,左邊距 1800,右邊距 1800,頁眉頂端到紙的邊界距離為 851,頁腳底端到紙的下邊界距離為 992。(如果你不知道什麼是頁眉和頁腳,請自行搜索。順便說一句,用起來很方便!)

不要問我為什麼知道這些犄角旮旯,我也是現場查的MSDN ||-_-

[c.f. pgSz element [Word 2003 XML Reference]]

[c.f. pgMar element [Word 2003 XML Reference]]

是不是少了點兒什麼?對,是單位。

這裡使用到的單位是 緹(tí)[twip] 。綈的本義是一種顏色,我在這裡摘錄一小段字典原文

(3)同本義 [oranged
red]

緹,帛丹黃色。――《說文》

緹,赤也。――《廣雅》

緹十重。――《後漢書·應劭傳》。注:「赤色繒也。」

赤緹用羊。――《周禮·草人》。注:「縓色也。」

四曰緹齊。――《周禮·酒正》。注:「成而紅赤。如今下酒也。」

為治齋宮河上,張緹降帷。――《史記·滑稽列傳》

所以我覺得「緹」的用來當長度單位的這種用法很有可能是微軟根據 twip 的發音音譯過來的。

微軟計算機詞典(奇怪……我怎麼會有這麼詭異的詞庫)中提到

twip

n. A unit of measure used in typesetting and desktop publishing, equal to one-twentieth of a printer』s point, or 1/1440th of an inch. See also point1 (definition 1).

也就是說,1 緹是 1/1440 英寸,差不多是 17.6389 微米的樣子。

那我們不妨來換算一下,注意要把微米再換算成厘米。

也就是頁面寬度為 21cm, 高度 29.7cm。

這就是一張標準 A4 紙的大小。它比 16開 作業本大一圈。

順帶一提,用過 Visual Basic 6.0 及其之下版本的筒子們應該都體會過在 緹 和 像素 之間相互轉換的痛苦酸爽。好在除了 NCRE 考級以外,VB6 已經在我們的生活中漸行漸遠了。

好的,我們的探索之旅到這裡差不多就要結束了。在結束之前,讓我們打開 styles.xml

這些代碼是什麼意思?你可以在 MSDN 上慢慢地搜索……

順帶一提,「標題1」的英文就是「Heading 1」。

如果這些尚不足以滿足你的好奇心……其實,你可以把 .zip 改回 .docx,然後在文檔裡面輸點兒東西,整點兒格式,插點兒圖片,然後再改成 .zip 並重新解壓。你也可以嘗試著使用記事本(或者 Notepad++,這個很好用!)對其中的一些文件進行修改,再重新打包。再或者,你可以用相同的方法來處理 Excel 文檔、PowerPoint 或者 Publisher 文檔,開始一段屬於你自己的探索之旅。

最後——我貌似忘記說了——Office 2007 及其以後版本的文檔格式使用的都是這種開放式打包約定,而在此之前,Office 使用的文檔類型(如 doc/xls/ppt)都是最一般的二進位形式。在手頭沒有任何資料的情況下,對這樣的文檔進行研究幾乎是不可能的。 @於拙 的答案中提供了一種使用 7-zip 來對二進位文檔進行拆解的做法。如果你感興趣的話,不妨一試~~

在十多年前,我們使用二進位的形式來保存文檔,也許是出於應用程序作者最樸實的想法——把內存裡面的內容原樣倒騰到硬碟裡面,也許是為了程序的性能考慮,也許是為了不讓是競爭對手能夠開發出一個功能類似,而且還能與自己的文檔格式兼容的應用程序。但我們現在可以看到的是,開放的程序和開放的數據表示正在為我們提供著更多的便利。

  • Howard 是一位好奇的用戶,他發現 2007 Office 版本中的新文件格式容器是一個 ZIP 文件。Howard 想親自弄個明白,因此他使用 ZIP 應用程序打開在 Word 2007 中創建的一個文檔。他發現有些文件看起來像 XML 文檔內容,有些圖像與他在原始文檔中看見的內容相一致。好奇的 Howard 非常感興趣,他在記事本中打開了其中一個 XML 文件,想看看 Word 究竟生成了什麼樣的 XML 文件。如此輕鬆地就看到了文檔的內部結構,他感到非常滿意,因此他將記事本和 ZIP 應用程序關閉,重新在 Word 中打開該文件以繼續操作該文檔。
  • Jan 需要在她的 Word 2007 文檔中更改文檔屬性。她在 ZIP 產品中打開新格式的文件,提取包含文檔屬性的 XML 項目,進行更改,將項目添加回容器中,然後保存並關閉該容器。隨後她在 Word 中打開該文檔,發現所有的內容仍在原來的位置,唯一的變化就是她對屬性所做的修改。

  • 一家顧問公司改變了徽標以反映其新使命。其 IT 部門接到了這項改變徽標的任務,而這個徽標位於伺服器中存儲的上千個文檔中。在以前版本的 Microsoft Office 中,需要逐一打開每個文檔來刪除舊的徽標並粘貼新的徽標,或者創建並測試一個複雜的自定義應用程序來自動完成這項任務。使用新的文件格式,IT 部門可以創建一個批處理,用於瀏覽文件結構以在媒體文件夾中找到圖形(此圖形在每個文檔中都相同),並將其換成新的圖形。現在,當文檔打開時,新的徽標將自動出現。

  • 法律公司必須保護他們的客戶數據以及他們自己的數據的機密性。按照常規,公司知道文檔(包括在 Word 中創建的文檔)存儲了多個屬性,其中有些屬性在文檔中是可見的,而有些屬性是隱藏的。這些屬性中有些可能包含客戶敏感信息和公司專有信息。經過試驗和錯誤排查,公司創建了一個刪除此信息的過程。但是,該過程很浪費時間,而且因為它要求用戶完全按照該過程操作,容易出錯。使用新的文件格式,IT 部門開發了一個簡單的批處理,用於遍歷文件夾結構以刪除包中的目標部件。現在,公司可以確信所有的敏感信息和專有信息都已安全地從文檔中刪除了。

  • Denise 正在她的碩士論文中進行最後的更改。添加目錄索引之後,她準備進行最後的保存。然而,令她非常震驚的是,保存過程很快停止,並顯示了一條消息,告訴她文件看起來已被損壞。當 Denise 從震驚中平靜下來後,她意識到自己使用了新的文件格式。她將文本導入到一個新文檔中,重新附加圖片並重新設置格式和樣式部分,成功地重建了文檔。然後,她保存了新的文檔。

  • Elizabeth 是一位 Windows 2000 用戶,她運行的是 Office 2000,而且安裝了 2007 Office 版本中包含的轉換器。她能夠打開 Word XML 格式的文檔。另外,由於轉換器提供打開和保存支持,她還能夠編輯文檔並將其重新保存為新格式的文檔。

[c.f. Microsoft Office (2007) Open XML ]


因為它實際上不是空的,它裡面至少包含了作者的名字啦、頁面設置啦、字體等一系列的,你已經習以為常的東西。那些東西都是沒有預設值,所以全部都要存下來的。


@vczh 輪子哥說的沒錯。

事實上,由於Microsoft Word文檔(以下簡稱doc)採用的是類似於區塊狀的結構(Stream),我們可以用7-zip軟體將之解壓。

因為我沒有時間去查文檔,所以只能大概猜測一下:

WordDocument就是喜聞樂見的文件頭和正文了

Data還沒確定

Summary*應該是文件的一個概述

0Table儲存了一些用戶信息

所以說doc文件並不是只有正文內容,它還包含這些信息,因此即使正文內容為空,它依然要佔用一定空間。

---------

[MS-DOC]: Word (.doc) Binary File Format

這裡是Microsoft的文檔。


這麼說吧。相當於包裝盒的重量。

word這個包裝盒比較複雜,所以比較重


該死的美帝!我要把這事發到朋友圈。《Word中你絕對不知道的陰謀,已被老師揭露…大家轉起來,粉碎陰謀,揚我國威》


真心想問一下,你們老師是教什麼的? 。rar解壓縮看看就ok了,知道軟體的精妙就快快入坑吧 。畢業後你就能嘲諷你老師了(≧▽≦)


空氣很輕,可也是有質量的啊!


把word後綴名(指的是docx)改為zip,然後解壓縮,你自己看看裡面存了什麼 ??

眼瞎!只看了輪子的,直接忽略最高分。噗嗤!

我簡單研究了一下裡面文檔格式(其實也是公開的,就是內容太多了)。於是乎,就可以做一個簡單的數據和Word模版合併的軟體然後生成想要的文檔了。

So easy。

ps:你買一個420平米的房子想做籃球場,可是突然發現套內只有320平,還有各種水管煤氣罐。肯定是開發商陰謀陷害。趕緊發微信!


word裡面自帶有好多格式,這些都是有一定內存空間的。比如你用文本文檔寫字時他不會自動換行,但是word會。不要把換行這個事情當做理所當然


這個東西叫模板。。。是真的模板。。後綴是dot,一般打開來的word是通用模板,當然,你也可以自己定義。


推薦閱讀:

現在安卓有很多軟體提供自動上傳資料到郵箱裡面,為什麼幾乎全部上傳到gmail郵箱,國內郵箱都沒有呢?
你的手機上有哪些好用的軟體?
為什麼windows10在uefi引導下不能安裝更新?
比較好的家居設計軟體有哪些?
為什麼 2015 年 2 月 QQ 影音突然更新了新版本?

TAG:軟體 | MicrosoftOffice |