PDFlibとは?
PDFlibはドイツPDFlib社が開発した、Adobe PDF(Portable Document Format)形式ファイルを生成するプログラムライブラリーです。PDFを取り扱う標準的なライブラリーとして世界60カ国以上で10,000ライセンス以上、我国でも1,000ライセンス以上が利用されている定番ソフトウェアです。
PDFはその仕様書が英文で1,000ページを超えるほど複雑な文書仕様ですが、PDFlibを使用することによりプログラマーはPDFの内部的な詳細に煩わされずに、簡単に、テキスト、画像などにより構成される複雑なPDF文書やデータに応じて変更するダイナミックなPDF文書、あるいは既存のPDF文書を取り込んだPDF文書などを生成することができます。
PDFlibは、テキスト、グラフィック、イメージやハイパーテキストをPDF上で生成する多くの関数を提供しています。オプションであるPDI(PDF Import Library)は、作成済のPDFドキュメントのページを出力に取り込む機能、さらにページの各種属性を取り出す機能(注)を提供します。
(注)PDFlib7よりサポート
PDFlibは基本的にはPDF文書を作成するソフトウェアですが、姉妹製品であるTETやpCOSにより既存のPDF文書の高度な読み取りや解析が可能です。これらの製品を組み合わせて使用することにより、総合的なPDF文書処理アプリケーションの開発が可能になります。
PDFはその仕様書が英文で1,000ページを超えるほど複雑な文書仕様ですが、PDFlibを使用することによりプログラマーはPDFの内部的な詳細に煩わされずに、簡単に、テキスト、画像などにより構成される複雑なPDF文書やデータに応じて変更するダイナミックなPDF文書、あるいは既存のPDF文書を取り込んだPDF文書などを生成することができます。
PDFlibは、テキスト、グラフィック、イメージやハイパーテキストをPDF上で生成する多くの関数を提供しています。オプションであるPDI(PDF Import Library)は、作成済のPDFドキュメントのページを出力に取り込む機能、さらにページの各種属性を取り出す機能(注)を提供します。
(注)PDFlib7よりサポート
PDFlibは基本的にはPDF文書を作成するソフトウェアですが、姉妹製品であるTETやpCOSにより既存のPDF文書の高度な読み取りや解析が可能です。これらの製品を組み合わせて使用することにより、総合的なPDF文書処理アプリケーションの開発が可能になります。
PDFlibのサポート言語とOS
PDFlibは、Unix、Windows、Mac OSやIBM社のeServer iSeries 400やzSeries S/390まで多彩なプラットフォームで利用可能です。PDFlib自身はC言語で開発されていますが、言語バインディングを用意することにより、さまざまな言語から使用することができます。現在利用されている主要なウェブシステムやスタンドアローンアプリケーション言語のほとんどをサポートしています。
現在、PDFlibは下記の言語バインディングをサポートしています。
現在、PDFlibは下記の言語バインディングをサポートしています。
- Micsosoft社COM環境(同Visual Basic、同VBScriptまたはJScriptによりActive Server Page、Borland社Delphi、Windows Script Host、その他)
- Ansi C
- Ansi C++
- Cobol(IBM社 eServer zSeries)
- Java, Servletも含む
- Microsoft社.NET(同C#、VB.NET、ASP.NET、その他)
- PHP Hypertext processor
- Perl
- Python
- RPG(IBM eServer iSeries 400)
- Tcl
- Windows 2000/XP, Windows Server2000/2003
- Mac OS X(PPC, Intel), Mac OS X Server(PPC, Intel)
- Linux (x86, x86_64, IA-64, EM64T)
- FreeBSD (X86系)
- Sun Solaris 7-10 (x86, sparc)
- IBM AIX 4/5L
- HP-UX 10-20/11i (PA-RISC, IA-64)
- iSeries (AS400)
- zSeries (MVS)
- Linux-S390
PDFlibの応用分野
PDFlibの主なねらいは、ユーザプログラムの中、あるいはウェブ上でダイナミック(動的)にPDFを作成することです。ウェブ上で動的に生成されるHTMLページと同様に、ユーザ入力やウェブサーバ上のデータベースから参照されるような動的なデータをもとにPDFlibプログラムは動的にPDFを生成します。
PDFlibには下記のような特長があります。
PDFlibには下記のような特長があります。
- PDFlibはデータを生成するアプリケーションプログラムに直接統合されます。このため、アプリケーション->PostScript->Acrobat Distiller->PDF といった面倒な手順を踏む必要がありません。
-
この単純明快な手順により、PDFlibはウェブサイトに適した、最も高速なPDF生成手段となっています。
- PDFlibのスレッドセーフおよび堅牢なメモリー管理とエラー処理は、高速なサーバアプリケーションの実装を可能にしています。
- PDFlibはさまざまなオペレーティングシステムと開発環境で利用可能です。
PDFlibを利用するための知識
PDFlibでは、関数をコマンドのように手順に従って呼び出すだけでPDF文書を生成することができます。(プログラムの例については「PDFib入門」を参照してください。)
このため、1000ページを超えるPDF仕様書を苦労して読む必要はありませんが、PDFにおける基本的なグラフィックモデルを理解しているとよりPDFlibを活用することができます。
画面表示や印刷のためのなんらかのグラフィックAPI(Appication Program Interface)を扱ったことがあるプログラマーならば、PDFlibマニュアルに記述してあるPDFlib APIを容易に理解できます。
画面表示や印刷のためのなんらかのグラフィックAPI(Appication Program Interface)を扱ったことがあるプログラマーならば、PDFlibマニュアルに記述してあるPDFlib APIを容易に理解できます。
PDFlibの製品構成
PDFlibには、

の3種類の製品が用意されています。このうち、3.PDFlib Personalization Server(PPS)には対話型操作でブロックを定義するPDFlib Block Pluginの利用権も含まれます。
ダウンロードする製品パッケージには、上記の全てのライブラリーが含まれており、ライセンスキーにより、購入製品に応じたライブラリーが有効となります。マニュアル等のドキュメントも全て製品パッケージの中に含まれます。製品はダウンロードのみで提供され、印刷されたマニュアルやCD-ROM等の電子媒体による製品提供は行っていません。
各製品でサポートされている機能は下表の通りです。
表 製品別の機能
[ 1:PDFlib 2:PDFlib+PDI 3:PDFlib Personalization Server ]
- PDFlib
- PDFlib+PDI
- PDFlib Personalization Server(PPS)

の3種類の製品が用意されています。このうち、3.PDFlib Personalization Server(PPS)には対話型操作でブロックを定義するPDFlib Block Pluginの利用権も含まれます。
ダウンロードする製品パッケージには、上記の全てのライブラリーが含まれており、ライセンスキーにより、購入製品に応じたライブラリーが有効となります。マニュアル等のドキュメントも全て製品パッケージの中に含まれます。製品はダウンロードのみで提供され、印刷されたマニュアルやCD-ROM等の電子媒体による製品提供は行っていません。
各製品でサポートされている機能は下表の通りです。
[ 1:PDFlib 2:PDFlib+PDI 3:PDFlib Personalization Server ]
| 機能 | API(関数) | 製品(注) | ||
| 1 | 2 | 3 | ||
| 基本的なPDF生成 | 下記以外の全関数 | ○ | ○ | ○ |
| 言語バインディング | C, C++, Java, Perl, Tcl, PHP, Python, Ruby, Cobol, COM, .NET, REALbasic, RPG | ○ | ○ | ○ |
| EBCDICシステムでの動作 | 全関数 | ○ | ○ | ○ |
| 暗号化(パスワード保護・権限設定) | PDF_begin_document() userpassword, masterpassword, permissionsオプション | ○ | ○ | ○ |
| リニアライズドPDF | PDF_begin_document() linearlizedオプション | ○ | ○ | ○ |
| PDFファイルサイズの最小化 | PDF_begin_document() optimizeオプション | ○ | ○ | ○ |
| フォントサブセット | PDF_load_font() subsettingオプション | ○ | ○ | ○ |
| カーニング | PDF_load_font() kerningオプション | ○ | ○ | ○ |
| Windows/Macホストフォントのアクセス | PDF_load_font() | ○ | ○ | ○ |
| Windows/iSeries/zSeriesシステムエンコーディングへのアクセス | PDF_load_font() | ○ | ○ | ○ |
| Unicodeエンコーディング及びToUnicode CMaps | PDF_load_font() encoding = unicode, autocidfont, unicodemap | ○ | ○ | ○ |
| 文字の数値・名前参照、グリフ名参照 | PDF_fit_textline() charrefオプション、charrefパラメータ | ○ | ○ | ○ |
| UCS2 CMaps標準CJKフォントのプロポーショナル字幅 | PDF_load_font() 標準CJKフォント、CMap | ○ | ○ | ○ |
| glyph ID アドレッシング | PDF_load_font() encoding=glyphid | ○ | ○ | ○ |
| CJK慣用エンコーディング | PDF_load_font() 標準CMaps、CJKコードページ | ○ | ○ | ○ |
| グリフの置換 | PDF_load_font() replacementcharオプション | ○ | ○ | ○ |
| PostScriptベースOpenTypeフォント拡張エンコーディング | PDF_load_font() | ○ | ○ | ○ |
| Type 3フォントの属性 | PDF_begin_font() familyname、stretch、weightオプション | ○ | ○ | ○ |
| フォント詳細情報の取得 | PDF_info_font() | ○ | ○ | ○ |
| 複数行レイアウト | PDF_create_textflow(), PDF_delete_textflow(), PDF_fit_textflow(), PDF_info_textflow() | ○ | ○ | ○ |
| 表の作成 | PDF_add_table_cell(), PDF_delete_table(), PDF_fit_table(), PDF_table() | ○ | ○ | ○ |
| スポットカラー | PDF_makespotcolor() | ○ | ○ | ○ |
| 色分版 | PDF_begin_page_ext() separationinfoオプション | ○ | ○ | ○ |
| フォームフィールド | PDF_create_field(), PDF_create_fieldgroup() | ○ | ○ | ○ |
| JavaScriptアクション | PDF_create_action() type=JavaScript | ○ | ○ | ○ |
| レイヤー | PDF_define_layer(), PDF_begin_layer(), PDF_end_layer(), PDF_set_layer_dependency(), PDF_create_action() type=SetOCGState | ○ | ○ | ○ |
| マルチメディア/3D | PDF_load_3ddata(), PDF_create_3dview(), PDF_create_action() type=3D | ○ | ○ | ○ |
| タグ付きPDF | PDF_begin_item(), PDF_end_item(), PDF_activate_item(), PDF_begin_document tagged/langオプション | ○ | ○ | ○ |
| JPEG2000画像 | PDF_load_image() imagetype=jpeg2000 | ○ | ○ | ○ |
| TIFF及びJPEG画像のクリッピングパス | PDF_load_image() clippingpathname, honorclippingpathオプション | ○ | ○ | ○ |
| PDF/Aサポート | PDF_begin_document() pdfaオプション | ○ | ○ | ○ |
| PDF/Xサポート | PDF_begin_document() pdfxオプション | ○ | ○ | ○ |
| ICCプロファイル | PDF_load_iccprofile(), PDF_setcolor() iccbasedgray/rgb/cmyk, PDF_load_image() honoriccprofileオプション, honoriccprofileパラメータ, PDF_begin/end_page_ext() defaultgray/rgb/cmykオプション | ○ | ○ | ○ |
| CIE L*a*b* color | PDF_setcolor() type=lab | ○ | ○ | ○ |
| XMPメタデータサポート | PDF_begin_document() autoxmpオプション, その他関数でのmetadataオプション | ○ | ○ | ○ |
| OPIサポート | PDF_load_image OPI-1.3/OPI-2.0オプション | ○ | ○ | ○ |
| PDFインポート(PDI) | PDF_open_pdi(), PDF_open_pdi_callback(), PDF_open_pdi_page(), PDF_fit_pdi_page(), PDF_process_pdi() | ○ | ○ | |
| pCOSによる既存PDF文書属性問合せ | PDF_pcos_get_number(), PDF_pcos_get_string(), PDF_pcos_get_stream() | ○ | ○ | |
| ブロックによる動的データ処理とパーソナライゼーション | PDF_fill_textblock(), PDF_fill_imageblock(), PDF_fill_pdfblock() | ○ | ||
| ブロック標準/カスタム属性の問合せ | PDF_get_pdi_value(), PDF_get_pdi_parameter() vdp/Blockキー | ○ | ||
| PDFlib Block Acrobat用プラグイン | PDFlib Blockの対話型生成 | ○ | ||
PDFlibの入手方法
PDFlibは、主要プラットフォームについては、当サイトのダウンロードページから、それ以外はwww.pdflib.comでダウンロードして試用することができます。
ダウンロードしたPDFlibは評価版パッケージとして上記表にある3種類の製品の全ての機能を使用することができます。ただし、有効なライセンスキーを適用するまでは、全ての出力ページにデモスタンプが表示されます。ご注文後、送付されるライセンスキーをパッケージに適用するとデモスタンプが出力されなくなります。
最上位製品のPDFlib Personalization Server(PPS)以外を購入された場合には、ライセンスキーの適用により該当する製品の機能しか利用できなくなりますので、ご注意ください。アプリケーションで必要な関数がどの製品に含まれるのか十分確認のうえ、購入製品を決定してください。
本製品のご注文方法については、PDFlibの購入方法をご覧ください。また機能の詳細についてはダウンロードページにある日本語リファレンスマニュアルを参照ください。また各言語バインディングにはサンプルプログラムがありますので、動作確認等にご利用ください。
ダウンロードしたPDFlibは評価版パッケージとして上記表にある3種類の製品の全ての機能を使用することができます。ただし、有効なライセンスキーを適用するまでは、全ての出力ページにデモスタンプが表示されます。ご注文後、送付されるライセンスキーをパッケージに適用するとデモスタンプが出力されなくなります。
最上位製品のPDFlib Personalization Server(PPS)以外を購入された場合には、ライセンスキーの適用により該当する製品の機能しか利用できなくなりますので、ご注意ください。アプリケーションで必要な関数がどの製品に含まれるのか十分確認のうえ、購入製品を決定してください。
本製品のご注文方法については、PDFlibの購入方法をご覧ください。また機能の詳細についてはダウンロードページにある日本語リファレンスマニュアルを参照ください。また各言語バインディングにはサンプルプログラムがありますので、動作確認等にご利用ください。
(注)本記事はPDFlib社の情報を参考にしてインフォテックが作成しています。
|
|
|



