什么是rtf文件rtf文件簡介
什么是rtf文件rtf文件簡介
RTF是一種在不同操作系統(tǒng)下不同應(yīng)用軟件之間進(jìn)行文本和圖象信息交換的文件格式。下面是學(xué)習(xí)啦小編整理的什么是rtf文件,歡迎閱讀。
什么是rtf文件
也稱富文本格式(Rich Text Format, 一般簡稱為RTF),意為多文本格式是由微軟公司開發(fā)的跨平臺(tái)文檔格式。大多數(shù)的文字處理軟件都能讀取和保存RTF文檔。[1] rtf是一種非常流行的文件結(jié)構(gòu),很多文字編輯器都支持它,vb等開發(fā)工具甚至還提供了richtxtbox的控件。
rtf文件簡介
以純文本描述內(nèi)容,能夠保存各種格式信息,可以用寫字板,Word等創(chuàng)建。
也稱富文本格式(Rich Text Format, 一般簡稱為RTF)是由微軟公司開發(fā)的跨平臺(tái)文檔格式。大多數(shù)的文字處理軟件都能讀取和保存RTF文檔。
首先它是一般來寫字板的默認(rèn)文檔之一,但除了它以外,Word、WPS Office、Excel等都可以打開RTF格式的文件。它的打開速度快,rtf是一種非常流行的文件結(jié)構(gòu),而且無損害的的一種格式。很多文字編輯器都支持它,vb等開發(fā)工具甚至還提供了richtxtbox的控件。編寫通用工具的程序員應(yīng)該考慮在自己的軟件中加入讀寫rtf文件的功能,這樣就需要對(duì)rtf的結(jié)構(gòu)有充分的了解。而現(xiàn)在最重要的信息發(fā)布手段莫過于www了,在編輯軟件中提供rtf到html的轉(zhuǎn)換也是程序員應(yīng)該考慮的事情。
rtf文件分析
結(jié)構(gòu)分析
rtf的結(jié)構(gòu)并不復(fù)雜,但內(nèi)容繁多,本文不可能一一說明,只能從總體上討論一下(如果想閱讀詳盡的rtf文檔,則可在internet上尋找或與筆者聯(lián)系。)每個(gè)rtf文件都是一個(gè)文本文件,顯示時(shí)由rtf閱讀器格式化。文件開始處是{
tf,它作為rtf文件的標(biāo)志是必不可少的,rtf閱讀器根據(jù)它來判斷一個(gè)文件是否為rtf格式。然后是文件頭和正文,文件頭包括字體表、文件表、顏色表等幾個(gè)數(shù)據(jù)結(jié)構(gòu),正文中的字體、表格的風(fēng)格就是根據(jù)文件頭的信息來格式化的。每個(gè)表用一對(duì)大括號(hào)括起來,當(dāng)中包含了很多用字符“”開始的命令。例如,某個(gè)顏色表如下:
{colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}
開始時(shí)用\colortbl標(biāo)明大括號(hào)內(nèi)是顏色表,接著是\red0\green0\blue0,登記了一種顏色,這種顏色的紅綠藍(lán)分量都為0。其它表依此類推。文件頭之后是正文,正文由版面格式化命令、文字和各種特殊命令組成。其中只有特殊命令用大括號(hào)括起來,而版面格式化命令和文字是“開放式”的,從而把文字和命令分離。文件結(jié)束時(shí)有一個(gè)“}”,和第一個(gè)“{”對(duì)應(yīng)。在整個(gè)文件中,“}”和“{”必須一一對(duì)應(yīng)。這種格式是rtf閱讀器和轉(zhuǎn)換器算法的基礎(chǔ)。
rtf格式還有一個(gè)特別之處,就是有些字符在命令中有特殊的含義,所以當(dāng)它們作為文本出現(xiàn)時(shí)需要在它們的前面加一個(gè)“\”,例如“\”本身就要表示為“\”。
算法分析
本節(jié)介紹的算法雖然是針對(duì)rtf的讀寫,但也是一般文件過濾器通用的方法,適用于各種格式文件之間的轉(zhuǎn)換。具體來說就是把各種文件都轉(zhuǎn)換成一種中間格式,再根據(jù)要求進(jìn)行顯示或轉(zhuǎn)換。其中有個(gè)原則是一定要遵守的:程序必須能過濾掉不認(rèn)識(shí)的格式。各種文件都有其特殊的格式,在轉(zhuǎn)換過程中不可避免會(huì)出現(xiàn)格式損失的現(xiàn)象,在算法中要考慮這種情況。對(duì)于rtf這類格式化文本文件來說,最重要的是要正確地顯示或轉(zhuǎn)換文件的大小、顏色、字體等風(fēng)格。因此,在程序中應(yīng)該用一個(gè)數(shù)據(jù)結(jié)構(gòu)把這些信息存起來,這個(gè)結(jié)構(gòu)就是所謂的中間格式,怎樣規(guī)定悉聽尊便。以下是其流程圖:
難點(diǎn)分析
一.中文的表示方式:在rtf中中文用命令的形式表示:“'內(nèi)碼”。內(nèi)碼就是漢字機(jī)內(nèi)碼。不過,請(qǐng)注意:rtf是文本文件,內(nèi)碼是用ascii碼來儲(chǔ)存的,必須把它轉(zhuǎn)換成數(shù)字才能使用。例如,“電子與電腦”在rtf中的形式是:
\'b5\'e7\'d7\'d3\'d3\'eb\'b5\'e7\'c4\'d4
二.圖片的問題:rtf中圖片以兩種方式存在:第一種方式是直接嵌入,以{\pict開始;第二種方式是作為ole對(duì)象嵌入,這時(shí)以{\object開始。當(dāng)rtf處理器能直接使用ole時(shí),rtf文件中提供了ole的數(shù)據(jù);否則,文件中直接提供圖片的數(shù)據(jù),以{\result開始。在使用中最常見的圖片格式是內(nèi)含dib bitmap的元文件(metafile),這種格式在sdk中沒有說明,而且在rtf中是以壓縮形式儲(chǔ)存的,所以在轉(zhuǎn)換時(shí)有一定困難。[2]
rtf文件特點(diǎn)
對(duì)普通用戶而言,RTF格式是一個(gè)很好的文件格式轉(zhuǎn)換工具,用于在不同應(yīng)用程序之間進(jìn)行格式化文本文檔的傳送。通用兼容性應(yīng)該是RTF的最大優(yōu)點(diǎn),但同時(shí)也就具有它的缺點(diǎn),比如文件一般相對(duì)較大(可能因?yàn)榍度肓思嫒莞鞣N應(yīng)用程序的控制符號(hào))、WORD等應(yīng)用軟件特有的格式可能無法正常保存等。
rtf文件標(biāo)準(zhǔn)
作為微軟公司的標(biāo)準(zhǔn)文件,早期外間需要數(shù)十美元向微軟付款,才能購買一本薄薄的RTF標(biāo)準(zhǔn)文件。不過隨著采用RTF格式標(biāo)準(zhǔn)的軟件愈來愈多,RTF格式也愈來愈普遍,微軟公司就把標(biāo)準(zhǔn)文件公開,放在網(wǎng)上供開發(fā)者下載?,F(xiàn)時(shí)可供下載的各個(gè)RTF版本標(biāo)準(zhǔn)文件如下:
RTF 1.9.1 specification (March 2008)
RTF 1.8 specification (April 2004)
RTF 1.6 specification (May 1999)
RTF 1.5 specification (April 1997)
RTF 1.3 and 1.5 specifications
RTF 1.0 specification (June 1992)
rtf文件格式
rtf格式作為一個(gè)標(biāo)準(zhǔn)應(yīng)該是統(tǒng)一的,但在某種情況下進(jìn)行擴(kuò)展是必要的。最明顯的例子是微軟的word,它有自己獨(dú)有的rtf命令。如果想使自己的軟件在技術(shù)上占有優(yōu)勢,也可以通過創(chuàng)造新的rtf命令來實(shí)現(xiàn)。例如,如果你希望在軟件中支持dhtml,則可在rtf中嵌入{dhtml或{java之類的命令。由于rtf閱讀器有過濾不認(rèn)識(shí)命令的功能,所以這樣做不會(huì)影響rtf文件的通用性。[3]
rtf文件軟件
RTF格式是許多軟件都能夠識(shí)別的文件格式。比如Word、WPS Office、Excel等都可以打開RTF格式的文件,這說明這種格式是較為通用的。這是一種類似DOC格式(Word文檔)的文件,有很好的兼容性,使用Windows“附件”中的“寫字板”就能打開并進(jìn)行編輯。使用“寫字板”打開一個(gè)RTF格式文件時(shí),將看到文件的內(nèi)容;如果要查看RTF格式文件的源代碼,只要使用“記事本”將它打開就行了。這就是說,你完全可以像編輯HTML文件一樣,使用“記事本”來編輯RTF格式文件。
看了什么是rtf文件的人還看了: