さまざまなPDFの作成技術の概観
更新日: 2018/1/15
目次
はじめに
PDFの作成方法は、アドビシステムズのDistillerから始まったと言って良いと思いますが、現在では、サードパーティー製品を含めて非常に多岐に渡っています。ここでは、それを技術的な仕組みという観点でまとめてみました。この文書は、「PDF千夜一夜」からPDFの作成関連の話題をピックアップして整理したものです。説明不足や誤りはできる限り加筆訂正に努めましたが、内容を保証するものではございません。
PDFの作成方法 – 全体の仕組み
今日は、PDFファイルを作成する仕組みについて簡単に説明しましょう。「自分は仕組みを知らなくても使えれば良い」という人も多いとは思いますが、PDF製品を選択する上で仕組みを知っておいて損はないでしょう。
PDFファイルを作るソフトは世界中に数多くありますが、それぞれの仕組みは公開されていません。また、使いやすいソフトは、内部が複雑な仕組みになっていても、それをユーザーに隠して簡単に使えるようにしています。このことは、ユーザーに見える製品名やスペックからだけでは、詳細な仕組みが分からないことを意味します。
また、ソフトウェアは機械と違って分解して仕組みを調べられません。しかし、大雑把に言ってWindowsの環境では次の図の①と②の組み合わせ、あるいは③、④、⑤の経路のどれかで作成する仕組みになっていると考えて間違いないでしょう。
アップルのMac OS Xでは、Quartzという描画エンジンからPDFへの直接変換ができますので、少し事情が違うと思います。
図の①から⑤の経路を簡単に説明します。
- アプリケーションからPostScriptプリンタードライバーを使ってPostScriptファイルを作る。(図①)
- PostScriptファイルをPDFファイルに変換する。(図②)
- PostScriptプリンタードライバーを使わずに、PostScriptを作成し、あとは、PostScriptをPDFファイルに変換する。(図③)
- アプリケーションから、プリンタードライバーを通さずにPDFを作成する。(図④)
- アプリケーションの「印刷」メニューで見えるPDF作成用のプリンタードライバーを使ってPDFファイルを作成する。(図⑤)
上の図について、これから、順を追って説明したいと考えています。
ところで、ドライバー(Driver)って、運転手ではありません。コンピューター用語ではドライバー とは周辺機器を動作させるためのソフトウェアを指します。プリンターを動作させるのがプリンタードライバーですが、PDFの場合は実物の周辺機器を使わないため、仮想プリンタードライバーとも呼ばれます。
PostScriptからPDFへ
PostScriptの登場
PDFの作成方法のひとつめは、PostScript ファイルを経由してPDFを作成する方法です。第一段階でPostScriptプリンタードライバーでPostScriptファイルを作成し、第二段階で、PostScriptファイルからPDFへの変換を行う方式です。
まず、PostScriptとはなにかについて簡単に説明しましょう。
回り道が長くなるかもしれませんが、今日の話は、PDFが生まれる前の歴史、いわば前PDF時代のことになります。
プリンターの一種にレーザープリンターがあります。私が初めてレーザープリンターを買ったのは1987年頃だったと思います。アップルのMacintosh Plusに接続するもので、名前はLaser Writerと言い、確か100万円位したものです。それも当時は日本語が使えませんでした。
ここに写真と説明があります:
https://ja.wikipedia.org/wiki/LaserWriter
Laser Writerはページプリンターの一種です。ページプリンターは次のような働き方をします。簡単にいうと複写機のプリンター版ですね。
- A4、B4など大きさの決まった用紙の1ページ分に印刷する内容のイメージをプリンター内のメモリに形成する。
- プリンターの感光ドラムにそのイメージをレーザー光線で転写する。
- 静電気の力で感光ドラムのイメージ部分にトナーを付着させる。
- 静電気の力でトナーを紙に転写する。
- 紙を熱してトナーを定着(融解して固着)させる。
ページプリンターでは、用紙1ページの上に描画する内容を、ページ記述言語 を使って記述します。主要なプリンターメーカーは、それぞれ独自のページ記述言語をもっています。エプソンのESC/Page、キヤノンのLIPS、ヒューレット・パッカード(HP)のPCLなどが有名です。
プリンターで印刷するページの内容を作り出すのはパソコンです。パソコン側では、ユーザーが画面を見ながらページアップした結果を、相手のプリンターがどこのものかによって、ESC/Page、LIPS、PCLなどの中から適合する言語を使って組み立て直して、プリンターに送信します。プリンター側ではその情報を解読してページのイメージを作り出すわけです。
PostScript(ポストスクリプト)というのはアドビシステムズが開発したページ記述言語の製品名です。
PostScriptを使ったプリンターで印刷するときは、パソコンからプリンターにPostScriptファイルが送られます。PostScriptファイルには、1ページ毎に、ページの内容をPostSript言語を使って記述した命令情報が入っています。この命令情報をプリンター上のPostScriptインタープリターというプログラムで解読して、ページの内容を描画していきます。
世界で最初にアップルがMacintoshのLaser Writer用にPostScriptを採用しました。これは、Macintoshの上で動く、PageMaker というページアップ・ソフトとともに売り出されて、大人気となり、DTPという概念を作り出したわけです。件の100万円のプリンターもDTPをするために購入したものなんです。
PageMakerを開発したアルダス社は1994年にアドビシステムズに買収されます。しばらくはアドビシステムズがPageMakerを販売していましたが、InDesignが軌道に乗るのと並行してPageMakerは市場から消えていきました。
PostScriptファイルを作る
DTPは、Macintoshと共に華やかに登場し、大人気となりました。それを支えたのがPostScript関連技術です。アドビシステムズは、多くのプリンターメーカーに対してPostScript関連技術を供給しました。プリンターメーカー各社から出ているPostScriptプリンターには、アドビが開発したPostScriptインタープリターが搭載されている訳です。このPostScriptインタープリターを開発するのは相当に大変です。
PostScriptは1990年代には高級なレーザープリンター向けのページ記述言語として標準的な地位を占めるようになりました。それだけではなく、さらに高品質が要求される商業印刷の分野では、ほぼ独占的な地位を占めるようになり、ひいては印刷業界の仕事をがらっと変えてしまいました。
そして、Macintoshで始まったDTPの波はWindowsにも押し寄せます。
Windows上で動くアプリケーションからPostScriptプリンターを使って印刷するときも、Macintoshと同じように、ユーザーがページアップした結果は、パソコン上でPostScript言語に変換されてプリンターに送られます。
この役割を負うのがPostScriptプリンタードライバーです。上述のようにPostScriptが業務用DTP分野で事実上の標準になり、Windowsには標準的なPostScriptプリンタードライバーが同梱されています。また、多くのプリンターメーカーから各社専用のPostScriptプリンタードライバーを提供しています。Acrobatを含め、アドビの製品にも同社製のPostScriptプリンタードライバーが付いていました。
アプリケーションの印刷メニューは、普通、プリンターで紙に印刷する時に使うのですが、プリンターに出力する代わりに、PostScriptプリンタードライバーでファイルに出力するとPostScriptファイルができます。このファイルを使って印刷会社などとのデータ交換ができるようになります。
具体的には次の図のように「ファイルへ出力」にチェックします。
なお、Windowsの「印刷ダイヤログ」で表示されるプリンターの名前は、分かりやすい名前をつけられるので「PostScriptプリンタードライバー」と表示されないかもしれません。
PostScriptファイルは、プリンタードライバーを使わないで直接作ることもできます。アドビシステムズはPostScriptの言語仕様を公開し、第三者によるアプリケーションの開発を奨励しました。そうした経緯からパソコンのいろいろなアプリケーションからPostScriptファイルが出力できるようになりました。
このようにして、前PDF時代にはPostScriptファイルが大量に作られて流通していました。
PDFの発明
前PDF時代には、PostScriptファイルがアプリケーションから独立したデータとして流通するようになってきました。しかし、PostScriptファイルには問題もあり、データの交換・共有をもっと簡単にする方法が望まれていたのです。
PostScriptは、出力するのは比較的簡単ですが読むのはとても大変です。加えて、紙への印刷用の一方的出力のために設計されたものですので、画面に表示して、内容をナビゲーションしたり、注釈をつけたりする機能もありませんでした。
PostScriptを元にして、さらにデータを交換する形式として適切なように、またナビゲーションなどが簡単にできるように設計されたのがPDFです。そして、PostScriptをPDFに変換するプログラムとしてAcrobat Distillerが用意されました。
Acrobat Distillerを使うと、PostScriptファイルをPDFに変換できます。(次の図)
ところで、「distill」というのは英語で蒸留するという意味なんですが、Distillerを使ってPostscriptからPDFへの変換することを、distillと表現する人もいます。こんな具合ですね:
In the distilled version, there is... This is using Acrobat 6 for distilling.
AcrobatでPDF
さて、今までの説明ではPostScriptに焦点をあててきましたので、「それじゃあ、PDFを作るには、PostScritptファイルを自分で作らないとだめなのだろうか?」という印象をもたれたかもしれません。
しかし、エンドユーザーが簡単に使うだけなら、PostScriptについて特に意識しなくても大丈夫です。
最新のAcrobat 7では、アプリケーションの「印刷」メニューから表示する画面で、プリンター名 Adobe PDF を選んで「OK」ボタンを押せば、PDFができるようになっています。
Acrobatがここまで来るには、歴史的変遷もあり、かなりややこしいくなっています。
プリンターの名前は、以前にも言いましたが、メーカー側で分かりやすい名前を付けられます。そこで、Acrobat 4から以降のプリンタードライバーの名前の変遷を辿ると次の表のようになっています。(以下はWindows版についての話です。)
バージョン | プリンタードライバー名 | インストール時カスタマイズの既定値 |
---|---|---|
Acrobat 4 | Acrobat Distiller | 既定値で on |
Acrobat Writer | 既定値で on | |
Acrobat 5 | Acrobat Distiller | 既定値で on |
Acrobat Writer | 既定値で off | |
Acrobat 6 | Adobe PDF | |
Acrobat 7 | Adobe PDF |
Acrobat 4では、PDFWriterとDistillerの2種類のプリンタードライバーがあり、両方とも既定値でインストールされました。
Acrobat 5で、Acrobat Distillerがプリンタードライバーの主流になり、PDFWriterは既定値ではインストールされなくなりました。
Acrobat 6以降では、プリンタードライバーがAdobe PDFという名前のものひとつだけになりました。
最初、アドビシステムズはDistillerをプリンタードライバーではなく、PostScriptからPDFへの変換を行うアプリケーションとして用意しました。Acrobat4、5では、それが、プリンタードライバーの名前にも使われていたのですが、Acrobat6以降、Distillerという名前は、プリンターの名前ではなくなり、PostScriptからPDFへの変換を行うアプリケーションのみとなりました。
ほかに、AcrobatにはPDFMakerというものがありますので、さらにややこしくなっています。
なぜ、昔はAcrobat DistillerとPDFWriterの2種類のプリンタードライバーがあったのか?そして、今はひとつになってしまったのかなど、いろいろ疑問が沸きますね。
Adobe PDFドライバについて
Acrobat6から、PDFを作成するプリンタードライバーの名前は、Adobe PDFになっていますが、名前が変わっただけで実態はPostScriptプリンタードライバー(とDistillerを連続で動かすもの)です。
これを確かめてみましょう。
まず、Wordで簡単な文書を作成し「印刷」メニューからAdobe PDFを選びます。Adobe PDFの印刷ダイヤログで、「ファイルに印刷」を選択します。
次の図はAdobe PDFの印刷ダイヤログで「Print to file(ファイルに印刷)」をチェックしたところです。
(ここで使用しているのはWindows XP上のAcrobat 6(英語版)です。)
出力されたファイルをテキスト編集ソフトで開くと、冒頭が次のようになります。
このファイルはPostScriptレベル3です。よって、Adobe PDFはPostScriptプリンタードライバーと同じ機能だとわかります。
さらに、このファイルをDistillerでPDFに変換できます。
また、Adobe PDFで「ファイルに印刷」にチェックしない(既定値)で実行しますと、PDFファイルができます。
以上のことから、Adobe PDFプリンターを指定すると、ユーザーに見えないところでPostScriptを作り出し、それをDistillerを使って、PostScriptからPDF変換を行なっているのだろうと推測できます。
Acrobat Distillerプリンタードライバーの後継がAdobe PDFで、Acrobat Writerはなくなったらしい、といえます。
Distiller互換ソフト
前に話しましたように、アドビはPostScriptインタープリターを、いろいろなプリンターメーカーに対して提供しています。しかし、アドビのライセンス料が高額だったため、他のソフトウェア開発会社から、PostScriptを読んで、PostScritpファイルを描画してイメージにできる互換ソフトがいくつか提供されるようになりました。
そして、それらのPostScriptインタープリター互換ソフトウエアをベースにして作られたAcrobat Distiller互換のPDF作成ソフトがあります。
その中の一社が、Globalgraphics社 のJaws PDF Creator です。同社のPDF変換ソフトはジャストシステムからも「JustSystem PDF Creator」として販売(2006年2月時点)されていましたが、現在はいずれも発売中止になっています。
PostScriptインタープリターの互換品にはGhostscriptという無償でも入手できるものがあります。(Ghostscriptには商用の有償ライセンス版もあります)。
https://www.ghostscript.com/
GhostscriptにはPDF作成機能も同梱されています。
この無償版を利用して、PostScriptからPDF変換を行なっているのが、無償のPDF作成ソフトとして良く紹介されるPrimoPDF です。
PrimoPDFは、米国のサーバサイドPDFのメーカー、ActivePDF社が、自社の宣伝を主な目的として作成・配布していましたが、その後、提供元がNitro Softwareへ移り、現在ではWebの配布サイトが残されてはいるものの、開発は終了しています。
【参考サイト】
https://www.xlsoft.com/jp/products/primopdf/support.html
PostScriptを使わないPDF作成
PDFLib
PDFの仕様は公開されているのだから、自分のプログラムの中から直接PDFファイルを書けないだろうか?そのように考える人もいると思います。
もちろん、PostSciptを経由しなくてもPDFを作れます。
PDF Referenceを参考にしながら、自前のプログラムから直接PDFファイルを書けば、スキルのあるプログラマーならやればできます。しかし、実際にその人が自分ですべてをまかなおうとすると、PDFに関する深い知識が必要になります。PDFの仕様は膨大(PDF1.6のReferenceは、本体だけで、1200ページ強!)で、高度なものになると、やらなければならないことが多くなり、仕事の生産性も上がりません。
こうした理由から、PDFに関することをまとめて任せてしまえる部品の必要性が生まれます。一般に、こういうプログラム部品をライブラリーと言います。PDFを作成するライブラリーは、PDFの作成方法 – 全体の仕組みの絵の中の「PDF出力ライブラリー」がそれに相当します。
この種のライブラリーで昔から有名なものに、PDFLib があります。PDFLib社の創業者Thomas Merz氏は、PDFに関する著書もいくつかあり、PDF業界では有名な方です。PDFLibは、最初のころはソースプログラムが公開されてました。現在では、バイナリのみの配布されていて、試用であれば無料ですが、実際に使用するときはライセンス料金を払わねばなりません。なお、PDFLib Lite版という非商業限定版のソースプログラムが公開されていますが、バージョンが古く開発も終了しています。
PDFLibなどのPDF出力ライブラリーは、PostScriptにはまったく依存しないで、上位のプログラムから指示された命令によってPDFを作り出します。これは、現在は、企業内システムやWebシステムに組み込んで、ユーザーから入力されたデータ、あるいはデータベースから取り出したデータを使って、サーバーサイドで即時にPDFを作り出すというシステムを構築するのに使われています。
PostScriptを使わないメリットとデメリット
PDFLibは、PostScriptを使わないでPDFを作り出す技術を初めて世に出したものと思います。これに触発されて、現在では、PostScriptを使わないでPDFを作成する製品が非常に増えてきています。
PostScriptに依存しないPDF出力ライブラリーを使って、PDFを直接作り出す場合は、次のようなメリットがあります。
- PostScritpと比べて高速な処理ができる。アプリケーション → PostScript → PDFという2段階から、アプリケーション → PDFの1段階になる。また、PostScriptよりは軽い処理なので早くPDFを生成(出力)できる。
- プリンタードライバーに依存しない出力の仕方ができる。
- PDFのもつ様々な機能を、アプリケーションからきめ細かく利用できます。
逆に、PostScriptに依存しないデメリットとしては、次のような点が上げられます。
- PDFはページの概念をもつメディアなので、アプリケーションがどうやってデータのページアップを行なうかが問題である。
- アプリケーションに、PDFを作る命令をひとつずつ組み込むため、開発に時間がかかる。
- EPS というPostScriptを使った画像ファイルの読み込みができない。
PostScriptを使うPDF作成と、PostScriptをまったく使わないPDF作成にはそれぞれ、上に述べたような一長一短があります。
ここでは、DTPからPDFを作りだすという従来の出版・印刷の流れとは別の流れとして、インターネットシステム、イントラネットシステムの中でPDFを大量に生産、消費する仕組みが普及してきている、ということを強調しておきたいと思います。そして、この場合、PostScriptに依存しない技術の方が適切ではないでしょうか。
アンテナハウスのPDF出力ライブラリ
アンテナハウスでもPDF出力ライブラリをOEM専用製品として開発・販売しています。
アプリケーションなどから直接PDFを高速生成できます。直接ページを定義して、指定した座標位置にテキスト、図形、画像などを配置できます。注釈やフォームも扱えます。
既存のPDFを直接編集(オブジェクトの変更、削除)することはできませんが、既存のPDFファイルのページコンテンツをそのまま、現在作成中のページの矩形領域に埋め込み(PDFインポート)できます。これを利用して、既存のPDFにオブジェクトを追加したPDFの生成が可能です。
PDF/A、PDF/X形式の出力にも対応します。
GDIからPDF作成
GDI型PDFプリンタードライバー
PDFを作成するプリンタードライバーには、PostScriptを経由せず、PDFを直接書き出す方式を採用しているタイプのものがあります。これをPostScriptを経由する方式と比較して、GDI型PDFプリンタードライバーと呼びましょう。
GDI というのは、Microsoft Windows専用の言葉で、Windowsでディスプレイへの描画やプリンターへ出力する情報を統合的に扱うプログラム・モジュールを指します。
Windowsの上で動くアプリケーションは、画面などに絵を描画するときは、GDIに対して命令を発行します。GDI型のPDFプリンタードライバーは、このGDI命令を受け取ってPDFの命令にして出力するわけです。
以前に、AcrobatにはAcrobat Writer(PDFWriter)というプリンタードライバーがありましたが、現在はなくなっていると書きました。
このPDFWriterはGDI型のPDFプリンタードライバーと見られます。それは、Acrobat5のヘルプに次のような記述から推測できます。
(以下は、Acrobat5のヘルプより抜粋したものです。)
PDFWriter の概要
PDFWriter は、他のソフトウェアアプリケーションのファイルを直接Adobe PDF に変換するプリンタードライバーです。このユーティリティは、主にテキストで構成されているドキュメントの変換に適しています。どのような場合にPDFWriter を使用すればよいか、ガイドラインを以下に示します。Microsoft Word やExcel で作成した単純なビジネス文書を変換する場合。
Encapsulated PostScript(EPS)グラフィックが含まれていない文書。
お使いのシステムのRAM 容量が少ない場合。
Distiller で作成するよりも素早くPDF ファイルを作成したい場合。
上の記述の内容は、GDI型のプリンタードライバーの一般の特徴を示しています。要はこのようなGDI型のプリンタードライバーは、一般ビジネスの用途で、配布・閲覧・資料保存用のPDFを作るのに適しているのです。
このようなGDI型のプリンタードライバーは、アドビシステムズ以外からも多数のものが販売・配布されています。
「いきなりPDF」
さて、2004年春にソースネクストが発売した初代の「いきなりPDF 」は、衝撃的でした。なにしろ、それまでAdobeのAcrobatは、3万円以上していたのですが、1,980円でPDFを作成できる製品が現れたわけです。
「いきなりPDF」はソースネクストの販売力もあって発売と同時に爆発的に売れたようです。
さて、これは、なんの変哲もない、Windows用のGDI型PDFプリンタードライバーをパッケージ化したものですが、「いきなりPDF」の商品化は、次の点で大きな功績があったと思います。
- それまで高価な印象があったPDF作成ソフトを安価で提供し、PDF普及のはずみをつけた。
- PDFを印刷業界から一般のビジネスマンにとっても身近なものにした。
- PDF作成ソフトの市場をアドビシステムズ独占状態から、サードパーティーのものを含め乱戦状態に変えた。
最初の「いきなりPDF」に採用されたPDFプリンタードライバーは、スカイコム社が開発したものでした。実は当社も既にPDFプリンタードライバーを開発済みでしたが、それが売れるとは夢にも思っていなかったのです。振り返ってみれば、なんの変哲もないPDFプリンタードライバーが数十万本も売れるというのは、それだけPDFを作りたいがAcrobatは高いという、つまり需要と供給にギャップがあったということなのでしょう。そして、それに気が付いていなかったのです。
その後、ソースネクストからアンテナハウス製の「いきなりPDF Professional」を出すことができました。2005年末の時点で「いきなりPDF2」もスカイコム社のPDFプリンタードライバーからアンテナハウス製にリプレースしています。この結果、「いきなりPDF Professional2」と併せて両方が、アンテナハウスが開発したものになりました。(2014年現在ではアンテナハウスの開発した製品は販売されていません。)
「いきなりPDF Professional」では、一括PDF作成と言って、ファイルをドラッグ&ドロップ操作でウィンドウに落とすだけでPDFを作成する機能もあります。このプログラム内部は次のようになっています。
- ファイルを作成したアプリケーションの種類を判別。
- 例えば、マイクロソフトのWordのファイルなら、WordをCOM を使ってプログラム内で起動して印刷。
- PDFの印刷ができたらWordを終了。
PDFを作るのはPDFプリンタードライバーを使っているのですが、印刷メニューからプリンタードライバーを選択する、という初心者に分かり難い操作なしで、あたかも自動的にPDFができるようになっています。「いきなりPDF Professional」は良く売れていますが、こういうエンドユーザー向けの使いやすい機能が人気を得たようです。この一連の仕事では、パソコンのユーザー層の裾野が広がっているので、商品を作るときもユーザーの目線を忘れないようにしないといけないんだな、と良い経験となりました。
そんな事情もあって、2005年は小売店のルートを通じて販売しているPDFのプリンタードライバーでは、アドビシステムズを抜いて、アンテナハウス製のPDFプリンタードライバーがトップのシェアを取っているんです。もっとも、2005年4月からアドビシステムズもAcrobat 7.0 Elementsを税込み4,900円(当時のアドビストア価格)で出し、対抗してきましたので、低価格PDFプリンタードライバーの競争も激化しました。
PostScriptプリンタードライバーとGDI型PDFプリンタードライバーの相違
PDFを作成するプリンタードライバーには、PostScriptを経由する方式とGDIからPDFを作り出す方式があると言いました。
やや専門的になりますが、この2種類のプリンタードライバーには次のような違いがあります。
- GDI型のプリンタードライバーはWindowsのGDIの機能に依存しているので、Windows GDIの機能的制約を受ける。
- PostScriptプリンタードライバーは、Windows GDIの機能制限を受けない。
この大きな違いの理由は、PostScriptプリンタードライバーは、Windowsのシステムの中で別格扱いされているということです。そして、アプリケーションは、GDIを経由しないで、PostScriptプリンタードライバーにデータを送り出せます。
両者の方式では、Wordなどでビジネス文書を作成している間は大きな違いはでません。しかし、例えば、商業印刷などでプロ向けのグラフィックソフトウエアを使う場合には大きな差が出てきます。
例えば、テレビなどでカラーを表示するときは、RGB (赤、青、緑の3原色)で表現することは多くの人が知っていると思います。WindowsのGDIも、テレビと同じように、カラーを全てRBGとして表現しています。そして、GDIを経由するPDFプリンタードライバーを使って作成したPDFの中ではカラーはRBGで表現されます。
しかし、印刷でのカラー表現はCMYK 方式を使います。印刷用のアプリケーション・ソフトではカラーをCMYK方式で指定できるものもありますが、CMYK方式で表現したカラーをGDIで表示できません。このため、GDI型のプリンタードライバーで作成したPDFの中では、CMYKカラーを使えません。
また、アプリケーションによっては、PostScriptプリンタードライバーに出力するときと、GDI型のプリンタードライバーに出力するときで、内容を変えてしまうものがあることも分かっています。例えば、マイクロソフトのVisioは、PostScriptプリンタードライバーに対してはベクトル形式でデータを出し、GDI型のプリンタードライバーに対しては、ラスター形式でデータを出すようです。
なお、上記の内容はプリンタードライバーを経由した場合のPDF作成の特徴であって、例えば、アプリケーションから、直接PDF作成ライブラリーを使って(つまりプリンタードライバーを経由しないで)PDFを作れば、RGB以外のカラー表現方式も可能です。
また、Adobe PDFドライバはPostScriptプリンタードライバーですが、PostScriptプリンタードライバーかどうかを認識して、GDIを使わずに出力するのはアプリケーションの役割です。従って、Adobe PDFドライバをGDIのドライバとして認識してしまうアプリケーションにとっては、PDF出力に差がでません。
プリンタードライバーを使ってPDFに対話的機能を設定する
PDFの対話的機能
さて、上述のような(実際のプリンターには接続しない)仮想的なプリンタードライバーでPDFファイルを作成するという方式には、ある特有の制限が出てきます。
ワープロソフトなどのアプリケーションの印刷機能は、プリンターを使って紙に印刷することを想定しています。このため、印刷機能を経由するだけでは、紙にはないけれども、PDFには用意されているいくつかの便利な機能を設定できないのです。
では、PDFにあって紙にない便利な機能とはなんでしょうか? 主なものを簡単に紹介しましょう。
まずはしおり(BookMark)があります。文書のアウトラインをPDFファイルに設定しておきますと、Adobe Readerは、アウトラインを次の図のようにウィンドウに表示します。アウトラインの項目をクリックすると、その項目に設定されたリンク先にジャンプします。
一般的には、文書の見出しを階層化してアウトラインを作ります。項目に設定するジャンプ先は、表示しているPDFファイル内でも外部でも構いません。書籍、操作説明書、仕様書など、ページ数の多いPDFファイルの作成時にしおりを設定すると、読み手が文書全体をナビゲーションしやすくなります。
第二にリンクがあります。PDFファイルの中にリンク先のアドレスを埋め込んでおき、ファイルをAdobe Readerなどで表示したとき、そのホットスポットをクリックすると埋め込まれたアドレスへジャンプするものです。使い方としては、目次から本文へのリンク、索引から本文へのリンク、本文内で別の箇所を参照、などが主なものです。PDFファイル内のみではなく、外部のPDFファイル(の特定の箇所)や外部のWebページへのリンクも設定できます。ユーザーがホットスポットをクリックしたとき、その動作をするのはもちろんPDFビューアーの役割です。
第三はコメントです。PDFでは沢山の種類のコメント機能が使えます。テキストで注釈を書く以外に、線、矩形、円、多角形、折れ線、ハイライト、アンダーライン、取り消し線、スタンプなどが使えます。本文(文書本体)とは別管理になっていて、既存のPDFファイルにコメントを追加したり、削除したりといった編集ができるように配慮されています。マイクロソフトのWordやExcelなどのOffice文書でも、本文とは別にコメントが付けられます。このコメントをPDFファイルを作成するとき、PDF内のコメントにできると便利でしょう。
第四にアクセシビリティ機能があります。
PDFには、これ以外にも紙にはないいろいろな機能がありますが、オフィスソフトで作成するPDFファイルを想定すると、このあたりが主なものです。
PDFプリンタードライバーは、アプリケーションが紙に印刷するつもりでプリンタードライバーに対して出力したデータを取り込んでPDFファイルを作ります。このとき、しおり、リンク、注釈などは、データとして出力されないわけですから、PDFファイルに設定できません。何らかの工夫が必要になります。
PostScriptとDistillerを使ってPDFを作成する場合、PostScript中に特殊な方法でコマンドを埋め込み、上述の対話的機能をPDFに設定できます。この機能をpdfmark (PDF)といいます。DistillerはPostScriptに埋め込まれたpdfmarkを読み込み、PDFの作成に利用します。
PDF Maker
さて、前項の「AcrobatでPDF」でアドビシステムズのAcrobatにはPDFMakerというものがあるとお話しました。
このPDFMakerは、PDFの便利な機能の中で、紙にないためプリンターに印刷する操作では設定できない機能をどうやって設定するか、という課題についてのアドビシステムズの回答と思います。
PDFMakerで具体的にどうやっているのかはわかりません。しかし、OfficeとPDFプリンタードライバーの間に介在して、Officeに印刷動作をさせながら、同時にPDFファイルに設定したい情報を取り出して、PDFプリンタードライバーに渡しているのではないかと想像できます。
これにより、PDFMakerを使えば、OfficeからPDFファイルを作るとき次のようなことができるようになっています。
- Adobe PDFにしおりを追加
- (Word)見出しをしおりに変換
- (Word)スタイルをしおりに変換
- Adobe PDFにリンクを追加
- (Word)相互参照と目次をリンクに変換
- (Word)脚注と文末脚注のリンクを変換
- タグ付PDFでアクセシビリティと折り返しを有効にする
- 表示されたコメントをPDFのノート注釈に変換
しかし、問題点としては、アプリケーション依存となってしまうことです。すなわち、AdobeのPDFMakerが使えるのは、現在、マイクロソフトのOfficeのみとなっていて、さらに、Acrobatのバージョンにより対応可能なOfficeのバージョンが違っています。
なお、アドビシステムズ以外のPDFプリンタードライバーのメーカーも、PDFMakerとの対抗上、同じような解決策に基づくプログラムを製品に同梱しているケースが増えています。
アンテナハウスPDF Driverのアドインボタン
アンテナハウス PDF Driver では、マイクロソフトのWord、Excel、PowerPoint用のアドインボタン機能を追加しています。アドインボタンを使用し、文書作成元のアプリケーションからボタンを押すだけでPDFファイルを作成できます。また、このアドインボタンを使用してPDF出力すると、変換元ファイルに含まれているリンクやしおり等が PDFファイルに反映されます。
対応アプリケーション
アドインが対応しているアプリケーションは次のとおりです。
- Microsoft Word 2003(SP3) / 2007(SP2以降) / 2010(SP1) (32bit / 64bit) / 2013 (32bit / 64bit)
- Microsoft Excel 2003(SP3) / 2007(SP2以降) / 2010(SP1) (32bit / 64bit) / 2013 (32bit / 64bit)
- Microsoft PowerPoint 2003(SP3) / 2007(SP2以降) / 2010(SP1) (32bit / 64bit) / 2013 (32bit / 64bit)
直接PDF作成
OfficeのPDFサポート
2007年初頭に発売が始まったマイクロソフトのOffice 2007からPDFを直接生成する機能が追加されました。
Word、PowerPoint、Excel、Access、Publisher、Visioなどで「名前をつけて保存」や「エクスポート」時にPDFを出力形式に選択できます。
特長は下記の通りです。(2014年6月現在)
- プリンタードライバーを使わずに直接PDFを生成
- 出力されるPDFの仕様は1.5
- 内部リンク、外部リンクなどのハイパーリンク、ブックマーク(しおり)をPDFに保存
- タグ付きPDF(読み上げソフトでアクセス可能)、PDF/Aのサポート
- (DTPソフトでは)CMYKカラーモデルやトンボ出力をサポート
- 透明やグラデーションの品質向上
- フォントの埋め込みをサポート
Apache OpenOfficeのPDF保存
Apache OpenOffice(以下、OpenOffice) は、ワープロソフト、表計算ソフト、プレゼンテーションソフトなどからなるオフィススイート です。マイクロソフトOfficeの置き換えを狙っていて、操作性もOfficeにかなり近くなっています。また、Word、Excel、PowerPointなどのファイルを高い互換性をもって読み込めます。
1999年、アメリカのサン・マイクロシステムズがドイツのStarDivisionを買収します。2000年10月、サン・マイクロシステムズはStarDivisionが販売していたStarOfficeというソフトウエアのソースコードをオープンソースライセンスで公開します。この時のプロジェクト名がOpenOffice.org です。その後、2010年にオラクルがサン・マイクロシステムズを買収。2011年にオラクルからApacheソフトウェア財団へOpenOffice.orgが譲渡されます。現在(2014年6月)は名称がApache OpenOffice へ変わっています。
OpenOfficeは、オープンソースライセンス で提供されているのが特徴です。つまり、だれでもWebサイトからプログラムのソースを含めてダウンロードできます。ソフトウエアを無料で使えるほか、再配布や改変なども決められたルール内で自由にできます。
OpenOfficeは2003年にリリースしたOpenOffice.org 1.1からPDFを直接生成する機能を実現しています。
InDesign、IllustratorのPDF作成
InDesignやIllustratorなども、プリンタードライバーを使わず、直接PDFを出力する機能をもっています。PDFのグラフィック機能をフルに活かしたPDFが生成されていると思われます。
スキャナー、複合機によるPDF作成
スキャナーでPDF作成
PDFの作成方法 – 全体の仕組みに示した図ではパソコンのアプリケーションでPDFを作成する方法を整理しました。しかし、重要なPDF作成手段が抜けていました。それは、スキャナなどで作成した画像をPDF化する方法です。
紙に印刷された文書を電子化するには、紙をスキャナーで読み取り、その結果を電子ファイルにします。PDFが普及する前は、スキャナーで読み取った結果はTIFF やJPEG などの画像ファイル形式で保存していました。しかし、現在は、スキャナーで読み取った結果をPDFで保存する方も多いようです。
Acrobatやアンテナハウスの瞬簡PDFシリーズ(書けまっせ、変換、作成、編集、OCR)などPDFを扱うソフトウエアの多くが、スキャナーから取り込んだ画像をPDFに変換できます。
また、スキャナーを購入すると、大抵の製品にはPDF保存機能が付いてきます。
さらに、スキャナから取り込んだデータを整理するサードパーティーのソフトウエア製品でもPDF保存機能を使えます。
ドキュメントスキャナーの市場で大ブレークしたPFUのカラーイメージスキャナーScanSnap でも、PDFは標準機能の扱いです。スキャンした画像はPDFに変換され、それらを扱うために製品に同梱されているソフトウエアも標準でPDFを操作できます。
既にお話しましたようにPDFの起源はPostSriptです。そんなこともあり、スキャナーの画像からPDFファイルを作るなんて邪道と思われるかもしれませんが、スキャナーでPDFを作る方法には、TIFFなどの画像ファイル形式ではできない様々なメリットがあります。
- PDFにすると、無料配布のPDFリーダーで誰でも内容を見られます。これに対して画像のファイル形式、特にTIFFには様々な種類があり、あらゆる形式のTIFFを表示するのは困難で、形式によっては表示できない可能性があります。
- PDF化すると検索可能にできます。最近は、画像の上に字形表示をしない文字(いわゆる透明テキスト、詳細は後述)を重ねる形式のPDFを作り、その透明テキストを使ってPDFを検索できるようになっています。
- 条件にもよりますが、PDFで保存するとTIFFなどと比べてファイルサイズを小さくできます。
- 複数のページをもつファイル(ページごとに解像度やサイズが異ってもよい)にしたり、別のPDFの任意のページを差し込めます。
- しおりやリンクなどの対話的機能を設定できます。
- スキャンした画像に世界中のユーザーが利用している共通のセキュリティー機能(閲覧パスワードや印刷不可など)を設定できます。
Fax受信のPDF
画像系PDFの活用例として、FAXで受信した内容をPDF保存する方法があります。PDFが普及する前は、FAXソフトはFAX受信内容をTIFFなどで保存していましたが、最近のFAX受信ソフトのほとんどは受信データをPDFにする機能がついています。
例えば、メガソフトの「STARFAX 15」(2012年8月発売)は、受信データをPDF、JPEG、BMP形式で保存 できます。
また、インターコムの「まいと~く FAX 9 Pro 」(2009年1月発売)は、受信FAXのエクスポート機能でPDF形式を選択できます。
ソフトだけではありません。インターネットFAXサービスでは、受信したFAXのイメージをPDFに変換してメールで受け取とれます。
BizFAX ストレージ&リモート(NTTコミュニケーションズ)(2018年7月2日 サービス終了)
デジタル複合機
FAX、スキャナー、プリンター、複写機を統合したデジタル複合機が増えています。複合機のPDFの作成機能については、既に述べたスキャナーやFAX受信とほぼ同じといえるでしょう。
さらに、デジタル複合機は、コンピューターと同じように高機能なOS(オペレーティング・システム)を搭載していて、いろいろなアプリケーションを連携して動作させているのが特長です。作成したPDFファイルを電子メールに添付して送信したり、OCRにかけて透明テキスト付きPDFにしたり、画像を圧縮したり、あるいは、PDFファイルに暗号を掛けるなど、アプリケーションを増やして機能の追加が可能になります。
例えば、リコーのimagio Neoシリーズのニュース:
デジタル複合機だけで、さまざまなセキュリティ設定をしたPDFファイルを簡単に作成するimagio Neoシリーズ用アプリケーションソフト「imagio 暗号化PDF タイプA」を新発売
ここまで高機能ではなく、小規模なオフィスで利用されている普及型のデジタル複合機でも、最近はスキャンした画像を普通にPDF化できます。
例えば、キヤノンのA4モノクロレーザー複合機のMF4750 といった低価格機でもOCRによる透明テキスト付PDFに対応しています。
ビジネス用の高級機ならいろいろな機能があっても驚きませんが、ブラザーのデジタル複合機PRIVIO DCP-J552N は、Amazon.co.jpで9,600円(税込み、2021年2月現在) ですが、 ドキュメント管理ソフトPresto! PageManagerが付いていて、色々なフォーマットのファイルからPDFファイルを作成でき、複数枚の原稿を1つのPDFファイルにまとめることもできるようです。
ここ数年、オフィスの現場ではカタログ、図面、ちょっとした紙文書や手書きのメモなどをコピーをとる感覚で手軽にPDF化が行われているようです。しかもPDFはバックグラウンドで標準設定でOCR処理され透明テキスト付きになっているわけです。Windows 7以降のパソコンなら、手軽に全文検索もできるようになります。画像ファイルとPDFの垣根がなくなりつつあるのかもしれません。
透明テキスト付きPDF
紙に印刷された書類をスキャンして、スキャナーが作成したイメージからPDFファイルを作成した場合、もともと文字で表されている情報なのに、PDFファイルでは文字情報として扱えないという課題があります。
コンピューターで文字情報を取り扱うためには、文字をコード化されたデータとして扱わなければならないのに、スキャンした結果は画像だから当然ですね。この問題を解決するのがOCR技術と透明テキスト付きPDFです。最近では透明テキスト付きPDFをサーチャブルPDFと呼ぶ場合もあります。
透明テキスト付PDFとは、スキャナーで読み取った画像をOCR機能をつかって文字を認識し、PDFの画像の上に見た目が透明になるような属性を持たせた文字(テキスト情報)を重ねたものです。便宜上、透明と表現していますが、その実体は、文字の字形を表示しないようにしたテキストです。PDFファイルの内容である文字情報を利用したいときは、このテキストを取り出して利用できます。また、PDFファイルの中を検索してヒットした文字列の該当部分の反転表示もできます。
透明テキスト付きPDFが作成できる最初の製品はアドビシステムズのAcrobat CaptureというOCR応用製品でした。OCRによる透明テキストの追加だけでなく、フォント、線画(ベクトルで再現する部分)、ビットマップ画像(ラスターイメージで再現する部分)を認識してPDF上で組版を再現する機能や、スキャン作業を効率化するツールなども備えていました。大変高価で、処理枚数による料金体系があるなど、事業者向けの製品でした。後にこの機能の一部(OCRと透明テキスト付加)はAcrobatにも導入されます。
この製品のアイデアはアメリカなどで既存の文書の電子化に大いに役立ったと聞いています。仕組みを聞いてみれば、特に驚くほどのことはないですが、こういうアイデアを初めて考え出した人は、なかなかすごいものですね。
一昔前のスキャンソフトウエアは、OCRで文字認識した結果をWord、Excelあるいは一太郎に変換できるのが売りでしたが、今のOCRソフトウエアの多くは透明テキスト付きPDFまで作成できます。
OCRソフトウエアの一通りの紹介は、例えばこちら:
比較2021 現行の日本語OCRソフトの性能評価
ところでOCRで文字認識した結果を、もとの画像に重ねるというアイデアはすごいものですが、実は完全には重ならないようです。
次の例を見てください。これは、透明テキスト付きPDFをAcrobat6で表示して、「消費電力」という文字列を検索したものです。検索対象は、透明な文字で、ヒットした文字列に相当する部分が白黒反転されています。地の「消費電力」という文字と検索でヒットした文字の位置(白黒反転されている範囲)がずれています。
これはPDFを作る際に透明文字の位置がずれているためです。このように画像と文字がずれてしまう場合があることは知っているとよいと思います。
お問い合わせは
本ページへのご意見・ご質問は、info@antenna.co.jpまでお気軽にお問合せください。
また、弊社オンラインショップでは本ページで紹介した製品をお得な価格でご購入いただけます。是非ご利用ください。