PDF Tool APIよくいただくご質問

このページでは『Antenna House PDF Tool API』V4.0について、よくお寄せいただくご質問を紹介しています。

V5.0以降の最新バージョンについては以下をご覧ください。
よくいただくご質問

機能やプログラミングについて

フォントを埋め込んでいないPDFにPDF Tool APIで文章を追加した場合、どのようなフォントが適用されますか?追加を行っても、元からPDF上にある文章のフォントは維持されますか?

Windows版においては、文章を追加するさいにフォントを指定しなかった場合、
 MSゴシック
 12ポイント
 フォントは埋め込み状態
で追加処理が行われます。
Linux版においては、文章を追加するさいにはフォント指定が必須です。
PDF Tool APIにより文章の追加を行っても、元からPDF上にある文章のフォントは変更されません。

フォントが埋め込まれたPDFから埋め込みフォント情報を削除することはできますか?

削除できません。

ページの幅に合わせて文字を折り返して挿入することはできますか?

はい、できます。下記のサンプルコードをご参考ください。
DrawTextInRectサンプルコード(C++)

サンプルコードを参考にして注釈スタンプを挿入したのですが回転してしまいます。なぜ回転するのでしょうか?回転しないようにするにはどうするとよいのでしょうか?

「test1.pdf」(注釈が回転してしまうPDFファイル)をご参照ください。→test1.pdf
test1.pdfのページは回転しているため、その回転角度に合わせて注釈スタンプが挿入されます。
ページの回転角度に合わせて回転させずに注釈を挿入するには、「PtlAnnot::setAnnotFlags()」で「PtlAnnot::FLAG_NOROTATE」フラグを設定します。→PtlAnnot::FLAG_NOROTATEを設定した場合のPDF
※リンクされているPDFファイルは、Google Chrome以外のPDFビューワで開いてください。

64bit版の.NET APIを利用しサンプルコードをビルドして実行するとエラーになります。なぜでしょうか?

「改訂5(MR5)版」(2015年1月公開)にて、 「対象のフレームワーク」に「.NetFramework 4.5」、「.NetFramework 4.5.1」を選択している場合にもビルドした実行ファイルが正しく動作するよう修正しました。

「改訂4(MR4)版」以前の場合
プログラム作成時、プロジェクトの「対象のフレームワーク」に「.NetFramework 4.5」(以降)が選択されている場合に現象が発生します。
対象フレームワークには、「.NetFramework 4」を指定してください。
なお、ビルドされたプログラムの実行環境においては、「.NetFramework 4」、「,NetFramework 4.5」のどちらかがインストールされていればプログラムは動作します。

PDFの開き方設定で「単一ページを表示」する状態にするために「PAGE_LAYOUT.PAGE_LAYOUT_SINGLE_PAGE」を指定しましたが、Adobe Acrobat Readerで見るとレイアウトが「デフォルト」になっています。「単一ページを表示」状態にするにはどのようにしたらよいでしょうか?

改訂4において、「PAGE_LAYOUT.PAGE_LAYOUT_SINGLE_PAGE」を指定したときの動作を変更しました。
「PAGE_LAYOUT.PAGE_LAYOUT_SINGLE_PAGE」を setPageLayout したとき、PDF の中身に対してページレイアウトを指すキーに単一ページ表示用の値を作成するようにしました。これにより、「PAGE_LAYOUT.PAGE_LAYOUT_SINGLE_PAGE」が設定された PDF ファイルを Acrobat Reader で開いたとき、Acrobat Reader の環境設定の「ページレイアウト」がどの値であっても、必ず「単一ページを表示」する状態となります。

「改訂3(MR3)版」以前では以下の動作仕様となります。
PDF の仕様では、ページレイアウトのデフォルト値は「単一ページ」と規定されています。このため、PDF Tool API V4.0 では、「PAGE_LAYOUT.PAGE_LAYOUT_SINGLE_PAGE」を setPageLayout するとき、PDF の中身に対してページレイアウトを指すキーに値を作成しません。
ページレイアウトを指す値を持たない PDF ファイルを Acrobat/Acrobat Readerで開くと、開き方の「ページレイアウト」が「デフォルト」になります。これは、PDF の仕様に基づいていない PDF ビューワの独自仕様となります。
Acrobat/Acrobat Readerでは、「環境設定」においてデフォルトのページレイアウトを変更できるようになっています。
「環境設定」ー「ページ表示」タブに「デフォルトレイアウトとズーム」という項目があります。ここの「ページレイアウト」が「自動」である場合、ページレイアウトを指す値を持たない PDF ファイルでは開き方の「ページレイアウト」が「デフォルト」となります。「単一ページ」を選択すると、開き方の「ページレイアウト」が「単一ページ」となり PDF の仕様と合致したものとなります。

Adobe Reader XIの「環境設定」画面

添付ファイルのみを暗号化する指定(PtlEncrypt::ENCRYPT_COMPONENT.ENCRYPT_ONLY_ATTACHED_FILE)をしている場合に、SetOwnerPasswordを指定しSetPermissionでセキュリティの権限設定をしようとすると「212:Need owner password.」エラーが発生しました。なぜでしょうか?

添付ファイルのみを暗号化する指定がされた場合、PDF Tool APIは、添付ファイルの暗号化処理のみを行いセキュリティの権限設定は行いません。添付ファイルの暗号化のためにSetUserPasswordは必須ですが、SetOwnerPasswordの指定は無視します。このとき、SetPermissionが呼ばれると、権限設定にはオーナーパスワードが必須なため、「212:Need owner password.」エラーが発生することになります。
添付ファイルのみを暗号化する場合は、SetOwnerPassword、SetPermissionは呼び出さないようにしてください。

PDF Tool APIで編集可能なPDFファイルのファイルサイズに制限はあるでしょうか?

PDF Tool APIの入力ファイルとして読み込み(load)可能なPDFファイルのファイルサイズは、2GBまでです。2GBを超える場合はload時にエラーとなります。

コマンドラインを実行したさいに発生するエラーコードの内容を教えてください。

コマンドラインは、
 成功 = 0
 失敗 = 1
を返します。
上記の戻り値は、改訂3版(MR3)以降のコマンドラインで有効です。

Windows版コマンドラインのエラーの詳細は、標準出力にのみ出力されるのでしょうか?

はい、エラーの内容は標準出力にのみ出力されます。

Windows版コマンドラインの実行結果は環境変数「ERRORLEVEL」で判定可能でしょうか?

はい、判定可能です。

C#にてSample Codeを使用しています。参照設定に「PDFTkNet40.dll」を追加して実行してみたのですが、
「ファイルまたはアセンブリ 'PdfTkNet40.dll'、またはその依存関係の 1 つが読み込めませんでした。指定されたモジュールが見つかりません。」
というメッセージが表示され実行できません。どのようにしたら実行できるのでしょうか?

次の点についてご確認ください。

  • 依存関係にあるDLLファイルの配置場所
    .NET用インターフェースはC++インターフェースのラッパーとして作成されていますので、「PDFTkNet40.dll」単独では動作しません。
    「PDFTkNet40.dll」と依存関係にあるファイルについては、「AHPDFToolAPI_V4_Manual.pdf」の「3.5.1. Windows版」「.NET」の欄をご参照ください。
    「PDFTkNet40.dll」以外のdllファイルが「「PDFTkNet40.dll」と同じ場所、あるいは、プログラムが参照できる場所(システム環境変数「PATH」に設定があるフォルダパスの場所、など)に存在していなければなりません。
  • Microsoft Visual C++ 2010 ランタイムライブラリ
    『PDF Tool API V4』は「Microsoft Visual Studio 2010」で開発を行っています。 動作環境には、Microsoft Visual C++ 2010 再頒布可能パッケージのインストールが必要です。

PDF Tool APIを利用したプログラムをASP.NETで開発しています。サンプルプログラムの検証を行おうとしていますが、
「ファイルまたはアセンブリ 'PdfTkNet40.dll'、またはその依存関係の 1 つが読み込めませんでした。指定されたモジュールが見つかりません。」
というメッセージが表示され実行できません。設定等に不足があるのでしょうか?

PdfTkNet40.dllと依存関係にあるファイルが存在するフォルダーパスをシステム環境変数「PATH」に設定してください。
依存関係にあるファイルについては、「AHPDFToolAPI_V4_Manual.pdf」の「3.5.1. Windows版」「.NET」の欄をご参照ください。

その他

PDF Tool APIのモジュールを改訂版のものに入れ替えたら、出力されるPDFの各ページに透かし文字列が入るようになってしまいました。透かし文字列が入らないようにするにはどうしたらよいのでしょうか?

ライセンスファイル(ptalic.dat)は、保守契約情報を持っています。保守契約終了期日よりも後に公開された改訂版を使用した場合に、出力されるPDFの各ページに透かし文字列が挿入されます。
すでに保守契約を更新されている場合には、お手元に届いている新しいライセンスファイルに入れ替えてください。

Windows 10には対応していますか?

はい、対応しています。

Windows版のライセンスを購入しパッケージを受け取りましたが、インストーラが見当たりません。どこに入っているでしょうか?

製品パッケージには、Windows版のインストーラはございません。

  • 開発環境において
    製品パッケージの「Windows」フォルダ内にあるバイナリファイルやヘッダー、リブファイルを開発環境の任意の場所に配置してください。
    ライセンスファイルの配置については、「AHPDFToolAPI_V4_Manual.pdf」の「3.3. ライセンスファイルについて」をご参照ください。/li>
  • プログラムの実行ファイルの配布について
    PDF Tool APIを利用して作成したプログラムの実行ファイルを配布する場合には、実行ファイルとともにPDF Tool APIの必要なバイナリファイルを再頒布してください。 PDF Tool APIの必要なバイナリファイルはプログラムの作成言語により異なります。「AHPDFToolAPI_V4_Manual.pdf」の「3.5. モジュール一覧」をご参照ください。
    通常は、プログラムの実行ファイルと同じ場所にPDF Tool APIのバイナリファイルを配置します。プログラムがInternet Information Service上で動作するものであったり、実行ファイルとPDF Tool APIのバイナリファイルを異なる場所に配置するような場合には、PDF Tool APIのバイナリファイルを配置する場所をシステム環境変数「PATH」に設定する必要があります。「AHPDFToolAPI_V4_Manual.pdf」の「3.2. 環境変数について」をご参照ください。