rtf檔案

rtf檔案

也稱富文本格式(Rich Text Format, 一般簡稱為RTF),意為多文本格式是由微軟公司開發的跨平台文檔格式。大多數的文字處理軟體都能讀取和保存RTF文檔。 rtf是一種非常流行的檔案結構,很多文字編輯器都支持它,vb等開發工具甚至還提供了richtxtbox的控制項。

基本信息

簡介

以純文本描述內容,能夠保存各種格式信息,可以用寫字板,Word等創建。

也稱富文本格式(Rich Text Format, 一般簡稱為RTF)是由微軟公司開發的跨平台文檔格式。大多數的文字處理軟體都能讀取和保存RTF文檔。

首先它是一般來寫字板的默認文檔之一,但除了它以外,Word、WPS Office、Excel等都可以打開RTF格式的檔案。它的打開速度快,rtf是一種非常流行的檔案結構,而且無損害的的一種格式。很多文字編輯器都支持它,vb等開發工具甚至還提供了richtxtbox的控制項。編寫通用工具的程式設計師應該考慮在自己的軟體中加入讀寫rtf檔案的功能,這樣就需要對rtf的結構有充分的了解。而現在最重要的信息發布手段莫過於www了,在編輯軟體中提供rtf到html的轉換也是程式設計師應該考慮的事情。

分析

結構分析

rtf的結構並不複雜,但內容繁多,本文不可能一一說明,只能從總體上討論一下(如果想閱讀詳盡的rtf文檔,則可在internet上尋找或與筆者聯繫。)每個rtf檔案都是一個文本檔案,顯示時由rtf閱讀器格式化。檔案開始處是{

tf,它作為rtf檔案的標誌是必不可少的,rtf閱讀器根據它來判斷一個檔案是否為rtf格式。然後是檔案頭和正文,檔案頭包括字型表、檔案表、顏色表等幾個數據結構,正文中的字型、表格的風格就是根據檔案頭的信息來格式化的。每個表用一對大括弧括起來,當中包含了很多用字元“”開始的命令。例如,某個顏色表如下:

{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;}

開始時用\colortbl標明大括弧內是顏色表,接著是\red0\green0\blue0,登記了一種顏色,這種顏色的紅綠藍分量都為0。其它表依此類推。檔案頭之後是正文,正文由版面格式化命令、文字和各種特殊命令組成。其中只有特殊命令用大括弧括起來,而版面格式化命令和文字是“開放式”的,從而把文字和命令分離。檔案結束時有一個“}”,和第一個“{”對應。在整個檔案中,“}”和“{”必須一一對應。這種格式是rtf閱讀器和轉換器算法的基礎。

rtf格式還有一個特別之處,就是有些字元在命令中有特殊的含義,所以當它們作為文本出現時需要在它們的前面加一個“\”,例如“\”本身就要表示為“\\”。

算法分析

本節介紹的算法雖然是針對rtf的讀寫,但也是一般檔案過濾器通用的方法,適用於各種格式檔案之間的轉換。具體來說就是把各種檔案都轉換成一種中間格式,再根據要求進行顯示或轉換。其中有個原則是一定要遵守的:程式必須能過濾掉不認識的格式。各種檔案都有其特殊的格式,在轉換過程中不可避免會出現格式損失的現象,在算法中要考慮這種情況。對於rtf這類格式化文本檔案來說,最重要的是要正確地顯示或轉換檔案的大小、顏色、字型等風格。因此,在程式中應該用一個數據結構把這些信息存起來,這個結構就是所謂的中間格式,怎樣規定悉聽尊便。以下是其流程圖:

難點分析

一.中文的表示方式:在rtf中中文用命令的形式表示:“'內碼”。內碼就是漢字機內碼。不過,請注意:rtf是文本檔案,內碼是用ascii碼來儲存的,必須把它轉換成數字才能使用。例如,“電子與電腦”在rtf中的形式是:

\'b5\'e7\'d7\'d3\'d3\'eb\'b5\'e7\'c4\'d4

二.圖片的問題:rtf中圖片以兩種方式存在:第一種方式是直接嵌入,以{\pict開始;第二種方式是作為ole對象嵌入,這時以{\object開始。當rtf處理器能直接使用ole時,rtf檔案中提供了ole的數據;否則,檔案中直接提供圖片的數據,以{\result開始。在使用中最常見的圖片格式是內含dib bitmap的元檔案(metafile),這種格式在sdk中沒有說明,而且在rtf中是以壓縮形式儲存的,所以在轉換時有一定困難。

特點

對普通用戶而言,RTF格式是一個很好的檔案格式轉換工具,用於在不同應用程式之間進行格式化文本文檔的傳送。通用兼容性應該是RTF的最大優點,但同時也就具有它的缺點,比如檔案一般相對較大(可能因為嵌入了兼容各種應用程式的控制符號)、WORD等套用軟體特有的格式可能無法正常保存等。

標準

作為微軟公司的標準檔案,早期外間需要數十美元向微軟付款,才能購買一本薄薄的RTF標準檔案。不過隨著採用RTF格式標準的軟體愈來愈多,RTF格式也愈來愈普遍, 微軟公司就把標準檔案公開,放在網上供開發者下載。現時可供下載的各個RTF版本標準檔案如下:

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格式作為一個標準應該是統一的,但在某種情況下進行擴展是必要的。最明顯的例子是微軟的word,它有自己獨有的rtf命令。如果想使自己的軟體在技術上占有優勢,也可以通過創造新的rtf命令來實現。例如,如果你希望在軟體中支持dhtml,則可在rtf中嵌入{dhtml或{java之類的命令。由於rtf閱讀器有過濾不認識命令的功能,所以這樣做不會影響rtf檔案的通用性。

軟體

RTF格式是許多軟體都能夠識別的檔案格式。比如Word、WPS Office、Excel等都可以打開RTF格式的檔案,這說明這種格式是較為通用的。這是一種類似DOC格式(Word文檔)的檔案,有很好的兼容性,使用Windows“附屬檔案”中的“寫字板”就能打開並進行編輯。使用“寫字板”打開一個RTF格式檔案時,將看到檔案的內容;如果要查看RTF格式檔案的原始碼,只要使用“記事本”將它打開就行了。這就是說,你完全可以像編輯HTML檔案一樣,使用“記事本”來編輯RTF格式檔案。

相關詞條

相關搜尋

熱門詞條

聯絡我們