パーソナルビジネスソフトとお役立ち情報のサイト
PDFlibの概要

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文書処理アプリケーションの開発が可能になります。

PDFlibのサポート言語とOS

PDFlibは、Unix、Windows、Mac OSやIBM社のeServer iSeries 400やzSeries S/390まで多彩なプラットフォームで利用可能です。PDFlib自身はC言語で開発されていますが、言語バインディングを用意することにより、さまざまな言語から使用することができます。現在利用されている主要なウェブシステムやスタンドアローンアプリケーション言語のほとんどをサポートしています。

現在、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
またPDFlibのサポートOS環境(プラットフォーム)は、下記の通りです。

  • 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の応用分野

PDFlibの主なねらいは、ユーザプログラムの中、あるいはウェブ上でダイナミック(動的)にPDFを作成することです。ウェブ上で動的に生成されるHTMLページと同様に、ユーザ入力やウェブサーバ上のデータベースから参照されるような動的なデータをもとにPDFlibプログラムは動的にPDFを生成します。

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を容易に理解できます。

PDFlibの製品構成

PDFlibには、
  1. PDFlib
  2. PDFlib+PDI
  3. 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(関数)製品(注)
123
基本的なPDF生成下記以外の全関数
言語バインディングC, C++, Java, Perl, Tcl, PHP, Python, Ruby, Cobol, COM, .NET, REALbasic, RPG
EBCDICシステムでの動作全関数
暗号化(パスワード保護・権限設定)PDF_begin_document() userpassword, masterpassword, permissionsオプション
リニアライズドPDFPDF_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 CMapsPDF_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
マルチメディア/3DPDF_load_3ddata(), PDF_create_3dview(), PDF_create_action() type=3D
タグ付きPDFPDF_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* colorPDF_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社の情報を参考にしてインフォテックが作成しています。


(July 14,2003 - Aug 22, 2007)