PDFlib

高度なPDFアプリケーションの開発を支援する定番プログラムライブラリー Supported by インフォテック株式会社

PDFlib 製品に関するよくある質問

ここでは、PDFlib に関してのお問合せのうち、一般的なものをまとめています。ご不明な点やその他の質問は お問い合わせフォームからお問合せください。なお PDFlib の全般的な利用方法については、当ウェブの記事 「PDFlib 入門」「PDFlib 製品の技術情報」で紹介していますので、こちらもご覧ください。

なお、記述内容がバージョンの相違などにより該当しない場合もありますので、あらかじめご了承ください。

[PDFlib について]

[購入について]

[PDFlib スタンダードサポートサービスについて]

[PDFlib 製品の機能について]

[ライセンスキーについて]

[パッケージ、ライセンス、その他]

[技術的な質問]


[PDFlib について]

Q.PDFlib とはどんな製品ですか?

A.PDFlib は PDF ファイルの作成や処理を行うためのプログラムライブラリーです。

PDF の仕様に従って実装された API を使用することで、PDF ファイルの作成や読み取りなどの作業を簡単に行うことができます。

詳細は PDFlib とはをご覧ください。


Q.PDFlib 製品は3種類に分かれていますが、それぞれどのような特長がありますか?

A.PDFlib/PDFlib+PDI/PPS は PDF の作成を行います。

TET は PDF ファイルからテキストや画像を抽出します。

PLOP/PLOP DS は PDF ファイルにパスワードや印刷制限を行います。

より詳しい各製品の特長については、PDFlib 製品の選び方および各製品の製品紹介をご覧ください。


Q.PDFlib は日本語に対応していますか?

A.はい、PDFlib は日本語にも対応しています。

PDFlib/PDFlib+PDI/PPS では日本語フォントを使って PDF ファイルを作成できます。

また、TET では、PDF ファイルからテキストを Unicode で取得することができます。


Q.PDFlib を試してみようと思うのですが、どうすればいいですか?

A.PDFlib は、ダウンロードページからダウンロードしてそのまま評価版として試用することができます。

評価版の状態でも、いくつかの制限を除き製品版と同様にお使いいただけます。

また、運用前の検証等の目的で製品版での動作を確認したい場合、利用期限を制限した検証用のライセンスキーを発行いたします (製品の購入を前提とした対応です)。 お問い合わせフォームからお問合せください。


Q.PDFlib の導入方法は何を見ればわかりますか?

A.導入及び設定方法については、ダウンロードした PDFlib 製品パッケージの中の readme.txt に記載されています。ご利用になる言語バインディングに対応する readme.txt を参考にしてください。

たとえば、Windows 用パッケージでは、C 及び C++ バインディングの設定方法は、doc/readme-binary.txt に記述されています。その他の言語バインディングについては、各バインディング用のバイナリ、サンプルプログラム等を収容している /bind 下の各言語ディレクトリ、例えば PHP であれば、bind/php の readme.txt に設定方法が記載されています。またリファレンスマニュアルの各バインディングの説明中に設定に関する記述がありますので、こちらも参照ください。なお、readme.txt の記述は英語となっています。


Q.PDFlib を使ったデモやサンプルプログラムはありますか?

A.PDFlib 製品の技術情報のページにて、デモとサンプルプログラムを公開しております。

また、PDFlib のパッケージにも多くのサンプルプログラムが同梱されています。


Q.次期バージョンのリリース予定はありますか?

A.次期バージョンのリリース時期については未定ですが、今後もバージョンアップは継続して行われます。

過去の例ですと、PDFlib の開発・販売元のドイツ PDFlib 社では、ライフタイム が近づくと新しいバージョンを発表しています。


[購入について]

Q.PDFlib を購入したいのですが、手続きはどのようになりますか?

A.まず見積申し込みフォームより、お見積をご請求ください。お見積書をお届けする際に、ご購入方法をご案内いたします。

また、ご購入までの手順は PDFlib 製品の価格・購入方法をご覧ください。


Q.支払方法を教えてください。

A.東京三菱銀行振込(手数料お客様負担)、クレジットカード(1回払い)からお選びいただけます。ご注文の際、支払方法選択画面よりご選択ください。お支払いは前払いでお願いしております。

なお、クレジットカードは Visa、MasterCard、JCB、AMEX、Diners がご利用いただけます。


Q.注文、入金してからどれくらいで納品されますか?

A.通常 1~3 営業日程で納品しております。


Q.納品物、納品先について教えてください。

A.納品物は、PDF形式のライセンス証書、サポートサービス内容のお知らせ(スタンダードサポートサービスご購入の場合)となります。納品先は、ご注文者様となります。他社納入としてご購入いただく場合も、原則ご注文者様のみへ納品しております。


[PDFlib スタンダードサポートサービスついて]

Q.スタンダードサポートサービス更新後、新しいライセンスキーが送られてきました。ライセンスキーを差し替える必要はありますか?

A.現在お使いいただいているバージョンで引き続き使用する場合は、ライセンスキーを差し替える必要はありません。最新バージョンで使用する場合は、差し替えが必要です。


Q.スタンダードサポートサービスを更新しない場合、PDFlib製品は使用できなくなりますか?

A.スタンダードサポートサービスを更新しない場合も、PDFlib 製品はご購入時のバージョンで永続的に使用できます。


Q.スタンダードサポートサービスの更新はどのように手続きをすれば良いですか?

A.スタンダードサポートサービスをご契約中のお客様には、サービス終了日の3か月前よりメールでご案内をお送りしております。内容をご確認の上、継続される場合は弊社までご連絡ください。折り返しお見積書をお送りいたします。


Q.新規購入の場合、スタンダードサポートサービスの開始日はどのように設定されますか?

A.納品日(ライセンス発行日)がスタンダードサポートサービスの開始日となります。


[PDFlib 製品の機能について]

Q.古いバージョンの Acrobat Reader を使用しているユーザーがいます。古いバージョンの Acrobat Reader で開けるPDFファイルを生成できますか?

A.PDFlib 9 の主たる対応バージョンは、PDF 1.7 ですが、それ以前のバージョンに対応した PDF も生成できます。生成可能な PDF のバージョンは下記の通りです。

PDF バージョン ソフトウェアバージョン
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/XI

PDF_begin_document( ) の compatibility オプションで指定したバージョンの PDF ファイルの作成が可能です。例えば、Acrobat Reader 5 ユーザー用に PDF 1.4 で出力する場合、下記の様に指定します。


  $p = new PDFlib();
  $p->begin_document("/sample/sample.pdf", "compatibility=1.4");
     .
     .
     .
  $p->end_document("");
  $p = 0;
                                
PHP 5 / PDFlib 9

但し下記の条件があります。

  1. PDFlib+PDI や PPS でファイルを読み込んで PDF を生成する場合、読み込む PDF ファイルは、出力しようとしている PDF ファイルのファイルバージョンと同じか、より古いバージョンでなけばならない
  2. 指定した PDF フォーマットでサポートされていない機能を使用する事は出来ない

PDF 各バージョンのサポート状況の詳細については、PDFlib チュートリアルの「11. Acrobat・PDFバージョン」を参照してください。


Q.印刷所に PDF/X 形式で入稿する必要があります。PDF/X 形式のファイル出力は可能ですか?

A.可能です。PDFlib では下記の PDF/X 形式のファイルを出力可能です。

PDF/X バージョン ISO PDF バージョン
PDF/X-1a:2003 ISO 15930-4 PDF 1.4
PDF/X-3:2003 ISO 15930-6 PDF 1.4
PDF/X-4,PDF/X-4p ISO 15930-7 PDF 1.6
PDF/X-5g,PDF/X-5pg ISO 15930-8 PDF 1.6

PDF/X で出力する場合、PDF/X の仕様に従い下記の処理が必要になります。

  1. フォントの埋め込み
  2. 実画像の埋め込み
  3. 出力フォーマットに応じた PDF フォーマットの選択

また、文書情報の設定等も必要になります。詳しくは PDFlib に同梱されているマニュアルをご覧ください。


Q.生成した PDF ファイルを Web で公開することを検討しています。Web 用 PDF は作成可能ですか?

A.可能です。Web 用 PDF にはいくつかの呼び方がありますが、PDFlib では線形化 PDF (linearized PDF) と呼んでいます。Web サーバーがバイトサービングに対応している場合、線形化 PDF はページ単位でダウンロードできるため、全体のダウンロードが完了するまで表示を待たせることがありません。

線形化は PDF_begin_document( ) のlinearize オプションで行うことができます。


  $p = new PDFlib();
  $optlist = "linearize=true";
    // ↑線形化を行う指定をします。
  $optlist .= " inmemory=true");
    // ↑線形化処理をメモリ内で行う為の指定です (任意)。
    //   (パフォーマンスが向上する反面、2 倍のメモリが必要です)
  $p->begin_document("/sample/sample.pdf", $optlist);
     .
     .
     .
  $p->end_document("");
  $p = 0;
                                
PHP 5 / PDFlib 9

Web 用 PDF を有効に利用する為には、下記の制限があります。

  1. Web サーバがバイトサービングに対応している事
    Apache HTTP Server や Microsoft IIS 等の主要な Web サーバーが対応しています
  2. ユーザーが使用するビューワーが線形化 PDF に対応している事
    Adobe Reader (IE 向けプラグインを含む) 等が線形化 PDF をサポートしています
  3. ビューワーの「Web 表示用に最適化を許可」等のオプションが有効である事
    Adobe Reader ではデフォルトで有効です

Q.Microsoft 社の Office 文書を変換するのに PDFlib を利用できますか?

A.PDFlib は、PDF 文書の生成と出力の効率化に特化したソフトウェアですので、Office 文書を直接読み込んで PDF 文書に変換する機能はありません。Word 等で作成した文書を Adobe Acrobat などで PDF に変換し、PDFlib+PDI により、動的な出力と重ね合わせて出力するといった形での利用を想定しています。

Q.一般ユーザが PDFlib を対話型 PDF 作成ツールとして利用することはできますか?


A.いいえ、できません。PDFlib は効率的かつダイナミックに PDF 文書を生成するためのプログラムライブラリーであり、Acrobat などの対話型ツールとは利用方法が異なります。PDFlib は、アプリケーションプログラム等を通して利用する必要があります。


Q.PDFlib ではどのような日本語フォントを利用できますか?

A.TrueType フォント、OpenType フォント、WOFF フォント、SVG フォント等の日本語フォントが利用できます。

日本語フォントを含む CJK フォントの取扱いの詳細についてはチュートリアル「6.5 日本語・中国語・韓国語テキスト出力」に記述されています。

また当社ウェブ記事 「PDFlib 入門 4 - テキストを出力する (II) -」でもご説明しています。

※ フォントを埋め込まずに Adobe Acrobat の標準 CJK フォントを使う方法にも対応していますが、PDFlib 9 では非推奨となっています。


Q.Linux で利用できる日本語フォントを教えてください。

A.独立行政法人 情報処理推進機構 (IPA) が公開しているIPA フォントを使用することで、Linux 上でも日本語フォントを使用することができます。

その他の対応フォントについても、フォントごとのライセンスの範囲内で利用できます。


Q.フォントの埋め込み方法を教えてください。

A.PDFlib ではデフォルトでフォントを埋め込む設定になっています。下記のような手順で、フォントを埋め込んだ PDF ファイルを作成することができます。


  $p = new PDFlib();
  $p->begin_document("/sample/sample.pdf", "");
  $p->set_option("SearchPath=/usr/local/fonts");
    // ↑フォントファイルの場所を指定します。
  $p->set_option("FontOutLine={ABCMincho=ABCMincho.TTF}");
    // ↑フォントアウトラインを作成します。
  $p->load_font("ABCMincho", "unicode", $optlist);
     .
     .
     .
  $p->end_document("");
  $p = 0;
                                
PHP 5 / PDFlib 9

フォントの埋め込みの他に、PDFlib ではデフォルトでフォントのサブセッティングも行います。サブセッティングでは実際に使用する文字のフォント情報だけを埋め込むため、PDF のファイルサイズを小さくする事ができます。日本語フォントのようにファイルサイズの大きいフォントを埋め込む場合に有効な方法です。

サブセッティング処理を行うには、フォントに以下の制限があります。

  1. TrueType フォント
  2. PostScript かTrueType のアウトラインを持つ OpenType フォント
  3. WOFF フォント
  4. Type 3 フォント

※ フォントを埋め込む際は、フォントのライセンスをご確認下さい。フォントによっては埋め込んだ文書の配布等に制限があります。


Q.PDFlib 9 での CJK フォントの取り扱い方法を教えてください。

A.PDFlib 9 では、フォントを埋め込まない場合でも TrueType フォントや OpenType フォント等を使用することを推奨しています。

PDFlib ではフォントを埋め込まずに PDF を作成することが可能ですが、PDFlib 9 ではこの方法は非推奨になりました。今後新たに PDF を作成する場合には、TrueType フォントや OpenType フォント等の日本語フォントを埋め込むことをお勧めいたします。


  $p = new PDFlib();
  $p->begin_document("/sample/sample.pdf", "");
  $p->set_option("searchpath=resource/fonts");
    // ↑フォントファイルのあるディレクトリのパスを指定します
  $p->set_option("FontOutline={MS-Gothic=msgothic.ttc}");
  $font = $p->load_font("MS-Gothic", "unicode", "");
     .
     .
     .
  $p->close_font($font);
  $p->end_document("");
  $p = 0;
                                
PHP 5 / PDFlib 9

当社ウェブ記事 「PDFlib 入門 4 - テキストを出力する (II) -」でもご説明しています。


Q.現在 PDFlib 6 の PPS で開発を行っています。PDFlib 9 に移行する際に気をつける点を教えてください。

A.PDFlib 7 で pCOS インターフェースが PDFlib+PDI / PPS に加えらました。その為、PDI 関数が、下記の様に変更になりました。

PDFlib 6 PDFlib 7 以降
open_pdi 関数 open_pdi_document 関数
close_pdi 関数 close_pdi_document 関数
get_pdi_value 関数 pcos_get_number 関数
get_pdi_parameter 関数 pcos_get_string 関数

また、PDFlib+PDI でよく使用される下記の関数が変更になりました。

PDFlib 6 PDFlib 7 以降
begin_template 関数 begin_template_ext 関数

上記を参考に、コードを書き換えてください。

※テクニカルトピックでも PDFlib 6 からの移行として詳しく説明しています。


Q.評価用パッケージでは、PDFlib、PDFlib+PDI、PDFlib PPS の全ての機能が利用できるため、どの製品が必要か分かりません。

A.PDFlib+PDI、PDFlib PPS では、それぞれの製品で使用できる固有の関数があります。使用する関数から必要な製品を選択してください。

■PDFlib+PDI または PDFlib PPS で使用できる関数

  1. open_pdi_document
  2. open_pdi_callback(C/C++ のみ)
  3. close_pdi_document
  4. open_pdi_page
  5. close_pdi_page
  6. fit_pdi_page
  7. info_pdi_page
  8. process_pdi
  9. pcos_get_number
  10. pcos_get_string
  11. pcos_get_stream

■PDFlib PPS で使用できる関数

  1. fill_textblock
  2. fill_imageblock
  3. fill_pdfblock
  4. fill_graphicsblock

上記に該当しない関数は、PDFlib、PDFlib+PDI、PDFlib PPS 全ての製品でご使用いただけます。


Q.PDFlib 製品は Log4Shell (CVE-2021-44228) の影響を受けますか?

A.過去のバージョンを含め、PDFlib 製品では Log4j を使用しておりません。そのため Log4Shell の影響を受けません。


[ライセンスキーについて]

Q.購入手続き後、ライセンスキーが送付されてきました。ライセンスキーの適用方法を教えてください。

A.ライセンスキーの適用方法には下記の方法があります。

■スクリプトまたはプログラムで実行時にライセンスキーを指定する方法


  $p = new PDFlib();
  $p->set_option("license=...あなたのライセンスキー...");
     .
     .
     .
  $p = 0;
                              
PHP 5 / PDFlib 9

パラメータ license は、PDF_new() 等で PDFlib のオブジェクトを初期化した直後に指定します。

■ライセンスファイルによりライセンスキーを指定する方法

下記のようなテキストファイル(ライセンスファイル)を作成し、ライセンスキーを指定することができます。


  PDFlib license file 1.0
  # Licensing information for PDFlib GmbH products
  PDFlib 9.0 ...あなたのライセンスキー...
                              
 

このライセンスファイルには、PDFlib の複数の製品のライセンスをそれぞれ別の行に記述することができます。

次に、ライセンスファイルのパスを下記のいずれかの方法で指定します。

1)下記のように licensefile パラメータをPDF_new() 等で PDFlib のオブジェクトを初期化した直後にただ一度だけ設定します。


  $p = new PDFlib();
  $p->set_option("licensefile=/path/to/licensefile");
     .
     .
     .
  $p = 0;
                              
PHP 5 / PDFlib 9

2)下記のようなコマンドで、環境変数 PDFLIBLICENSEFILE を設定します。(設定コマンドは処理系により異なります)


export PDFLIBLICENSEFILE=/path/to/licensefile  # Linux の場合
                              
 

(注) /path/to/licensefile はライセンスファイルへのパスで、処理系に応じた記述をする必要があります。

■個別のキーを複数適用する方法

複数のライセンスキーを別々の注文で購入した場合に、これらのキーをライセンスファイルにまとめて指定することができます。この場合、各ライセンスキーを1行ずつ指定します。また関数 PDF_set_option() を複数回呼び出して各ライセンスキーを指定することもできます。

■ライセンス適用を一時的に外す方法

ライセンスを適用した PDFlib は、購入したライセンス以外の機能は使用できなくなります。ライセンス適用後に通常使用できない上位のパッケージ機能を評価したい場合には、下記のようにダミーのライセンスキーを適用して全ての機能を使用することができます。この場合は全ての出力に評価版と同様のデモスタンプが表示されます。


  $p = new PDFlib();
  $p->set_option("license=0");
     .
     .
     .
  $p = 0;
                              
PHP 5 / PDFlib 9

(注) 本記述は、PDFlib チュートリアル 「0. PDFlib ライセンスキーを適用」をもとにまとめたものです。正式の記述についてはマニュアルを参照してください。


Q.ライセンスキーを適用するとエラーが発生します。対策はありますか?

A.ライセンスキーの適用場所に問題がある可能性があります。ライセンスの設定は、PDFlib オブジェクトを生成した直後、他の関数を呼ぶ前に設定するようにしてください。


  $p = new PDFlib();
  $p->set_option("license=license_key");
  $p->begin_document("/sample/sample.pdf", "");
     .
     .
     .
  $p->end_document("");
  $p = 0;
                              
PHP 5 / PDFlib 9

Q.ライセンスを追加購入しました。追加購入したライセンスを適用する方法を教えてください。

A.ライセンスファイルに記載する場合は古いライセンスキーの次の行に追記してください。


  PDFlib license file 1.0
  # Licensing information for PDFlib GmbH products
  PDFlib 9.0 first key
  PDFlib 9.0 additinal key
                              
 

PDF_set_option() を使用してライセンスキーを適用している場合、下記の様にしてください。


  $p = new PDFlib();
  $p->set_option("license=first_key");
  $p->set_option("license=additinal_key");
     .
     .
     .
  $p = 0;
                              
PHP 5 / PDFlib 9

Q.現在ライセンスファイルを使用してライセンスキーを適用しています。ライセンス未取得状態の PDF が生成される事があるのですが、対応方法はありますか?

A.特定の環境(Sun Solaris9 + JAVA)で、ファイルハンドルの上限等の原因で、稀にライセンスファイルにライセンスキーを記載しているにも関わらず、ライセンスキーが適用されていない状態でPDF生成がされる事象が報告されています。その場合は、ライセンスファイルでの適用ではなく、PDF_set_option() 関数を使用してライセンスを適用してください。


  p = new pdflib();
  p.set_option("license=license_key");
  .
  .
  .
                              
Java 1.4 / PDFlib 9

[パッケージ、ライセンス、その他]

Q.今度、PHP をバージョンアップする予定ですが、以前購入した PDFlib はそのまま使用できますか?

A.お持ちの PDFlib が、バージョンアップ後の PHP のバージョンに対応していない場合、PDFlib をアップデートする必要があります。

PDFlib 製品と PHP バージョンの対応表をご確認ください。対応表に記載がないものについては、該当プラットフォームのパッケージをご確認いただくか、弊社までお問い合わせください。


Q.日本語のマニュアルはありますか?価格はいくらでしょうか?

A.はい、現在バージョン 10 の日本語リファレンスマニュアルを公開しています。弊社ダウンロードページで無償で入手、ご利用いただけます。


Q.Windows 版で購入したライセンスを Linux 版に変更することは可能ですか?

A.異なるプラットフォーム (OS) 間でのライセンスの移行はできません。新規に Linux 版を購入いただく必要があります。同一プラットフォームであれば、ライセンスの移行は可能です (Windows Server 2003 → Windows Server 2008 等)。


Q.1台のハードウェアで、同じゲスト OS の仮想マシンを2台起動しています。これらの仮想マシンで PDFlib を使用する場合、ライセンスはいくつ必要ですか?

A.PDFlib のライセンス数は、ライセンスがインストールされるハードウェアの台数によって決まります。1台のハードウェア上で複数台の仮想マシンが起動している場合、1ライセンスでそのハードウェア上のすべての仮想マシンで PDFlib を使用できます。また、必要なライセンスのプラットフォームはゲスト OS 用になります。


Q.1台のハードウェアで、ゲスト OS が Windows Server と Linux の仮想マシンをそれぞれ2台ずつ起動しています。それぞれの仮想マシンで PDFlib を使用する場合、ライセンスはいくつ必要ですか?

A.ライセンスは PDFlib を使用するプラットフォーム毎に必要です。この例の場合、Windows Server 向けのライセンスと Linux 向けのライセンスがそれぞれ1ライセンスずつ必要になります。


Q.PDFlib を Amazon EC2 で使用します。ライセンスはいくつ必要ですか?

A.Amazon EC2 や Windows Azure のようなクラウドサービスで PDFlib を使用する場合、ライセンスは PDFlib を使用するインスタンスごとに必要です。特にインスタンスのスケールアウトによる負荷分散を想定されている場合、インスタンスの最大数分のライセンスをあらかじめご購入いただく必要があります。


Q.受託開発で PDFlib の利用を考えています。当社で PDFlib を購入し、開発したアプリケーションと一緒にお客様に納入することは可能ですか?

A.可能です。ご注文の際、ご利用方法で「受託開発などで、他社へ納品する (他社納入) 等の場合」を選択してください。「ご納入先 (エンドユーザ) 情報」及び「ご購入者 (貴社) 情報」を入力するページが表示されますので、正しい情報を入力して、購入手続きを進めてください。他社納入の場合ライセンスおよびサポートはエンドユーザ様に提供されますが、開発元 (貴社) からのお問い合わせについても対応いたします。


Q.PDFlib には開発者用ライセンスはありますか?

A.弊社のダウンロードページから入手できる評価用パッケージで PDFlib の全ての機能を使用した開発が可能です。気になる機能などの検証も含め、ご活用ください。ただし、全ての出力にデモスタンプが表示されます。

なお開発や保守を目的とした非本番環境での使用については、本番環境で使用しているライセンスを非本番環境でも使用することができます。詳細については PDFlib のライセンス規定である PDFlib GmbH General License and Support Conditionsをご覧ください (37 ページ目より日本語の参考訳が付属しています)。


Q.当社のソフトウェア製品に PDFlib を組み込んで販売することはできますか?

A.自社のソフトウェア製品に PDFlib を組み込んで販売する場合には、通常のライセンスとは別のライセンス形態をご用意しています。製品名、プラットフォーム、開発言語、想定している全体の数量、発注する際の1回の数量をご記入の上、お問い合わせフォームからお問合せください。


Q.購入を検討していますが、見積書は発行してもらえますか? また請求書は?

A.はい、弊社所定の書式のものを発行します。見積書については、見積申し込みフォームより、必須事項を記入の上、お申し込みください。

請求書、領収証については、ご購入時に選択フォームがありますので、送付方法 (郵送、FAX 等) と併せてご指定ください。


Q.貴社とドイツ PDFlib 社の取引関係は?

A.インフォテックは、2003 年 7 月よりPDFlib 社の正規リセラーとして、直接 PDFlib 社と取引しています。弊社からご購入いただいたお客様には、ドイツ PDFlib 社協力の元ライセンスキーを発行してお届けします。また技術的な問題についても、必要に応じ PDFlib 社と連絡をとりながら日本語で対応しております。

[技術的な質問]

Q.複数色でグラデーションを表示することはできますか?

A.通常、PDFlibでは2色間のグラデーションをサポートしていますが、グラデーションパターンを組み合わせることにより、2色以上でグラデーションを表示することができます。

詳細は技術情報の 複数色でのグラデーション表示で、処理手順やソースコードをご紹介しておりますのでご覧ください。

※2色間でのグラデーション表示については、PDFlibサンプル集(クックブック)「グラデーション」をご覧ください。


Q.複数の PDF を1つに結合することはできますか?

A.PDFlib+PDI で既存の PDF ページをインポートし、新規の PDF ページ上に配置することで、PDF を結合することは可能です。この際、リンクやフォームフィールドといったページ上のインタラクティブ要素は引き継ぐことができますが、しおりのような文書に紐づくインタラクティブ要素や文書メタデータは引き継がれませんので、注意が必要です。詳しくは、PDFlib サンプル集(クックブック)のPDF の結合、または、テクニカルトピックの PDF の結合方法をご覧ください。


Q.PDF 内のリンクテキストを取得したい

A.ページ内のテキストは TET で取得できます。またページ内のリンクの情報は pCOS 関数で取得できます。

詳細は技術情報の PDF 内のリンクテキストを取得したいでサンプルと共に紹介しています。


Q.入力元の PDF と同じバージョンの PDF を生成したい

A.pCOS 関数を使用して入力元の PDF のバージョンを取得することで、同じバージョンの PDF を生成することができます。

詳細は技術情報の 入力元の PDF と同じバージョンの PDF を生成したいでサンプルと共に紹介しています。


Q.取得したリンクの座標が見た目と合わない

A.pCOS 関数で取得できるリンクの座標情報は Rotate や CropBox 等を反映する前の座標であり、見た目と合わせるためにはこれらを考慮する必要があります。

詳細は技術情報の取得したリンクの座標が見た目と合わないでサンプルと共に紹介しています。


Q.PDFlib で作成する PDF 文書にフォームや JavaScript を埋め込んだり、操作することができますか?

A.はい、PDFlib には PDF の主要なインタラクティブ要素を作成する API があります。これによりフォームフィールド、注釈、アクションといった要素が作成できるほか、関連する JavaScript も定義することができます。 これらの使い方については API リファレンスの「12. インタラクティブ機能」に記述されています。

なお PPS では、フォームと類似した機能として、テキスト、イメージ及び PDF ページを動的に挿入できるブロックという領域を利用できます。ブロックは、名前と属性を持つ領域で、PDFlib ブロックプラグインをインストールした Acrobat で対話的に定義することができます。


Q.A4 サイズの PDF ページをA5サイズに縮小して出力することはできますか?

A.可能です。取り込んだ PDF を fit_pdi_page で出力ページ上に配置する際、オプション boxsize、fitmethod を使用して出力ページサイズ、設置方法を指定します。

参考ページ:インポートしたページの縮小
必要な製品:PDFlib+PDI または PDFlib PPS


Q.画像ファイルを PDF 変換することはできますか?

A.PDFlib 製品には画像ファイルをPDFに変換する機能はありませんが、画像ファイルを取り込んで、新規 PDF 上に配置することで実現可能です。

参考ページ:イメージの大きさ
必要な製品:PDFlib または PDFlib+PDI または PDFlib PPS


Q.PDF ファイルを画像ファイルに変換することはできますか?

A.PDFlib 製品にはPDF 全体やページを画像に変換する機能はありませんが、PDF に画像ファイルが含まれている場合、画像ファイルとして抽出することは可能です。

参考ページ:イメージ抽出
必要な製品:PDFlib TET


Q.既存 PDF の背景に半透明の画像を入れることはできますか?

A.可能です。PDFlib は PNG や GIF 等の透過情報画像にも対応しています。

なお、こちらのように、画像ファイルを取り込んで、create_gstate 関数で opacityfill オプションに透明度を0~1の範囲で指定し(値0は完全透過となります。)透過してPDF に配置することもできます。

参考ページ:透過イメージ
必要な製品:PDFlib または PDFlib+PDI または PDFlib PPS


Q.既存 PDF の任意の場所に文字列を挿入することはできますか?

A.可能です。既存 PDF を取り込み、fit_textline、fit_textflow 関数を使用して文字列を配置し、新規 PDF を作成します。文字列の配置位置は座標で指定します。

参考ページ:PDFlib+PDI デモプログラム解説
必要な製品:PDFlib+PDI

なお、PDFlib PPS であれば、既存PDFに Adobe Acrobat 用の無償プラグイン使用して、PDFlib ブロックと呼ばれる矩形の領域を配置し、この領域に対し、プログラムから文字列のデータを流し込むこともできます。

参考ページ:PDFlib PPS デモプログラム解説
必要な製品:PDFlib PPS


Q.既存 PDF ページを回転(90°・180°・270°)して保存することはできますか?

A.可能です。既存 PDF を取り込み、fit_pdi_page 関数を使用して新規 PDF 上に配置します。その際、fit_pdi_page には、orientate オプションに、回転角度として north、east、west、south のいずれかを設定します。(回転角度は90°単位となります)

参考ページ:PDF ページの回転
必要な製品:PDFlib+PDI または PDFlib PPS

(Aug 14, 2003 - Dec 15, 2023)