トップへ
田村研究室

マルチメディア論および演習

2009年度

2009
4/27

テキストファイルと文書ファイル

文書のデータ形式

文書は,文字情報だけでなく文字の書体や大きさなど書式情報を必要とし,また図表など文字以外の情報を含むことがある.このため,文書データをコンピュータに保存するファイル形式は,文字コードだけでなくこうした付加情報を格納するために様々な形式が存在する.

例えば,Word2010では,docx形式で保存する.docx形式を実際にバイナリエディタで参照するとわかるが,これは後述するバイナリファイルであることがわかるが,実は拡張子をdocxからzipに変更してみるとさらにおもしろいことになる.docx形式は,圧縮ファイルのzip形式であり,展開してみると中身はXML形式の書式付きテキストファイルがいくつか現れる.

この回では,こうした様々な文書ファイル形式を紹介する.

テキストファイルとバイナリファイル

コンピュータで操作されるファイルの属性は,次のふたつに大別される.

  • テキストファイル 文字コードだけが格納されているファイル
  • バイナリファイル 文字コード以外の二進数を含むファイル

テキストファイルは,文字による文章データだけ,すなわち文字コードだけが格納される.それに対してバイナリファイルには,一般的な二進数のデータ(コンピュータの実行可能なプログラムファイルや,画像・音声データなど)が格納される.

テキストファイルの種類

テキストファイルには次のような種類が存在する.

  1. plain textファイル
  2. 書式付きテキストファイル
  3. CSV形式表データ
  4. PNM(PPM/PGM/PGM)形式画像データ
  5. MIMEエンコードされたバイナリデータ

本来ならば文書情報だけのテキストファイルであるが,画像データなどをわざわざ文字コードへと変換した上で格納することがある.それは,別種類のコンピュータとデータ交換しやすくするためである.コンピュータによっては,大きな二進数の桁表現の並び順が異なることがあり,別種類のコンピュータ間では二進数のデータではそのまま交換できないことがある.しかし,文字コードならばすべてのコンピュータで共通に読み込めるため,画像などを文字コードとして表現することが行われる.

1と2は文書ファイルである.文書ファイルは次の節で説明する.

3は,代表的な表形式データである.拡張子は「.csv」であり,表の各項目をカンマで区切った次のようなデータである.大抵の表計算ソフトはこの形式のデータを読み書きできる.

番号, 出身, 氏名, 性別, 年齢
1000, 東京都, 山田太郎, M, 20
1001, 埼玉県, 佐藤花子, F, 22 
						

このCSV形式では文字色などの書式情報を記入できないため,ExcelシートなどをCSV形式で保存しても書式情報は失われる.その代わり,全種類のコンピュータで読み込むことが可能である.

4は,Portable anymap(pixmap-多色画像, graymap-モノクロ画像, bitmap-二値画像)形式で,画像データを文字コードとして表現する.画像データは画素の集まりであり,単純なデータ形式では画素のデータを並べただけである(詳細はデジタル画像とは). 白と黒の間を256段階で表現するグレースケール画像なら,ある画素がどの段階かを1byteの二進数で表現でき,それを画素の順番どおりに並べたものになる.これを,4のPNG形式では二進数そのものではなく,その二進数が表す数を,文字として表現して並べる.例えば明るさが254(二進数で11111110)だとしたときに,わざわざそれを「2」「5」「4」という三文字で表現し,それぞれをASCIIコードで置き換えた3byteのデータ にする.

バイナリデータをわざわざテキストデータにすることで,必要なbyte数は数倍となるものの,どの種類のコンピュータでも処理することができるようになる.

5は,画像だけでなく一般のバイナリファイルを,テキストで表現するための代表的な手段である.あるデータを別形式のコードに変換することをエンコード(encode)と呼ぶ.逆変換をデコード(decode)と呼ぶ.MIMEエンコードは,電子メールの添付ファイルを送信する際によく利用されている.一般的な電子メールソフトは,データが添付されると自動的にエンコードして,テキストデータとして送信を行う.受信側のメールソフトはそれを自動的にデコードして表示を行う.

文書ファイル

文書をデータ化する際に,文字だけのテキスト情報だけでなく,文字の大きさや色,字体(フォントの種類)などの文字の「見た目」に関する書式情報や,文書に埋め込まれた図表のための画像情 報も必要である.書式情報・画像情報を含む文書データを保存したものが,文書ファイルである.

現在よく使用されている文書ファイルには,大きくは次のような種類がある.

  • HTMLファイル/XMLファイル/RTFファイル(書式付きテキストファイル)
  • ワープロで作成した文書ファイル(バイナリファイル)
  • PDFファイル(バイナリファイル)

HTML/XML/RTF

HTML(Hyper Text Markup Language)とXML(Extensible Markup Language)は,共にSGML(Standard Generalized Markup Language)を目的に応じて文法などの簡素化を行って派生された言語である.これらはマークアップ言語と呼ばれ,文字・記号のテキストだけで書式情報まで記述するための言語である.HTMLはWebページを記述するためのもので,XMLはインターネット上の文書のために作成された.

HTMLで記述されたファイルの拡張子は,一般に「.html」か「.htm」とされる.XMLは「.xml」である.これらのファイルは,内容が書式情報を含んでいても,表現上文字コードだけから構成されるため「テキストファイル」に分類される.文章に組み込まれた図などは別ファイルとして保存される.

RTFファイルは,Microsoftが作成したマークアップ言語を用いた独自形式である.Microsoft社のソフトウェアで作成し,読み込むことができる.

ワープロソフトで作成した文書ファイル

ワープロソフトとしては「MS-Word」や「一太郎」などが市販されており,またフリーソフトウェアとして「OpenOffice.org」が配布されている.これらワープロソフトで作成したデータファイルは,従来は独自形式のバイナリファイルであった.このため他のソフトで作成されたデータとは互換性がなく,別ソフトのデータは読むことができなかった.

ただし,これら有名なソフトウェアの場合には,ファイル形式を変換するためのツールも付属しているため,他ソフトで作成したものでも読み込めることがある.ただし図表などの細かい部分の書式に対する互換性は低いため,他のソフトで作成した文書から,文章のテキストデータを読み出して再加工するための最低限の機能と考えた方がよい.さらに,バージョンが異なる場合の互換性も十分ではなかった.

し かし,現在では標準の文書ファイル形式としてXMLを用いたOpenDocument形式が採用されているソフトも出てきた.MS-Office2007では標準のファイル形式(docx形式)の実体はXML形式である.またOpenOffice.orgでは当初からXML形式である.ただし,両者は微妙に異なる仕様であり,やはり相互に変換が必要なことに代わりはない.また,XML形式では画像などが別ファイルとなり,ひとつの文書に対して複数のファイルが必要となってしまうため,管理上面倒になる.そのため必要なファイルを全部まとめてZIP形式のアーカイブ化されひとつの圧縮ファイルとしてまとめられる.このため,OpenDocument形式の文書ファイルはXMLであってもバイナリファイルである.

PDFファイル

HTMLファイルでは,書式情報が存在したとしても,実際にその情報を用いて画面出力を作成するのは,Webブラウザである.結局Webブラウザが動作しているクライアントの環境,例えば画面の解像度や表示可能な色数,使用できるフォントの種類などに大きく依存する.ワープロファイルで作成した文書ファイルも,別のコンピュータで表示しようとした場合,例え同じソフトウェアを使用しても,主にフォントの問題で,同じようにクライアントに依存する.これは,別のコンピュータでも同じように文書を表示することが,実は難しいことを意味している.

このため,どのコンピュータでも同じように表示され,印刷可能なようなデータ形式を目指して,必要ならフォントデータ自体を埋め込むなどが可能なPDFファイル形式をAdobe社が提案した.AdobeのAcrobatを使って,ワープロで作成した文書などをPDFファイル形式に変換することができる.

このPDFファイル形式は仕様が公開されており,誰でもPDF形式を作成したり,読み込めるようなプログラムを作成できるようになっている.このため,現在では広くフリーソフトでもPDFを利用可能となっている.

PDF形式は,印刷・表示用の目的であるため,内容の編集はできない.ネットワークを通じて文書を配布するときの標準形式となっている.