アドビ

comma-separated values(略称:CSV)は、いくつかのフィールド(項目)を区切り文字であるカンマ「,」で区切ったテキストデータおよびテキストファイル。拡張子は .csvMIMEタイプは text/csv

「comma-separated variables」とも言う。広く普及した訳語はないが、「カンマ区切り」などとも呼ばれる。Microsoft Excelでは「CSV (カンマ区切り)」としている。

データ交換用のデファクトスタンダードとして、古くから多くの表計算ソフトやデータベースソフトで使われているが、細部の実装はソフトによって異なる。それらを追認する形で、2005年10月、RFC 4180 で Informational(IESGの外部で決定された有用な情報の提供)として仕様が成文化された。

類似したフォーマットとして、タブ区切りされた tab-separated values (TSV)や、半角スペース区切りされた space-separated values (SSV) などがあり、これらをまとめて character-separated values (CSV)、delimiter-separated values (DSV) とも呼ばれることも多い。

RFC 4180に述べられた仕様について述べる。

ファイルは1つ以上のレコードからなる。レコードは改行(CRLF、U+000D U+000A)で区切られる。最後のレコードの後には改行はあってもなくてもいい。

レコードは1つ以上の同じ個数のフィールドからなる。フィールドはコンマ「,」(U+002C) で区切られる。最後のフィールドの後にはコンマは付けない。

(以下の例では、読みやすさのためにCRLFの前にスペースを書くが、実際はないものと思って読んで欲しい)

日本国,東京,127767944 CRLF
アメリカ合衆国,ワシントン,300007997 CRLF

なお、最後のフィールドの後にはコンマはないので、もしレコードがコンマで終わっているように見えれば、実際はその後に空文字列(長さ0の文字列)からなるフィールドがある。次のレコードは、「日本国」「東京」「」の3つのフィールドからなる。

日本国,東京, CRLF
ファイルの先頭には、オプションとして、通常のレコードと同一の書式の「ヘッダ行」があってもいい。ヘッダ行は、他のレコードと同じ個数のフィールドを持ち、フィールドの名称が書かれている。

国,首都,人口(2006) CRLF
日本国,東京,127767944 CRLF
アメリカ合衆国,ワシントン,300007997 CRLF

フィールドは、ダブルクォート「"」(U+0022) で囲んでも囲まなくてもよい。次の3つのレコードは、(文字列としては)同じ内容である。(ただし、RFCはフィールドの解釈までは規定していない。一部のソフトはダブルクォートで囲まれているかどうかで解釈を変える)

日本国,東京,127767944 CRLF
"日本国","東京","127767944" CRLF
"日本国","東京",127767944 CRLF
フィールドがコンマ、ダブルクォート、改行を含む場合は、かならずダブルクォートで囲む。また、フィールドに含まれるダブルクォートは2つ並べてエスケープする。次のレコードの内容は、「日本[改行]国」「"東京"」「127,767,944」である。なお、ここでいう「コンマ」「ダブルクォート」はU+002CとU+0022のことで、他のもの(たとえば全角コンマ)は関係ない。ただし、「改行」にはCR (U+000D) とLF (U+000A) を含む。

"日本 CRLF
国","""東京""","127,767,944" CRLF

コンピュータ内部において、データベース内のテーブルや表計算ソフトの表の内容は、それぞれのソフトウェアが処理可能な独自のファイルフォーマットで保存されていることがあり、そのような場合は別のソフトウェアへデータを移そうにも基本的には互換性はないため読み込むことはできない。

カンマ区切りテキストは、テキスト形式で保存されるので、テキストエディタでも閲覧や編集ができる。さらに、使用するソフトウェアが、カンマ区切りテキストの出力 (エクスポート) と、読み込みから表への生成 (インポート) に対応していれば、別製品のデータベースソフトや表計算ソフトからのデータ交換が可能となる。

しかし、「テキスト形式」や「日付形式」といった各項目に設定している属性は出力されないので、インポートする側のソフトウエアがインポートする際に設定しなくてはいけない。

Microsoft Excelに代表されるパソコンの表計算ソフトが流行して以降、非常によく利用されるようになった。大型コンピュータとのデータのやりとりでは固定長データフォーマットがよく利用される。現在では、XMLを使おうという動きもあるが、主流にはなっていない。

Portable Document Format(ポータブル・ドキュメント・フォーマット、略称:PDF)は、アドビシステムズが開発および提唱する、電子上の文書に関するファイルフォーマットである。1993年に発売されたAdobe Acrobatで採用された。

特定の環境に左右されずに全ての環境でほぼ同様の状態で文章や画像等を閲覧できる特性を持っている。

アドビシステムズはPDF仕様を1993年より無償で公開していたが、それでもPDF規格はAdobeが策定するプロプライエタリなフォーマットであった。2008年7月には国際標準化機構によってISO 32000-1として標準化された[2][3][4]。アドビはISO 32000-1 についての特許を無償で利用できるようにしたが、XFA (Adobe XML Forms Architecture) やAdobe JavaScriptなどはアドビのプロプライエタリな部分として残っている。

PDFのドキュメントは、Adobe Acrobat Readerに代表されるPDFビューアーがインストールされているコンピュータであれば元のレイアウトどおりに表示・印刷できる。Acrobat ReaderはWindowsmacOSLinuxなど各種オペレーティングシステム (OS) に対応したものが無償で配布されており、他のPDF閲覧ソフトも数多く存在するため、PDFファイルは多くの環境で閲覧・印刷できる。

PDF以外の電子ドキュメントは、ほかのコンピュータ上で元のレイアウトを保持したまま表示・印刷するのは難しい。例えば、WordやExcelなどMicrosoft Officeのドキュメントは、対応するソフトウェアもしくは無料のビューワーをインストールすれば閲覧することは可能だが、バージョンや設定が違っていたり、フォントの有無が原因で編集者が意図した通りのレイアウトを保てない場合がある。HTML のドキュメントは多くのコンピュータで閲覧できる。しかし、レイアウトの制限が大きい上、OSやウェブブラウザ(HTMLレンダリングエンジン)の種類・設定でレイアウトが変わりやすい。

そのため、厳密にレイアウトを保持する必要のあるドキュメントはPDF化することが多い。ただし、フォントの設定によっては、PDFでも元のレイアウトを保持できない場合がある。この問題は、フォントを埋め込むことで回避できる。

PDFは、アドビシステムズが開発し印刷業界の標準として普及していたページ記述言語PostScriptを元に策定された。

PDFでは、コンピュータ上でのデータ交換のために次の機能が追加されている。

ファイルに含まれる各ページへのランダムアクセスに対応。この機能により、必要なページをすばやく表示できる。PostScriptでは前のページの処理結果がないと現在ページの描画が出来ない場合があるが、PDFでは各ページで完結したコンテンツにされる。
フォントの埋め込み
文書情報など、本文以外の情報を入力できる。PDFではしおり・リンク・注釈なども本文とは別の情報として扱われる
透明の概念(後にバージョン1.4で追加)
PDFには、PostScriptの持っているプログラミング言語としての機能はなく、HTMLなどと同様のデータ記述言語となっている。 たとえばPostScriptのif やloopといったプログラム用命令は取り除かれている。一方linetoなどは残されている。 これはファイルを開いた場合にエラーが発生する可能性を小さくし信頼性を高めるためという事と同時に、PostScriptが持つ特徴の一つである、インタープリタによる実行環境への依存性を極力排除していく方向性からである。

このように元々PDFはPostScriptから発展・派生したという経緯を持つため、PostScriptとPDFは似た特性を持っており、相互の変換は比較的容易である。実際、Acrobatに含まれるDistillerでは、各種アプリケーションのデータをいったんPostScriptファイルに変換(WindowsMacintoshではプリンタードライバを経由する形で行われる)し、それを元にPDFを生成している。しかし、PDFを作成するには、必ずしもPostScriptを経由する必要はなく、例えばGDI経由で直接PDFを作成することも可能であり、実際にそういった形で動作(GDI→PDF)する製品は多数存在する(「いきなりPDF」もこのタイプである)。

旧バージョンのQuark XPressなどからPDFファイルを作成するには、PostScriptファイルを生成したうえで"Distiller"というAdobe Acrobatに添付のソフトを使ってPDFファイルに変換するのが一般的である。また、Adobe InDesignIllustratorPhotoshopQuark XPress(バージョン6以降)を使うと、Acrobatなどは使わずに直接PDFファイルを作成できる。

PDFファイルはCOS ("Carousel" Object Structure) のサブセットでである。COSのツリー構造は以下の8種のオブジェクトで構成される。

ブーリアン
数値
文字列
名前
配列: オブジェクトに順序を与えた集合
辞書: オブジェクトに名前を与えた集合
ストリーム: 大きなデータに使われる
ヌルオブジェクト
オブジェクトはobject number とgeneration bumberで番号付けされ、xref table表が各オブジェクトのファイル先頭からのオフセットを記述する。

この利点はファイル内のランダムアクセスを容易にすることで、またファイルの変更があった際に変更点を追記するだけでファイル全体の書き直しを行わなくてよくなる。 PDFのデータ配置は リニア(最適化)とノンリニア(最適化なし)の2種類がある。最適化なしは、PDFの変更箇所がファイル末尾に追記された状態であり、デメリットはファイル全体をダウンロードしてからでなければファイルの表示内容を確定できないことである。最適化された場合は、末尾にあった変更点が各ページに適用されて、Webで表示させる場合などに好きなページから表示させられるメリットがある。

ラスターイメージ(Image XObjectsと呼称)は、PDF内では辞書と、関連づけられたストリームで表現される。辞書には画像のプロパティが記述され、ストリームにはイメージデータが記述される。画像は複数の圧縮方式でフィルターされる。サポートされるフィルターは以下のものがあり、用途に応じて画質とサイズのバランスを選ぶことができる。

ASCII85Decode ストリームをASCIIの7ビットで表現するもの
ASCIIHexDecode ASCII85Decodeに近いがよりコンパクトになる
FlateDecode zlib/deflate(いわゆるgzip形式。zipではないので注意)アルゴリズムで圧縮するもの。; PDF 1.2より実装
LZWDecode LZWアルゴリズムで圧縮するもの。;
RunLengthDecode ランレングスアルゴリズムによるシンプルな圧縮
DCTDecode JPEGに採用された 非可逆圧縮
CCITTFaxDecode CCITT (ITU-T) faxで規定された 可逆 2値 (黒/白)圧縮。Group3とGroup 4がある
JBIG2Decode JBIG2標準で定義された黒白二値の形式。可逆、非可逆が選べる。PDF 1.4より実装
JPXDecode JPEG 2000標準で定義された形式。可逆、非可逆が選べる。PDF 1.5より実装

以下の14書体については、ソフトウェアは必ず装備するか、同じ寸法の代替フォントを装備しなければならない。ソフトウェアは以下のフォントの寸法について情報を保持し、もしPDFに埋め込まれていない場合は同じ寸法の代替フォントで表示する。

Times (v3) (in regular, italic, bold, and bold italic)
Courier (in regular, oblique, bold and bold oblique)
Helvetica (v3) (in regular, oblique, bold and bold oblique)
Symbol
Zapf Dingbats

テキストはPDF内のコンテント ストリーム内でテキスト エレメントとして記述される。テキストエレメントはどの文字がどの座標に表示されるかを定義し、どのフォントとエンコーディングを使うかも記述する。

テキストストリーム内では、文字は文字コード(番号)によって記述される。WinAnsi、MacRomanのほか東アジアの各種言語のエンコーディングが定義されているほかに、フォント自身に独自のエンコーディングを持つことも出来る。 基礎がType1フォントを前提に作られたので、TrueTypeフォントなどを記述する場合は、非常に複雑な記述になる。

PDFファイルには、音楽、動画などのマルチメディアファイルを含めることができる。 そのためPDFファイルは、コンピュータを使ったプレゼンテーション用に使うこともできる。 2005年にアドビシステムズFlash の開発・推進を進めてきたマクロメディアを買収しており、それ以降アドビシステムズによる Flash と PDF との統合が進められている。

そのためAdobe製品によるPDF表示では、Flash形式のファイルが埋め込まれていてもプラグインなどをインストールせずに再生することが出来る。しかしQuickTimeはサポートされない。これはAppleAdobeの敵対的な関係を示しており[要出典][58]、そのためAppleiOSバイスではリッチメディアPDFはインタラクティブ性が損なわれる。

またフォームはユーザーに入力させるメカニズムで、AcroForms(PDF 1.2より)と Adobe XML Forms Architecture(XFA)(PDF 1.5より) の2種類が使える。[59]XFA仕様はPDF仕様に含まれておらす、オプション機能として言及されているだけである。