PDFlib 製品に関するよくある質問
ここでは、PDFlib に関してのお問合せのうち、一般的なものと思えるものをまとめてあります。ご不明点がある場合には、こちらからお問合せください。なお PDFlib の全般的な利用方法については、当ウェブの記事「PDFlib入門」や「技術情報」でご紹介していますので、こちらもご参照ください。なお、記述内容がバージョンの相違などにより該当しない場合もありますので、あらかじめご了承ください。
[インストール・ライセンスキー]
[製品の機能]
- Acrobat バージョンへの対応
- PDF/X 形式への対応
- Web 用 PDF 形式への対応
- MS オフィス文書の変換
- 対話型 PDF 作成ツールとしての利用
- 利用できる日本語フォント
- Linux で利用できる日本語フォント
- フォントの埋め込み方法
- PDFlib 7.0 での CJK フォントの利用方法
- Form, JavaScript の作成
- PDFlib 6.0 から PDFlib7.0 へ移行させるには
[iPhone / iPad / Android 向け]
[パッケージ、ライセンス他]
[インストール・ライセンスキー]
たとえば、Windows用パッケージでは、C及びC++バインディングの設定方法は、doc/readme-binary.txt に記述されています。その他の言語バインディングについては、各バインディング用のバイナリー、サンプルプログラム等を収容している /bind 下の各言語ディレクトリー、例えばphpであれば、bind/php/のreadme.txt に設定方法が記載されています。またリファレンスマニュアルの各バインディングの説明中に設定に関する記述があることもありますので、こちらも参照ください。なお、readme.txtの記述は英語となっています。
■スクリプトまたはプログラムで実行時にライセンスキーを指定する方法
$p = new PDFlib(); $p->set_parameter("license", "...あなたのライセンスキー..."); . . . $p = 0;
パラメータ license は PDF_new() などによりPDFlibのオブジェクトを初期化した直後に指定することが可能です。
■ライセンスファイルによりライセンスキーを指定する方法
下記のようなテキストファイル(ライセンスファイル)を作成し、ライセンスキーを指定す ることができます。
PDFlib license file 1.0 # Licensing information for PDFlib GmbH products PDFlib 8.0 ...あなたのライセンスキー...
このライセンスファイルには、PDFlibの複数のライセンスをそれぞれ別の行に記述することができます。
次に、ライセンスファイルのパスを下記のいずれかの方法で指定します。
1)下記のように licensefile パラメータをPDF_new() などによりPDFlibのオブジェクトを初期化した直後にただ一度だけ設定します。
$p = new PDFlib(); $p->set_parameter("licensefile", "/path/to/license/file"); . . . $p = 0;
2)下記のようなコマンドで、環境変数 PDFLIBLICENSEFILE を設定します。(設定コマンドは処理系により異なります。)
export PDFLIBLICENSEFILE=/path/to/license/file
(注)/path/to/licennse/fileは、ライセンスファイルへのパスで処理系に応じた記述をする必要があります。
■個別のキーを複数適用する方法
複数のライセンスキーを別々の注文で購入した場合に、これらのキーをライセンスファイルにまとめて指定することにより合計のCPU数のライセンスを適用することができます。この場合、各ライセンスキーを1行ずつ指定します。また関数 PDF_set_parameter() を複数回呼び出して各ライセンスキーを指定することもできます。
■ライセンス適用を一時的に外す方法
ライセンスを適用したPDFlibは、購入したライセンス以外の機能は使用できなくなります。ライセンス適用後に通常使用できない上位のパッケージ機能を評価したい場合には、下記のようにダミーのライセンスキーを適用して全ての機能を使用することができます。この場合は全ての出力に評価版と同様のデモスタンプが表示されます。
$p = new PDFlib(); $p->set_parameter("license", "0"); . . . $p = 0;
(注)本記述は、PDFlib リファレンスマニュアル 「0. PDFlibライセンスキーの適用」をもとにまとめたものです。正式の記述についてはマニュアルを参照してください。
$p = new PDFlib(); $p->set_parameter("license", "license key"); $p->begin_document("/sample/sample.pdf", ""); . . . $p->end_document(""); $p = 0;
PDFlib license file 1.0 # Licensing information for PDFlib GmbH products PDFlib 6.0.3 first key PDFlib 6.0.3 additinal key
set_paramaterを使用してライセンスキーを適用している場合、下記の様にしてください。
$p = new PDFlib(); $p->set_parameter("license", "first key"); $p->set_parameter("license", "additinal key"); . . . $p = 0;
p = new pdflib(); p.set_parameter("license", "license key"); . . .
[製品の機能]
| PDFバージョン | ソフトウェアバージョン |
| PDF 1.3 | Acrobat Reader 4 ※一部、利用できる機能に制限があります。 |
| PDF 1.4 | Acrobat Reader 5 |
| PDF 1.5 | Adobe Reader 6 |
| PDF 1.6 | Adobe Reader 7 |
| PDF 1.7 | Adobe Reader 8 |
| PDF 1.7 ext level 3 | Adobe Reader 9 |
| PDF 1.7 ext level 8 | Adobe Reader X |
PDF_begin_document( ) のcompatibility オプションを指定する事により、指定したバージョンでのPDFファイルの出力が可能です。 例えば、Acrobat Reader 4 ユーザー用にPDF 1.3 で出力する場合、下記の様に指定します。
$p = new PDFlib(); $p->begin_document("/sample/sample.pdf", "compatibility=1.3"); . . . $p->end_document(""); $p = 0;
但し下記の条件があります。
- PDIやPPSでファイルを読み込んでPDFを生成する場合、読み込むPDFファイルは、出力しようとしているPDFファイルのファイルバージョンと同じか、より古いバージョンでなけばならない。
- 指定したPDFフォーマットでサポートされていない機能を使用する事は出来ない。
| PDF/X バージョン | ISO | PDFバージョン |
| PDF/X-1:2001 PDF/X-1a:2001 | ISO 15930-1 | PDF 1.3 |
| PDF/X-3:2002 | ISO 15930-3 | PDF 1.3 |
| PDF/X-1a:2003 | ISO 15930-4 | PDF 1.4 |
| PDF/X-2:2003 | ISO 15930-5 | PDF 1.4 |
| PDF/X-3:2003 | ISO 15930-6 | PDF 1.4 |
| PDF/X-4 | ISO 15930-7 | PDF 1.6 |
| PDF/X-5 | ISO 15930-8 | PDF 1.6 |
PDF/X出力する場合、ファイルの特性上、下記の処理が必要になります。
- フォントの埋め込み
- 画像は実画像を埋め込む
- 出力フォーマットに応じたPDFフォーマットの選択
$p = new PDFlib(); $optlist = sprintf("linearize=true "); ↑線形化を行う指定をします。 $optlist .= sprintf("inmemory=true "); ↑線形化処理メモリ内で行う為の指定です。 $p->begin_document("/sample/sample.pdf", $optlist); . . . $p->end_document(""); $p = 0;
Web用PDFを有効に利用する為には、下記の制限があります。
- Web サーバがバイトサービングに対応している事。
基本的には現行のすべてのWeb サーバに実装されていますが、Apache 1.3.14 にはバグがありバイトサービングができません。(他のバージョンは可) - ユーザーは Acrobat をブラウザのプラグインとして使用する事。
- Acrobatでページごとのダウンロードが有効になっている事。(デフォルトは有効になっています。)
CJKフォントは、Acrobatが標準でサポートしており、PDF文書に埋め込む必要の無いスタンダードCJKフォント及びユーザが指定するTrueTypeやOpenType形式のカスタムCJKフォントの2種類があります。PDFlib6からはフォントに関する制限がかなり緩和されましたが、スタンダードCJKフォントを非ユニコード系のCMapで使用する場合には以下の機能を使用できません
- PDF_stringwdith()関数での文字幅計算
- PDF_show_Boxed()関数でのボックス整形(UCS2でも不可)
- アンダーライン/オバーライン/ストライクアウトモードの指定
- textx/textyの位置の取得
| CMap名 | 文字セットとテキスト形式 |
| UniJIS-UCS2-H, -V | Adobe-Japan1 文字コレクションのUnicode (UCS-2) エンコーディング |
| UniJIS-UCS2-HW-H UniJIS-UCS2-HW-V | UniJIS-UCS2-H と同じ。ただし、プロポーショナル欧文文字が半角の形に置き換えられている |
| UniJIS-UTF16-H UniJIS-UTF16-V | Adobe-Japan1 文字コレクションの Unicode(UTF-16BE) エンコーディング。JIS X 0213:1000 文字セットのすべての文字割り当てを含む |
| 83pv-RKSJ-H | Mac・JIS X 0208 文字セット + 漢字Talk6 拡張・Shift-JIS・Script Managerコード1 |
| 90ms-RKSJ-H | Microsoft コード932 (charset 128)、JIS X 2008 |
| 90msp-RKSJ-V | 文字セット + NEC・IBM拡張 |
| 90msp-RKSJ-H 90msp-RKSJ-V | 90ms-RKSJ-Hと同じだが、半角英字をプロポーショナル形に替えたもの |
| 90pv-RKSJ-H | Mac・JIS X 0208 文字セット + 漢字Talk7 拡張・Shift-JIS・Script Managerコード1 |
| Add-RKSJ-H, -V | JIS X 208 文字セット + 富士通 FMR 拡張・Shift-JIS エンコーディング |
| EUC-H, -V | JIS X 0208 文字セット、EUC-JP エンコーディング |
| Ext-RKSJ-H, -V | JIS C 6226 (JIS78) 文字セット + NEC 拡張、Shift-JIS エンコーディング |
| H, V | JIS X 0208 文字セット、ISO-2022-JP エンコーディング |
カスタムフォントは、TrueType形式(TTC形式を含む)、OpenType形式のカスタムフォントに対応しています。
CJKフォントや日本語フォントの取扱いの詳細についてはリファレンスマニュアル「4.7 日本語・中国語・韓国語テキスト」に記述されています。
また当社ウェブ記事「PDFlib入門 5.テキストを出力する」でもご説明しています。
$p = new PDFlib(); $p->begin_document("/sample/sample.pdf", ""); $p->set_parameter("SearchPath", "/usr/local/fonts"); ↑フォントファイルの場所を指定します。 $p->set_parameter("FontOutLine", "ABCMincho=ABCMincho.TTF"); ↑フォントアウトラインを指定します。 $optlist = sprintf("embedding=true "); ↑フォント埋め込みを行うように指示します。 $optlist .= sprintf("autosubsetting=true "); ↑サブセッティングを行うように指示します。 $p->load_font("ABCMincho", "unicode", $optlist); . . . $p->end_document(""); $p = 0;
サブセッティングを行うと、フォント全てを埋め込む場合と比較してファイルサイズを小さくする事が可能です。日本語フォント等のファイルサイズの大きいフォントを埋め込む場合に有効な方法です。
サブセッティング処理を行うには、フォントが下記の必要があります。
- TrueType フォント
- PostScript かTrueType のアウトラインを持つOpenType フォント
※フォントの埋め込みは、埋め込むフォントのライセンスをご確認下さい。フォントによっては埋め込んだ文書の配布等に制限があります。
$p = new PDFlib(); $p->begin_document("/sample/sample.pdf", ""); $p->set_parameter("SearchPath", "../../../resource/cmap"); ↑CMapsファイルの場所を指定します。 $p->load_font("Arial Unicode MS", "cp932", ""); . . . $p->end_document(""); $p = 0;
※テクニカルトピックでもPDFlib 6 からの移行として詳しく説明しています。
なおPDFlib Personalization Server(PPS)では、フォームと類似した機能として、テキスト、イメージ及びPDFページを動的に挿入できるブロックという領域を利用できます。ブロックは、名前と属性を持つ領域で、PDFlib ブロックプラグインをインストールしたAcrobatによりPDF文書上に簡単に定義することができます。
| PDFlib 6 | PDFlib 7, 8 |
| open_pdi 関数 | open_pdi_document 関数 |
| close_pdi 関数 | close_pdi_document 関数 |
| get_pdi_value 関数 | pcos_get_number 関数 |
| get_pdi_parameter 関数 | pcos_get_string 関数 |
また、PDI用によく使用される下記の関数が変更になりました。
| PDFlib 6 | PDFlib 7, 8 |
| begin_template 関数 | begin_template_ext 関数 |
上記を参考に、コードを書き換えてください。
※テクニカルトピックでもPDFlib 6 からの移行として詳しく説明しています。
[iPhone / iPad / Android 向け]
PDFlib で PDF文書を作成する場合に限り、TrueType フォントとして、PDFlib 日本語リソースキットに含まれている日本語フォント (MS明朝、MSゴシック) を使用することもできます。
[パッケージ、ライセンス他]
デベロッパー様が開発に利用するライセンスについてもあわせてご購入をご検討いただくようお願いいたします。
(注)購入いただいたパッケージの種類に応じた利用機能の制限を受けます。
請求書、領収証については、ご購入時に購入フォームに選択欄がありますので、「郵送、FAXの別(両方でも可)」も合わせてご指定ください。
![]() |
![]() |
![]() |
- PDFlib サンプル集更新 (5/10/2012)
- PDFlib pCOS パスリファレンス 8 リリース (5/8/2012)
- PDFlib TET 4.1 リリース (2/27/2012)
- TET PDF IFilter 4.1 リリース (2/27/2012)
- iPhone / iPad / Android 向け TET リリース (2/27/2012)
- PDFlib 8.0.4 リリース (1/11/2012)
- PDFlib ブロックプラグイン 4.4 リリース (1/11/2012)
- iPhone / iPad / Android 向け PDFlib リリース (1/11/2012)
- PDFlib サンプル集更新 (1/12/2012)
- PDFlib 8.0.3 日本語チュートリアルリリース (8/17/2011)
- PDFlib 8.0.3 日本語 API リファレンスリリース (8/17/2011)
- TET プラグイン 4.2 リリース (08/17/2011)
- PDFlib サンプル集更新 (8/10/2011)
- PDFlib 8.0.3 リリース (7/14/2011)
- PDFlib ブロックプラグイン 4.3 リリース (7/14/2011)
- PDFlib ブロックプラグイン 4.3ベータ リリース (6/6/2011)
- PDFlib PLOP 4.1、PLOP DS 4.1 リリース (4/4/2011)
- TET プラグイン 4.1 リリース (12/24/2010)
- PDFlib pCOS パスリファレンス 7 リリース (12/22/2010)
- PDFlib 8.0.2 リリース (12/15/2010)
- PDFlib TET 4.0 日本語マニュアルリリース (11/24/2010)
- PDFlib pCOS 3.0 リリース (11/10/2010)
- PDFlib 8.0.1p7 の問題のお知らせ (9/30/2010)
- TET プラグイン 4.0 リリース (8/4/2010)
- PDFlib TET 4.0 リリース (8/2/2010)
- TET PDF IFilter 4.0 リリース (8/2/2010)
- PDFlib 8 日本語チュートリアル (7/21/2010)
- PDFlib 8 日本語リファレンス (5/7/2010)
- PDFlib 7.0.5 リリース (5/6/2010)
- PDFlib 8.0.1 リリース (4/16/2010)
- PDFlib 開発サービス開始 (4/16/2010)
- PDFlib サポートサービス刷新 (4/1/2010)
- PDFlib サンプルページ開設 (3/19/2010)
- PDFlib 8.0.0p4 Win32 PHP の問題のお知らせ (2/23/2010)
- PDFlib PLOP、PLOP DS 4.0 リリース (12/26/2008)
- PDFlib 日本語リソースキット (10/3/2008)
- PLOP 日本語マニュアル (8/5/2008)




