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

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

旧バージョンの『よくいただくご質問』は以下をご覧ください。

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

Web表示用に最適化する設定で保存したPDFをAcrobatで開きプロパティ画面を確認すると、「Web表示用に最適化」が「いいえ」となる場合がありました。なぜですか?

Adobe Acrobat / Acrobat Readerのプロパティ画面においてはファイルサイズが小さい場合、Web表示用に最適化されているPDFであっても「Web表示用に最適化」が「いいえ」と表示されるようです。これは、Acrobatの仕様と思われます。

PDFに対し「ページの挿入、削除、回転」を許可するオプションでセキュリティ設定を行ったのに、Acrobatでプロパティ画面を表示してみると「文書アセンブリ」の状態がセキュリティタブ上と詳細表示上とで異なります。なぜですか?

Acrobat Readerのプロパティ画面においては、「文書アセンブリ」の状態がセキュリティタブ上と詳細表示上とで異なります。これは、Acrobat Readerの仕様と思われます。 Adobe Acrobatのプロパティ画面においては、セキュリティタブ、詳細表示とで表示内容は一致しています。

閲覧制限設定時、閲覧不可の場合の透かしは透かしのパラメータに関係なくすべてのページで表示されます。これは仕様ですか?

仕様です。
閲覧制限設定をしたページには、無条件で、表示時、印刷時の両方で有効な透かしが挿入されます。

【V6.0以降】
透かしのパラメータを有効にするか否かを設定できます。
関数名 : PtlParamRestriction::setEnableParamWatermark (bool enableParam)

※「閲覧制限設定」は、日時やPDFファイルがある場所によって、PDFを閲覧可にしたり不可にする設定です。 以下のPDF CookBookの解説をご参考ください。
参考:閲覧制限 - 弊社刊『PDFCookBook第2巻』より

テキスト透かしの挿入においてタイリング設定をすると対角線上への挿入や文字の角度設定が無視されます。これは仕様ですか?

【V6.0以降】
文字の角度設定を保持したままタイリングされます。

【V5.0】
仕様です。

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

【Windows】
文章を追加するさいにフォントを指定しなかった場合、
 MSゴシック
 12ポイント
 フォントは埋め込み状態
で追加処理が行われます。

【Linux】
文章を追加するさいにはフォント指定が必須です。

PDF Tool APIにより文章の追加を行っても、元からPDF上にある文章のフォントは変更されません。

セキュリティを設定して保存したPDFファイルのPDFバージョンはどのようになりますか?

PDFファイルのPDFバージョンは、設定するセキュリティレベルにより決まります。

 セキュリティレベル  PDFバージョン
 40bit RC4  1.4
 128bit RC4  1.5
 128bit AES  1.6
 256bit AES  1.7

ただし、処理対象となる入力PDFファイルのPDFバージョンがセキュリティレベルのPDFバージョンより大きい場合は、入力PDFのPDFバージョンが保持されます。

※V7.0では、40bit RC4レベルの暗号化設定処理は廃止されました。

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

削除できません。

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

はい、できます。下記のサンプルをご参考ください。
ページサイズに合わせて折り返す文字列(新規のページを作成)

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

【V6.0以降】
デフォルトの動作では、ページの見た目の向きと同じ方向に注釈スタンプが挿入されます。
ページの回転している方向に注釈スタンプを挿入する場合は、座標系オプション「PtlOption.setCood(PtlOption.COOD cood)」でユーザースペース座標(PtlOption.COOD.COOD_USER)を指定します。

【V5.0】
本現象については、PDF Tool API V5.0 改訂7版にて修正しました。
改訂7版以降では、注釈スタンプはページの見た目の向きに挿入されます。

添付ファイルのみを暗号化する指定(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ファイルサイズは2GBまでです。2GBを超える場合、load/save時にエラーとなります。

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

[ Windows版 ]

成功
0
パラメータエラー
-1
PDF Tool APIのエラー
エラーコード(PtlErrorCode.h参照)
その他のエラー
-2

[ Linux版 ]

成功
0
エラー
1

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

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

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

はい、判定可能です。

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

※V6.0では「PdfTkNet60.dll」、V5.0では「PdfTkNet50.dll」

このエラーは、「PdfTkNet70.dll」と依存関係にあるDLLファイルが読み込めない場合と、ランタイムライブラリーが存在しない場合に発生します。

【依存関係にあるDLLファイルが読み込めない場合の対処方法】
以下の2つの方法があります。

  • プログラムの実行ファイルと同じ場所に「{インストールフォルダー}\bin32」あるいは「{インストールフォルダー}\bin64」にあるファイルを配置します。プログラムが32bitの場合は「\bin32」、64bitの場合は「\bin64」のファイルを配置します。
  • システム環境変数「PATH」に、「{インストールフォルダー}\bin32」あるいは「{インストールフォルダー}\bin64」のフォルダパスを設定します。

【ランタイムライブラリーが存在しない場合の対処方法】
.NET APIはC++ APIのラッパークラスとして設計されています。このため、動作環境にはMicrosoft Visual C++のランタイムライブラリーが必要です。
Microsoft Visual C++再頒布パッケージをインストールしてください。プログラムが32bitの場合はx86用、64bitの場合はx64用の再頒布パッケージが必要です。
PDF Tool APIのバージョンにより、インストールする再頒布パッケージのバージョンが異なります。
【V7.0】Visual C++ 2019用
【V6.0】Visual C++ 2015用
【V5.0】Visual C++ 2010用

再頒布パッケージは、以下のサイトからダウンロードできます。
サポートされている最新のVisual C++ 再頒布パッケージのダウンロード

開発中のシステムにおいて、テキストが画像や図形としてではなく、テキスト情報を持つ状態のPDFであっても、帳票の見た目どおりにテキストを抽出できず、「項目名」と「入力値」の紐づけができないという問題を抱えております。

アンテナハウスの製品でこの問題を解消できるソリューションがありましたらご教授いただけませんか。

帳票が決まっているのであれば弊社のPDF Tool API ライブラリ版で可能かと思います。
PDF Tool API

Linuxでも動作可能です。 座標位置で矩形を指定してテキストを抽出することが出来ます。 参考に下記のPDFCookBookをご参照下さい。
参考: 指定矩形からテキストを抽出 - 弊社刊『PDFCookBook第3巻』より

また、Windowsのみになりますが、PDF Advanced Extractorもございます。
PDF Advanced Extractor

こちらはGUIでテキスト枠を指定して抽出しますが、抽出順序を変更することができます。 定型の帳票データなど同じレイアウトで内容だけが異なるPDFファイルが複数ある場合は、コマンドライン・プログラムにテンプレートファイルを指定して一括でテキストファイルに保存できます。

どちらの製品も評価版がございますのでお試しください。
PDF Tool API 評価版のお申し込み
PDF Advanced Extractor 評価版のお申し込み

WindowsServerにて、.Netバッチアプリを使用して特定のフォルダに格納されているPDFの一部を画像として切り出し、HTMLメールに挿入して送信したいと考えております。 アンテナハウスの製品で以下は実現可能でしょうか。

①PDF Tool APIを使用して、PDFの一部を画像として抽出する。
②PDF Server コマンドライン版でPDFファイル全体を画像化する。

PDF Tool APIはPDF内の画像を抽出することは出来ますが、画像化することは出来ません。

②のPDFを画像化するのはPDF Serverでも可能ですが、Office Server Document Converterの方が相応しいかと思います。
Office Server Document Converter
評価版もございますのでお試しください。
Office Server Document Converter 評価版のお申し込み

クラウド上のBoxにアップロードされているPDFファイルの編集をしたいと考えております。つきましては以下のような機能が実現できるソリューションがありましたらご教授いただけませんか。

①Boxに保存したPDFを開くことができる
②①で開いたPDFに対して、フォームの作成、注釈の追加、編集ができ、変更は自動的にBoxに保存される

①Boxに保存したPDFを開くことができる
Boxにアクセスできる権限があれば入手し表示は可能かと思います。

②①で開いたPDFに対して、フォームの作成、注釈の追加、編集ができ、変更は自動的にBoxに保存される
表示したPDFに注釈の追加、編集は可能です。

上記が実現できる製品は弊社のPDF Viewer SDKになります。
PDF Viewer SDK
機能比較表
評価版のお申し込み

表示機能はございませんが、PDF Tool APIでも注釈作成編集は可能です。
PDF Tool API
注釈 - 弊社刊『PDFCookBook第4巻』より
評価版のお申し込み

PDFの内容に対して、特定の場所に文字を埋め込むことはできますか?

はい、特定位置に文字列を追加することは可能です。

PDFのチェックのためにPDF Tool APIの利用を検討しております。チェックしたい内容は以下のとおりです。どこまで対応していますか?

①見開きページであるか
②見開きページの場合、左側か右側頁なのかの判定
③指定のカラー条件のオブジェクトの特定
  ③A テキストの場合、該当テキストの抽出
  ③B 該当箇所のマーキング
④リンク情報の抽出
  ④A リンク元箇所のマーキング
  ④B リンク先情報の抽出
  ④C リンク先がアンカーの場合、その箇所のマーキングと情報

①見開きページであるか
②見開きページの場合、左側か右側頁なのかの判定
→「PDF上で見開き表示されるように設定されているのか」ということであれば、PtlOpenModeのgetPageLayoutをご利用いただければ判定は可能かと思います。

③指定のカラー条件のオブジェクトの特定
③A テキストの場合、該当テキストの抽出
③B 該当箇所のマーキング
→指定のカラーのものを特定した箇所のマーキングでよろしいでしょうか。

  1. カラーの指定はRGB or CMYK or GrayScale での指定。
  2. コンテントのエレメントを全てなめて対象を探す。
  3. エレメントが指定のカラースペースと合致し且つ値が一致した場合のみ対象。
  4. 該当した場合、BBox若しくはQuadBoxを使ってマークする。

で可能かと思います。
ただし、
*マークの方法としてPDFToolではパスを書くことしかできない。
*画像などは対象外。

④リンク情報の抽出
④Aリンク元箇所のマーキング
→ リンク注釈の矩形を取得で可能かと思います。
『マーキング』がどのような処理を想定しているのでしょうか。 PDF Tool APIにおける『マスク処理』は可能です。 指定したテキストを削除せずに矩形内を塗りつぶすこともできます。 テキストを削除したくない場合はプログラム上で指定する必要があります。

④Bリンク先情報の抽出
④Cリンク先がアンカーの場合、その箇所のマーキングと情報
→ PtlAnnotLink.getDest()という宛先を取得する関数があります。
「リンク先がアンカーの場合」という記述は『HTMLで言うアンカータグ』(<a href=>ではじまるもの)をイメージしていらっしゃいますでしょうか? この場合なら問題はないと思います。

  • リンク先がURLで記述されるwebページを指していた場合
  • リンク先が同一PDF内の別の部分を指していた場合
  • リンク先が別PDFの特定部分を指していた場合

では、PtlAnnotLink.getAction()で取得するリンクをクリックした際のアクションが異なります。 それを通じて判別することが可能です。
(ただし、リンク先が同一マシン内の特定のパスにあるPDFを指す、など、URIで記述されていた場合はURLで記述されたwebページの宛先とを区別するために追加で処理が必要になります)

複数のPDFファイル(同一様式)から一部の文字列(例えば見積番号)を一括抽出してテキストやCSV形式で出力することのできる製品・サービスの取り扱いはありますか。

PDF Tool APIで可能です。
指定したページ全テキストの抽出、指定した矩形内のテキスト抽出が可能です。
参考:テキストの抽出・検索 - 弊社刊『PDFCookBook第3巻』より

評価版もございますのでまずはお試しいただければ幸いです。
PDF Tool API 評価版のお申し込み

複数PDFを1ファイルへ集約するシステム開発に利用したいと考えております。
PDFファイルの結合「AppendPages」が対象の関数かと思われますが、C#のサンプルプログラムは提供いただけますか? また、結合後のページ番号を表示させることはできますか? その場合の関数もご教示いただけると助かります。

「AppendPages」のC#用サンプルコードは、評価版の中の以下のフォルダにあります。
 \SampleCode\dotnet\AppendPages.cs

「結合後のページ番号を表示させる」とは、 結合後のPDFファイルにページ番号の文字列を挿入するということでよろしかったでしょうか。 文字列挿入のサンプルコードは「WriteString.cs」です。
このサンプルでは先頭ページにのみ文字列を挿入します。

文字列挿入処理については、PDF CookBookでも解説しています。
参考:テキスト描画 - 弊社刊『PDFCookBook第1巻』より

PDFから文字を抜き出す際に、改行文字を取り出せますか。

PDF Tool APIを使って文字を抜き出す場合、改行文字を取り出すことはできません。

PDF文書中から、Redact Annotationされた箇所を検索して、その箇所の文字と座標を取得したいのですが、どのクラスを使用すれば良いでしょうか。

PDF Tool APIで実現する場合、以下の操作に分けられます。
要望1: Redact Annotation された箇所を検索し、座標を取得する
要望2:該当座標の文字を取得する

以下で、各要望を実現する具体的な操作を解説します。

要望1:Redact Annotation された箇所を検索し、座標を取得する
PDFに既にRedact Annotationが挿入されているものを検索し取得する方法は以下の通りです。

  (事前準備) 当該Redactionを検索したいページのPtlPageを取得する

  1. PtlPage​.getAnnots()を実行し、ページに含まれる全注釈のコンテナクラスPtlAnnotsクラスを得る
  2. PtlAnnots.get​(int index)で各注釈を表すPtlAnnotをひとつずつ得る
  3. 各PtlAnnotに対してPtlAnnot.getType()を実行してPtlAnnotの注釈タイプを確認する
    このとき、TYPE_REDACTだったものがRedact Annotationであると判定する
  4. Redact AnnotationだったPtlAnnotの座標をPtlAnnot.getRect()で得る

要望2:該当座標の文字を取得する
『該当座標の文字を取得する』クラス及び関数については以下の操作が必要になります。

  (事前準備)当該Redaction注釈があるページのPtlContentを取得する

  1. PtlParamExtractTextクラスを作成して、appendRect​(PtlRect rectMM)を実行し文字を抽出したい座標を指定する
  2. 「手順1」で用意したPtlParamExtractTextを使って、PtlContent.extractText​(PtlParamExtractText ptlParamExtractText)を実行する

なお、これは特別な操作ではなく、PDF Tool APIが持つ機能のうちの一つ「指定した矩形の文字列を抽出する」という処理をそのままに使っているものです。
参考:指定矩形からテキストを抽出 - 弊社刊『PDFCookBook第3巻』より

WEBアプリケーション(ブラウザ)内でPDF Viwer機能を実装したいのですが、アンテナハウスのソリューションで利用可能な製品はありますか?

【開発言語】
PHP・React
【環境】
AWS・Linux
ブラウザ(Chrome、Edge、Safari)・スマホあり
【必要機能】
ブラウザフレーム内でPDF Viewの表示
マーカー(必須)・注釈(任意)
【ライセンス】
利用者:10~20名
サーバー台数:4台
CPU:4コア

PDF Tool APIで注釈をつけることは出来ますがブラウザでの表示機能はございません。
PDF.js等でWebアプリへ作りこみが必要になると思います。

参考:注釈 - 弊社刊『PDFCookBook第4巻』より

2つのPDFファイル(①書けまっせで作成した白紙フォーム:1頁、②書類フォーム:3頁)を結合したく、PDF Tool APIにて、結合用の「mergeFiles」コマンドを実行しました。

①1頁+②3頁=計4頁のファイルが作成されましたが、①は②の1頁目にだけ重ねて計3頁のファイルを作成したい場合、どのようなコマンドを実行すれば良いでしょうか。
【実行したコマンド】
"Cmd70.exe" -mergeFiles -d "c:\①.pdf" -d "c:\②.pdf" "0,9-14" -o c:\out.pdf -linearize

コマンドラインには、ページを重ね合わせるような処理はありません。 PDF Tool APIのライブラリ版を用いてプログラムを作成することで、該当の動作を実現することができます。

別アプリで作成済のPDFを読込、以下情報が設定されているか判別したいと考えております。どのクラスに含まれるか教えて頂けますでしょうか。

①電子署名の設定有無
②ウォーターマークの設定有無
※ウォーターマークのうち、印刷時の出力設定有であること、ファイル表示だけでは非表示であることも判別したい

①電子署名の設定有無
PDFが署名付きかどうかを判別するには、「PtlPDFDocument.isSignatured() 」を使用可能です。 詳しい手順に関しては弊社のPDF Tool API手引書に解説がございます。ご確認下さい。
参考:署名付きPDFかどうかを取得 - 弊社刊『PDFCookBook第4巻』より

②ウォーターマークの設定有無
ご質問の「ウォーターマーク」PDFの機能は、Adobe Acrobat上で言うところの「透かし」(ウォーターマーク)でよろしいでしょうか?
参考:PDF に透かし(ウォーターマーク)を設定する方法 ― Acrobat X/XI/Acrobat/SDK
※ウォーターマークが「透かし」であった場合の回答です。

現在のPDF Tool APIにはPDFに設定済みの透かしに関する情報を取得する機能・関数はありません。 ただし、次のような機能はございます。

  • 透かしの無いPDFに対して「印刷時のみ表示・画面上では非表示」の透かしを新規に挿入する機能
  • PDF Tool APIによって挿入された透かしを削除する機能
  • Adobe Acrobatで編集可能な透かしとしてPDF Tool APIで透かしを新規に挿入する機能

参考: 透かし表示条件:画面表示 - 弊社刊『PDFCookBook第2巻』より
    透かし表示条件:印刷 - 弊社刊『PDFCookBook第2巻』より
    透かしのAcrobat®互換対応 - 弊社刊『PDFCookBook第5巻』より

印刷時にのみ表示される文字列がファイルから設定されているか設定されていないか判別する方法はありますか?

または、PDFファイルからPDF Tool APIの機能で判別出来る、通常のファイル表示時には表示されず、印刷時のみ文字列を表示されるようにする手段(透かしではない別の情報で設定など)があれば教えてください。

特定の文字列がPDFに入っているかだけであれば確認できますが、挿入された文字が「印刷時のみに表示される設定であるかどうか」を判別することはできません。

また、あくまでテキストが検出可能なのは「テキストエレメント」の形式で当該文字が挿入された場合だけです。 PDFの加工形式が「文字が印字された画像を挿入するかたち」に変更された場合は、当該文字があるかどうかの検出自体も不可能になります。

『印刷時のみ文字列を表示させる手段』で、なおかつPDF Tool APIで判別可能な手段は現状では存在しません。 以下で詳細な説明を致します。

PDFの仕様として「印刷時のみ文字列を表示させる手段」として考えられるのは『透かし』『注釈』の2種類があります。

  • 『透かし』は上記で説明しましたように、「印刷時のみ表示かどうかの判別」「内容の確認」の方法がPDF Tool APIにはありません。
  • 『注釈』はPDF Tool APIでの内容の確認、印刷可や不可のフラグ確認、通常時の表示のフラグ確認が可能です。

しかし、そもそもの注釈自体が一般的にポップアップして内容を表示させる用途で用いられるものであるため、今回の用途として不適であり印刷時に表示させる用途として使うのは困難です。

PDFから索引語とノンブルを解析してテキストで抽出するようなソフトウェアは販売されておりますか。

ノンブルの挿入位置は一般に各ページで定まっていと思いますので、ノンブルの矩形位置を指定して、その矩形内のテキストを抽出することはPDF Tool APIで可能です。 右と左のページで場所が違う場合はそれぞれの座標位置パターンを用意いただければ可能かと思います。
参考:テキスト抽出 - 弊社刊『PDFCookBook第3巻』より

索引の抽出は難しいと思われます。 あらかじめ検索語の一覧を作成しておきPDF Tool APIで該当のテキストを検索することは可能ですが、現実的ではないと思います。

同じ様式の複数PDFファイルから特定の文字列(例えば見積番号や見積金額)を一括抽出し、テキスト形式やCSV形式で一つのファイルに出力することは可能でしょうか。

PDF Tool APIでは指定したページ全テキストの抽出、指定した矩形内のテキスト抽出が可能です。詳細については以下のページをご参照ください。
参考:テキストの抽出・検索 - 弊社刊『PDFCookBook第3巻』より

評価版もございますのでお試しください。
評価版のお申し込み

PDF Tool APIを利用し、WebシステムへのPDFアップロード時にチェックをかけたいと考えています。その際、以下は可能でしょうか?

①アップロードされるPDFに使用されているフォントリストを、フォント埋め込み有無を含めて取得。
②アップロードされるPDFの、作成元(何のアプリを使用してPDFを作成したのか)を取得。
③PDFファイルサイズ(KBではなくページの縦横サイズ)を取得。

①アップロードされるPDFに使用されているフォントリストを、フォント埋め込み有無を含めて取得。
V7.0において、フォント情報を取得できるようになりました。フォント埋め込み有無も取得できます。

②アップロードされるPDFの、作成元(何のアプリを使用してPDFを作成したのか)を取得。
作成元のアプリケーションを取得は、PtlDocInfo.getCreator()をお使いいただければ可能です。
参考:文書情報の取得- 弊社刊『PDFCookBook第4巻』より

③PDFファイルサイズ(KBではなくページの縦横サイズ)を取得。
getViewBox()をお使いいただければ取得は可能です。
参考:ページ境界値の取得- 弊社刊『PDFCookBook第1巻』より

CookBookの紹介ページにサンプルソースコードがございますのでダウンロードの上ご使用ください。
PDF CookBookの紹介

V7.0で取得できるフォントリストは、埋め込みがあるフォントについては埋め込みサブセットのように表示されるものでしょうか。

フォントに関してですが、フォント埋め込みされているかの判別はboolean型の[true, false]で取得します。 『埋め込みサブセット』などの表記はございません。 サブセットへの表記が必要であれば、お手数ですがお客様の手で実装して頂くことになります。

フォント取得ですが、クラス 「PtlFontInfo」を使用します。 サンプルソースなどはまだ用意できておりませんが、各言語のリファレンスにPtlFontInfoについての記述があります。
◆リファレンス[C++の場合の例]: PdfTk::PtlFontInfo Class Reference

PDFに対し、日付印を簡単に編集・合成できるソフトを探しています。
①Webページで公開されているサンプルを確認しましたが、サンプルはCしかありませんか?VB.NETやVBAで組みたいと思っています。
②PDF Tool APIで日付印ができるとのことですが、PDF Tool コマンドではできないのでしょうか?

サンプルコードは、C++、C#、Javaの3種類を提供しています。VB.NETであれば、C#のサンプルコードが参考になると思います。

②ライブラリ版のみでの機能となります。

PDF内情報取得(主にしおり)+PDF表示の機能を内蔵したアプリケーションを作成する場合、PDF Tool APIとPDF Viewer SDKの組み込みを検討しておりますが、他に適した製品はありますか。

しおり情報の取得はPDF Tool APIのライブラリ版でもコマンドライン版でも可能ですので、ご使用されるインターフェイスに合わせてご選択ください。 表示はPDFViewerKitスタンドアロン10ライセンスで可能です。

PDF Tool API コマンドライン版の購入を検討しています。 弊社アプリケーションから行いたいPDF加工は以下となりますが、可能でしょうか?

機能:見積書のPDFにサイン画像や電話番号(テキスト)を追加
①PDFを画像ファイル(JPEG)への変換
②画像ファイルをPDF上へ追加(必要機能:幅調整、ページと出力位置指定)
③テキストをPDF上へ追加(必要機能:フォントとサイズ調整、ページと出力位置指定)

①PDFを画像ファイル(JPEG)への変換
PDF Tool APIでは画像変換は出来ません。 Office Server Document Converter(OSDC)をお使いください。
Office Server Document Converter

②画像ファイルをPDF上へ追加(必要機能:幅調整、ページと出力位置指定)
PDF Tool APIのコマンドラインで任意の場所に画像を挿入したい場合は、 PDFに画像ファイル透かし設定を行うコマンド、「-setImageWatermark」コマンドで実現可能です。 位置指定・ページ指定も可能です。(詳しい使用法は以下URLにリファレンスがあります)
-setImageWatermark:画像ファイル透かし設定

③テキストをPDF上へ追加(必要機能:フォントとサイズ調整、ページと出力位置指定)
テキストの追加は、PDFに文字透かし設定を行うコマンド、「-setTextWatermark」コマンドで実現可能です。 フォントと位置指定・ページ指定も可能です。(詳しい使用法は以下URLにリファレンスがあります)
-setTextWatermark:テキスト透かし設定

PDFのコメント欄をリスト(スプレッドシート)に出力したいのですが可能でしょうか。

PDF Tool APIには、注釈の情報を取得する機能があります。
取得した注釈情報をCSV形式で出力するサンプルがありますのでご参考ください。
サンプル集: 各ページの注釈の日付とコメントを取得し一覧にしCSV形式で出力する

PDF Tool APIについてPDFからのテキスト抽出の機能があることをWebサイトから確認させていただきましたが、各文字の座標を取得することは可能でしょうか。 各文字の座標を取得できる製品がありましたら教えてください。

座標の取得ですが、PDF Tool APIでテキストなどの矩形座標を取得することが出来ます。 下記をご参照ください。
キーワードの指定による検索

他の製品になりますが、PDF表示や印刷が必要な場合は、PDF Viewer SDKに含まれているPDF Viewer APIで可能です。
PDF Viewer SDK 機能紹介:PDF Viewer API

XML形式になりますが一文字ずつの取得はPDFXML 変換ライブラリでも可能です。
PDFXML 変換ライブラリ

各製品ともに評価版もございますのでお試しください。
PDF Tool API 評価版のお申し込み
PDF Viewer SDK 評価版のお申し込み
PDFXML 変換ライブラリ 評価版のお申し込み

インストール・アップグレード・ライセンスファイルについて

PDF Tool APIのバージョンと改訂版とはどのような意味ですか?

バージョンとは、「Vn.m」形式で表記されるメジャーバージョン(n)とマイナーバージョン(m)の組み合わせです。nの増加をメジャーバージョンアップ、mの増加をマイナーバージョンアップといいます。

改訂版とは新旧バージョン番号(Vn.mのnとm)が同一でリリース日のみが新しくなっている製品をいいます。メンテナンスリリース(MR)と呼ぶこともあります。バージョン番号の後にMR番号が表記されます。

製品版のライセンスを購入したので、評価版を正式版にしたいがどうしたら良いですか?

電子納品の納品物(下記)の中に、ライセンスファイル(ファイル名:ptalic.dat(正式ライセンスファイル))があります。評価版インストール先フォルダにあるptalic.datを納品物中の正式ライセンスファイルに入れ替えてください。

<システム製品納品物>
・ライセンスファイル
・システム製品ライセンス証書
・システム製品「通常保守サービス」約款
・ソフトウエア製品使用許諾契約書
・保守契約のご案内 ※保守更新時の納品のみ

評価版をインストール後に改訂版(MR)がリリースされた。その後、製品版を購入したが、アップデートはどのような手順になるでしょうか?

【Windows版】
評価版と製品版のバージョンが同じでリリース日が新しく(改訂版に)なっている場合は、次の手順でアップデートできます。順序はどちらでも構いません。
1. 旧評価版をインストールしたフォルダに改訂版(最新版)を上書きインストールする。
2. インストール先のライセンスファイルを正式ライセンスファイルに入れ替える。

【Linux版】
Linux版インストーラは、上書きインストールを行いません。
したがって、旧評価版を一旦アンインストールしてから改訂版をインストールしてください。
その後、正式ライセンスファイルを配置します。

PDF Tool APIのライセンスファイルに記載されている情報を確認するにはどうしたら良いですか?

PDF Tool API V7.0では、コマンドラインにて「AHPDFToolCmd70 -lic」を実行すると、ライセンス情報が画面に表示されます。

PDF Tool APIのバージョンアップの際、旧バージョンをアンインストールする必要がありますか?

Windows版の場合、異なるバージョンのPDF Tool APIを1台のPC上にインストールすることができます。

Linux版の場合は、旧バージョンをアンインストールしてから、新しいバージョンをインストールすることをお勧めします。なお、旧バージョンとは別ディレクトリに新規インストールすることは可能です。

実運用する製品を旧バージョンから新バージョンに移行するときは、旧バージョンの所定の場所にある正式ライセンスファイルを削除し、新バージョンの正式ライセンスファイルを入れてください。新バージョンへのバージョンアップ完了後に旧バージョンを運用することは許諾されていません。

Linux版のアンインストールはどのように行いますか?

Linux版はrpmパッケージとして提供していますので、rpm -eコマンドでアンインストールします。
次に環境変数を設定している場合は削除します。環境変数については、次のページを参照してください。
環境変数について

PDF Tool APIの改訂版(MR)は上書きインストールできますか? そのときファイルはどうなりますか?

Windows版の場合、改訂版を上書きインストールできます。上書きインストールでは、実行バイナリ・ファイルは日付とファイルバージョンを確認して新しいものに置き換わります。ヘッダーファイルなどの非実行ファイルは日付を確認して新しいものに置き換わります。ライセンスファイルは置き換えません。

Linux版は上書きインストールできません。改訂版をインストールする前に旧版をアンインストールしてください。

PDF Tool APIをバージョンアップするとき、ライセンスファイル(ptalic.dat)の入れ替えは必要ですか?

メジャーバージョンアップでは、ライセンスファイルの入れ替えは必須です。マイナーバージョンアップでは保守期限内にリリースされたバージョンであればライセンスファイルの入れ替えは必須ではありません。
保守契約期限内であれば、メジャーバージョンアップ用の新しいライセンスファイルは、保守契約窓口(hosyu@antenna.co.jp)に請求して入手できます。

PDF Tool APIを改訂版に更新するとき、ライセンスファイル(ptalic.dat)の入れ替えは必要ですか?

PDF Tool APIの改訂版リリース日が、ライセンスファイルに記載されている保守期限内であれば、ライセンスファイル置き換えは必須ではありません。ライセンスファイルに記載された保守期限を過ぎてからリリースされた改訂版を使用するには、保守期限を更新したライセンスファイルに入れ替える必要があります。

PDF Tool APIの正式版を使用していました。改訂版がでたので上書きインストールして起動したところ、評価版のメッセージが出力されます。なぜでしょうか?

ライセンスファイルの保守期限が切れていると考えられます。保守期限を更新したライセンスファイルに入れ替えていただく必要があります。
ライセンスファイルについては次を参照してください。
ライセンスファイルに関して

バージョンの移行をしたところ、評価版のメッセージが出力されます。新しいライセンスの発行はどこに連絡すれば良いですか?

製品のバージョンアップは次の窓口で承っております。
保守契約窓口 (hosyu@antenna.co.jp)
年間の保守サポートサービスの期限内ですと、無償または購入価格との差額でバージョンアップが可能です。詳しくは下記『バージョンアップ』のページをご参照ください。
バージョンアップ

「保守更新のご案内」のライセンスファイルの適用手順に「当該製品を使用しているシステムを停止します」とあるが、どういった意味ですか?

2023年3月以前の保守更新時に同梱していた「保守契約のご案内.pdf」に記載されているライセンスファイルの入れ替え手順には不要な手順が含まれています。現在は、以下のとおり訂正いたしました。

【ライセンスファイルの入れ換え手順】

  1. 添付ファイル内の製品シリアル番号フォルダに、ライセンスファイルがあることを確認してください。ライセンスファイルの拡張子は、.lic または.dat です。
  2. 当該製品のインストール先、または【マニュアルに記載されている】配置先にある、同名のライセンスファイルのバックアップを取ってください。
  3. 弊社当該製品を終了してください。
  4. 手順1の新しいファイルを、手順2の古いファイルに上書きしてください。

VC++ランタイムのインストールなしでPDF Tool APIを動作させることはできますか?

Windows版のPDF Tool APIは、MicrosoftのVisual C++(VC++)を使用して開発されています。従って、開発に使用したVC++のバージョンとバイナリ互換のランタイムライブラリーが必須です。

PDF Tool API V6.0以降ではインストーラが必要に応じてVC++の再頒布可能パッケージのインストーラを起動するようになっています。PDF Tool API V5.0のインストーラでは再頒布可能パッケージのインストーラは起動しませんので、別途インストールしていただく必要があります。Microsoft Visual C++ 2010の再頒布可能パッケージをインストールしてください。

インストール先のPCに、VC++のランタイムが存在している場合はどうなりますか?

PDF Tool APIV6.0以降のインストーラはMicrosoft VC++の再頒布可能パッケージのインストーラを起動します。お使いの環境に古いVC++のランタイムが存在するとき、通常は、Microsoft VC++の再頒布可能パッケージが新しいものに置き換わります。 このとき、Windowsの再起動を要求されることがありますので、ご注意ください。

Windows版)現在バージョンのアンインストール後にバージョンアップを実施したところ、「セットアップ失敗」画面が表示されます。本エラー画面を閉じるとインストールは継続し、正常終了するようですが本手順で問題ないでしょうか?

より新しいランタイムが存在するとき、Microsoft VC++の再頒布可能パッケージのインストーラが、「セットアップ失敗」画面を表示することがあります。この場合、エラー画面を閉じるとインストールが継続し、正常終了します。「セットアップ失敗」が表示されてもPDF Tool APIをご使用いただく上では問題ありません。

Microsoft Visual C++ の最新版VC++ 2022でアプリケーションを開発する予定です。PDF Tool APIのC++インターフェイスを組み込むことはできますか?

VC++のランタイムは、VC++ 2015から2022までバイナリ互換性があります。次のページを参照してください。
『Visual Studio のバージョン間の C++ バイナリ互換性』

PDF Tool APIをビルドしたVC++のバージョンは次のとおりです。VC++2015以降のVC++でビルドしたPDF Tool APIであればVC++ 2022でお使いいただけます。

  • PDf Tool API V7.0 : Microsoft Visual C++ 2019
  • PDf Tool API V60 : Microsoft Visual C++ 2015

PDF Tool API V5.0はMicrosoft Visual C++ 2010でビルドされているため、VC++2022では使えません。

改訂版(メンテナンスリリース)がリリースされた際にユーザー登録申請書に記載した管理担当のメールアドレスにリリースの案内は、届かないのでしょうか?

改訂版の公開時には、原則として、ユーザー登録申請書に記載されている連絡窓 口宛てに、公開のご案内を電子メールでお送りしております。

Javaプログラム
現在、社内標準ソフトウェアにJRE8(実行用)を使用しており、PDF Tool APIは動作対象でしょうか? それとも、JRE8はアンインストールし、JRE11(開発用)をインストールした方がよろしいでしょうか?

アクセス権限
バッチファイルはユーザー権限(管理者以外の権限、管理者より弱い権限)で実行します。 JavaやPDF Tool APIのプログラムは管理者権限でインストールしました。 プログラムのインストールフォルダ等において、アクセス権限に関する注意事項(必要な設定)がありましたら、ご教授願います。

Javaプログラム
PDF Tool API V7.0 改訂5以降、Java8用モジュールを提供しています。 JRE8の環境で動作させるのであれば、Java8用モジュールをご使用ください。 実行環境のJavaのバージョンを開発用と同じJava11に合わせることができるのであれば、そちらのほうがよいです。

アクセス権限
特別な権限設定は必要ないと思います。

納品されたプログラムに不正な改ざんなどが混入していない正規品であることを確認する方法はありますか。

PDF Tool APIのexeやDLLにデジタル署名が付いています。

PDF Tool API のバージョンアップを検討しております。

●V7.0 必須ランタイムライブラリ
libc.so.6(glibc-2.28)
libstdc++.so.6.0.25

これらのランタイムは、単体で入手しバージョンアップできるものでしょうか。 それともOSや他アプリケーションに依存するものでしょうか。 PDF Tool API のバージョンを上げるために、例えばLinuxOSバージョンアップなどは必要でしょうか?

ランタイムライブラリは以下のページから入手できるようです。
https://rpmfind.net/linux/rpm2html/search.php?query=libc.so.6

ですが、LinuxOSのバージョンによる使用の可否については不明です。 LinuxOSのバージョンがサポート終了間近のようであればOSをアップいただいたほうが良いかと思います。

アンテナハウスの製品はクラウドですか?オンプレですか?

製品はクラウドでもオンプレでも動作します。

ライセンスの考え方について教えてください。

PDF Tool APIを動作させるPCがサーバーか単独のPCかによります。
サーバーへインストールしてお使いの場合はサーバーライセンス、単独PCでお使いの場合はスタンドアロン10ライセンスになります。

開発ライセンスとは何でしょうか?
スタンドアロン10ライセンス+開発ライセンスのどちらも必要でしょうか?

開発ライセンスは、プログラムを開発されるときにご使用いただくライセンスです。システム開発会社様がお客様のシステム構築やサポートにお使いいただけます。 実際の業務にはご使用いただけません。 詳細は以下ページのライセンス体系をご参照ください。
ライセンス案内

スタンドアロン10ライセンス+開発ライセンスは必須ではございません。 スタンドアロン10ライセンス(もしくはサーバーライセンス)でも開発は可能です。

受注開発する製品にPDF Tool APIを組み込む場合のライセンスは、スタンドアロン10ライセンス、OEMライセンスどちらになるのでしょうか。

受注する製品をクライアントPCで使用するならクライアントライセンス、サーバーで使用するならサーバーライセンスをお求めください。クライアントライセンスとサーバーライセンスは複製を許諾していないので、受注納品する製品1CPU毎に1ライセンスをお求めください。弊社製品を組み込んだ状態で複製するにはOEM(複製・再頒布)契約が必要です。

開発にスタンドアロン10ライセンスを利用できると記載がありましたが、その場合、何かデメリットになる様なことはあるのでしょうか。

スタンドアロンは10ライセンス単位の販売になりますので、その範囲であれば開発にもご使用いただけます。 特にデメリットはございません。

バージョンアップなどが不要な場合、一度購入したライセンスは恒久的に利用できますか。

ライセンスは著作権者として使用権を許諾するというモデルです。
例えば、サーバーライセンスは永続使用権なので、恒久的に利用できます。
ただし、ご使用されているバージョンが販売終了して5年経過しましたら改訂版の提供は終了となります。

エンドユーザー(E/U)向けにクラウドシステムを開発/提供しております。お客様(1社)ごとに、個別のアプリケーションサーバー(APサーバー)を用意しています。 このようなケースで購入が必要なライセンス数は、アプリケーションサーバー数と開発PC用の数で問題ないでしょうか。

各ユーザー毎のAPサーバーにライセンスが必要になります。 CPUライセンスですが、仮想環境の場合はゲストOS数のライセンスが必要です。 開発用も同様です。

ユーザー数が多い場合は、OEM契約もございます。 Webサービス等であればASP契約もありますので、ユーザーへのご提供方法と想定されるユーザー数をご相談ください。

その他

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

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

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

【V6.0以降】対応しています。

【V5.0】非対応です。対応予定はありません。

プログラムによって作成されたPDFで以下の問題が発生します。原因と解決方法についてお教え頂きたいです。

○環境
*Windows10 (64bit) 22H2
*Visual Studio 2019
*Adobe Acrobat Reader バージョン 2023.008.20533 64bit
○プログラム概要
既存PDFに対して、宛先を「PtlDestFitR」とする図面内へのリンク注釈を付与し、新規PDFとして書き出す。
○問題
作成されたPDFのリンク注釈をクリックすると、頻繁に Adobe Acrobat Reader がクラッシュする(PDFを開いた直後にクリックすると9割以上の確率で発生します)。

「PDFのリンクをクリックするとAcrobatがクラッシュする問題」(特にPDFを開いた直後にクリックすると9割以上の確率で発生)は、Adobe Acrobatの問題でした。

具体的には「Adobe Acrobatの起動完了前にリンク注釈をクリックすることでAdobe Acrobatがクラッシュする」という現象が起こっておりました。 以下、回避策と詳細を記載致します。

【回避策】

「当該PDFを開く前に前もってAdobe Acrobatを開いておく」ことで当該現象を回避できます。 理由を以下で記します。

当該現象はAdobe Acrobatが完全に起動しきっていないタイミングでリンク注釈をクリックすることで発生します。 そのため、Adobe Acrobatの起動が完了している状態であれば、PDFを開いてすぐにリンクをクリックしてもクラッシュせずにリンクを起動することができます。

弊社環境では、Acrobat Readerを起動し終わった状態からエクスプローラー上でPDFをダブルクリックして開いた場合、1000Mbyte程度の重いPDFであっても、開いてすぐにクラッシュせずにリンクのクリックができました。

【詳細】

当該現象であるAcrobatのクラッシュはPDFを開いて可能な限りすぐにリンクをクリックすることで弊社の環境でも発生しました。

さらに検証をした結果、Adobe Acrobatのみを使ってリンクを挿入したPDFでも、Acrobatを起動してすぐにリンクをクリックすることで当該現象が発生しました。

そのため、今回のAcrobatがクラッシュする問題はPDF Tool APIの加工が原因ではなく、Adobe Acrobatの問題であると結論付けさせて頂いております。

開発未経験者が開発する予定ですが、必要なコマンド作成するのに必要な参考情報をもらえますか。

通常保守契約があることが前提ですが、有償技術サポートがございます。
以下のページの有償技術サービスをご参照ください。 料金はご相談の上でお見積りいたします。
ソリューション・システムコンポーネント製品保守サービス仕様

開発時の不明点やバグに対してサポートはありますか。

通常保守サポートで対応しておりますが、バグ等修正が必要な場合は改訂版での提供になります。 改訂版の提供時期は弊社スケジュールで決めさせていただきます。

アンテナハウスの製品で、MicrosoftのPower Automateに組み込みできる製品はありますか? (必要な機能は、PDFへの変換・圧縮・結合になります)

ご要望の機能としまして
PDFへの変換:PDF Driver
圧縮:画像の圧縮のことであれば、PDF Driver、PDF Tool API
結合:PDFどうしの結合のことであれば、PDF Tool API
で可能です。

Power Automateに対応できているか社内で調べましたが、対応するにはPower Automate自体の詳細な調査等が必要のため現状では未対応となります。 今後の対応も未定です。