PDF Tool API V7.0 サンプルコードのビルド手順（Windows）

アンテナハウス株式会社

目次

1 PDF Tool API の開発環境を整える
1.1 ライブラリファイル、ヘッダーファイルを配置する

11

1.1.1 インストーラを利用する場合

1

1.1.2 インストーラを利用しない場合

1

1.2 ライセンスファイルを配置する

21.2.1 インストーラを利用した場合

2

1.2.2 インストーラを利用しなかった場合

2

1.3 フォントの準備

2

1.3.1 フォントの場所

2

1.3.2 フォント構築ファイルの作成

2

1.4 環境変数のまとめ

3

2 C++サンプルコードのビルド手順

4

3 C#サンプルコードのビルド手順

8

4 Java サンプルコードのビルド手順

12

4.1 環境変数の設定

12

4.2 アプリケーションサーバにおける使用について

12

4.3 サンプルコードのコンパイルと実行

12

5 サンプルコード一覧

14

6 エラーコード一覧

16iii

1 PDF Tool API の開発環境を整える
1.1 ライブラリファイル、ヘッダーファイルを配置する
1.1.1 インストーラを利用する場合
1） setup-lib.exe をダブルクリックするなどして起動します。
2） ダイアログの指示にしたがってインストールを行います。
3） インストール途中に、Microsoft Visual C++ 2019 ランタイムライブラリのインストールを促すダイアログが表示された場合は、指示にしたがってインストールを行ってください。

4） デフォルトのインストール先は以下のフォルダパスです。
{システムドライブ}:\Program Files\Antenna House\PDFToolAPI_V7_lib※Java API 用「PdfTkJava70.jar」についてインストールされる「PdfTkJava70.jar」は、Java11 でコンパイルされています。

Java8 をご使用になる場合は、「{製品データ}\Lib-Windows\Java8」フォルダにあるファイルに入れ替えてください。

1.1.2 インストーラを利用しない場合「Lib-Windows」フォルダにライブラリファイルやヘッダファイルなどがあります。開発環境の任意の場所に配置します。
※Java API 用「PdfTkJava70.jar」について

Java8、Java11 のそれぞれでコンパイルしたファイルが同梱されています。
Lib-Windows\Java8 : Java8 でコンパイルしたファイル
Lib-Windows\Java11: Java11 でコンパイルしたファイル
それぞれ、32bit 用と 64bit 用が格納されています。環境に合わせ任意の場所に配置してください。

11.2 ライセンスファイルを配置する
1.2.1 インストーラを利用した場合
インストーラにより、ライセンスファイル「ptalic.dat」は「{インストールフォルダ}\License」フォルダに配置され、環境変数「PTL70_LIC_PATH」にフォルダパスが設定されます。
インストールされるライセンスファイルは、インストール後 30 日間有効の評価用です。出力される PDF ファイルに透かし文字列が挿入されます。

1.2.2 インストーラを利用しなかった場合[配置方法 1]
1） 弊社より発行するライセンスファイルを開発環境の任意の場所に配置します。
2） 環境変数「PTL70_LIC_PATH」を作成し、配置したフォルダパスを設定します。
[配置方法 2]
ライセンスファイルを、PDF Tool API のモジュールファイル「PdfTk70.dll」と同じ場所に配置します。
この場合、環境変数「PTL70_LIC_PATH」の作成は必要ありません。
この方法は、Windows 版でのみ有効です。

1.3 フォントの準備
テキスト透かしを挿入したりページ上に文字を描画するには、フォント情報が必要です。

Windows 版では、PDF Tool API はシステムのフォントフォルダに存在するフォントを参照します。

1.3.1 フォントの場所
Windows では、オペレーティングシステムの仕様によりフォントファイルは下記のフォントフォルダに存在しています。

{システムドライブ}:\WINDOWS\Fonts{システムドライブ}:\Users\{ユーザー名}\AppData\Local\Microsoft\Windows\Fonts
フォントフォルダとは異なる場所にあるフォントを参照する場合には、「フォント構築ファイル」を設定します。

1.3.2 フォント構築ファイルの作成
1） フォント構築ファイルは、下記の場所にあります。
{インストールフォルダ}\fontconfig または、 Lib_Windows\fontconfig
2） fontconfig フォルダ内には以下の２つのファイルがあります。
font-config.xml ：フォント構築ファイルのひな型
font-config.dtd ：font-config.xml の定義ファイル
3） font-config.xml の「font-folder path」タグに、フォントファイルが存在するフォルダパスを記述します。
（例）2

1 PDF Tool API の開発環境を整える<font-config><font-folder path="C:\TestFont"></font-folder></font-config>
4） font-config.xml と font-config.dtd を任意の場所に配置します。
5） 環境変数「PTL70_FONT_CONFIGFILE」を作成し、font-config.xml のフルパスを設定します。

1.4 環境変数のまとめ
環境変数名

PTL70_LIC_PATH

設定値

設定が必要な場合

ライセンスファイル「PdfTk70.dll」とは異なる場所にライセンスファイルを配置する場合「ptalic.dat」が存在する
フォルダパス

PTL70_FONT_CONFIGFILE フォント構築ファイル
システムのフォントフォルダとは異なる場所にあるフォントを参照する場合「font-config.xml」のフルパス

3

2 C++サンプルコードのビルド手順
1） Visual Studio 2019 を起動します。
2）「新しいプロジェクトを作成」において、C++の「空のプロジェクト」を選択し「次へ」ボタンをクリックします。

3）「プロジェクト名」と「場所」を指定し「作成」ボタンをクリックするとプロジェクトが開きます。

4

2 C++サンプルコードのビルド手順4）「プロジェクト」メニューの「既存の項目の追加．．．」を選択するとファイル選択ダイアログが表示されます。

5） サンプルの cpp ファイルをひとつ選択します。プロジェクトのソースファイルとして追加されます。
6）「ビルド」メニューの「構成マネージャー．．．」を選択します。
「アクティブソリューション構成」と「アクティブソリューションプラットフォーム」を設定します。プラットフォームは、「x64」または「x86」のどちらかを選択します。

7）「プロジェクト」メニューの「プロパティ」を選択します。
8）「構成プロパティ」の「C/C++」‐「全般」タブにおいて、「追加のインクルードディレクトリ」を設定します。PDF
Tool API の「PdfTk.h」ファイルがあるフォルダパスを指定します。

59）「構成プロパティ」の「リンカー」‐「全般」タブにおいて、「追加のライブラリディレクトリ」を設定します。PDF
Tool API のライブラリファイル「PdfTk70.lib」のフォルダパスを指定します。ソリューションプラットフォームが「x64」の場合は 64bit 用の PdfTk70.lib、「x86」の場合は 32bit 用の PdfTk70.lib が存在するフォルダパスを指定します。

10）「構成プロパティ」の「リンカー」‐「入力」タブを開きます。
「追加の依存ファイル」に「PdfTk70.lib」を追加します。

6

2 C++サンプルコードのビルド手順11）「OK」ボタンをクリックしてプロパティを閉じます。
12）「ビルド」メニューの「ソリューションのビルド」をクリックすると、ビルドが開始されます。

7

3 C#サンプルコードのビルド手順
1） Visual Studio 2019 を起動します。
2）「新しいプロジェクトの作成」において、C#の「コンソールアプリ (.NET Framework)」を選択し「次へ」ボタンをクリックします。
（※「.NET Core」など類似の名前のプロジェクトがあります。「.NET Framework」とあるプロジェクトを選択してください）

3）「プロジェクト名」、「場所」、「フレームワーク」を設定します。「フレームワーク」は「.NET Framework 4.5」以降を選択してください。「作成」ボタンをクリックするとプロジェクトが開きます。

8

3 C#サンプルコードのビルド手順4）「プロジェクト」メニューの「既存の項目の追加．．．」を選択するとファイル選択ダイアログが表示されます。

5） サンプルの cs ファイルをひとつ選択します。プロジェクトのソースファイルとして追加されます。プロジェクト
生成時に作成される cs ファイルはプロジェクトから削除してください。

6）「ビルド」メニューの「構成マネージャー．．．」を選択します。
「アクティブソリューション構成」と「アクティブソリューションプラットフォーム」を設定します。プラットフォームは、「x86」または「x64」のどちらかを新規作成します。

97）「プロジェクト」メニューの「参照の追加．．．」を選択すると、「参照マネージャー」ダイアログが開きます。

8）「参照」タブを開き、ダイアログ右下の「参照．．．」ボタンをクリックします。

10

3 C#サンプルコードのビルド手順

9） ファイル選択ダイアログが開きます。インストールフォルダまたは任意の場所に配置した PDF Tool API モジュー
ルファイルの「PdfTkNet70.dll」を選択します。ソリューションプラットフォームが「x64」の場合は 64bit 用、「x86」の場合は 32bit 用の「PdfTkNet70.dll」を選択してください。

10）「OK」ボタンをクリックして「参照マネージャー」ダイアログを閉じます。
11） ビルド」メニューの「ソリューションのビルド」をクリックすると、ビルドが開始されます。

11

4 Java サンプルコードのビルド手順
4.1 環境変数の設定
Java インターフェースのライブラリファイルを利用するには、次の環境変数の設定が必要です。
32bit プログラムを作成する場合は 32bit 用を、64bit プログラムを作成する場合は 64bit 用のファイルをご使用ください。

環境変数名

設定値

CLASSPATH「PdfTkJava70.jar」のフルパス名を設定します。

PATH「PdfTk7JNI.dll」ほか「PdfTkJava70.jar」と依存関係にあるライブラリファイルが存在するフォルダパスを設定します。

PTL70_LIC_PATH ライセンスファイル「ptalic.dat」が存在するフォルダパスを設定します。

（設定例：32bit API を利用する場合）> set CLASSPATH=C:\PDFToolAPI7\bin32\PdfTkJava70.jar;%CLASSPATH%> set PATH=C:\PDFToolAPI7\bin32;%PATH%> set PTL70_LIC_PATH=C:\PDFToolAPI7\License

4.2 アプリケーションサーバにおける使用について
Tomcat などのアプリケーションサーバにおいて本インターフェイスを使用する場合、PdfTkJava70.jar を WEB アプリ
ケーションの WEB-INF/lib に置かないようにしてください。

JavaVM の仕様により JNI のネイティブライブラリは複数のクラスローダから読み込めないようになっているため、各 WEB アプリケーションディレクトリに PdfTkJava70.jar を置くと複数の WEB アプリケーションから使用することができなくなります。
これを防ぐにはシステムクラスローダなどロードが一度だけ行われるクラスローダで読み込ませるように設定してください。

4.3 サンプルコードのコンパイルと実行
PDF Tool API では、Java 用のサンプルコードを用意しています。
ソースファイルは「UTF-8」を使用しています。
これらのサンプルプログラムをコンパイルして実行する手順は以下の通りです。
＊＊ 「AppendPages.java」サンプルの場合＊＊

1. カレントディレクトリをサンプルコードが存在するフォルダに切り替えます。
> cd {任意のフォルダ}\SampleCode\Java12

4 Java サンプルコードのビルド手順

2. 「AppendPages.java」をコンパイルします。
> javac -encoding UTF-8 AppendPages.java
3. サンプルコードでは「package SampleTryWithResources;」が定義されています。実行するには、コンパイルされた「AppendPages.class」を「SampleTryWithResources」フォルダに移動します。

> md SampleTryWithResources> move AppendPages.class SampleTryWithResources\AppendPages.class> java SampleTryWithResources.AppendPages c:\test\in.pdf c:\test\out.pdf c:\test\append.pdf

13

5 サンプルコード一覧
ファイル名

処理内容

1

AllocatePages

ページ割り付け2

AppendAnnotFileAttachment

ファイル添付注釈の作成

3

AppendAnnotLink

リンク注釈の作成

4

AppendAnnotStamp

スタンプ注釈の作成

5

AppendAnnotText

テキスト注釈の作成

6

AppendColorWatermark

色透かしの挿入7

AppendEmbeddedFile

ファイルの添付

8

AppendImageWatermark

画像透かしの挿入

9

AppendOutline

しおりの追加

10 AppendPages

PDF ファイルの結合

11

PDF 透かしの挿入

AppendPdfWatermark

12 AppendTextWatermark

テキスト透かしの挿入

13 Decrypt

セキュリティの解除

14 DividePage

ページ抽出

15 DrawForm

フォームの描画

16 DrawImage

画像の描画

17 DrawLayer

レイヤーの描画

18 DrawShape

パス（矩形、線）の描画

19 DrawTextBox ※V7.0 新規

テキストボックス

20 Encrypt

セキュリティ設定

21 EncryptPubSec ※V7.0 新規

証明書セキュリティ設定

22 ExportFormDataXFDF ※V7.0 新規 PDF フォームデータの XFDF へのエクスポート

14

23 ExtractImage

画像抽出

24 ExtractPage

ページ抽出

25 ExtractText

テキスト抽出

26 FixUpPDFA ※V7.0 新規

PDF/A-1b 変換

27 GetAnnots

注釈情報の取得

28 GetDocInfo

文書情報の取得

29 GetEncryptInfo

セキュリティ情報の取得

30 GetOpenMode

開き方情報の取得

31 GetOutline

しおり情報の取得

32 ImageToPdf

画像ファイルの PDF 化

33 ImageToPdfColorkeyMask

カラーキーマスクによる画像の PDF 化

34 ImageToPdfExplicitMask

明示マスクによる画像の PDF 化

35 ImageToPdfSMask

ソフトマスクによる画像の PDF 化

36 ImageToPdfStencilMask

ステンシルマスクによる画像の PDF 化

37 ImportFormDataXFDF ※V7.0 新規

PDF フォームデータの XFDF からのインポート

38 InsertImagePage

画像ファイルの PDF 化と既存 PDF へのページ追加

39 Optimize

最適化

40 OutputEmbeddedFile

添付ファイルの書き出し

41 RemoveAnnots

注釈の削除

42 RemoveEmbeddedFile

添付ファイルの削除

43 RemoveOutline

しおりの削除44 RemovePages

ページの削除45 RemoveWaterMark

透かしの削除

5 サンプルコード一覧46 ReplaceImage ※V7.0 新規

画像の入れ替え47 RotatePage

ページの回転48 SearchTextAndDrawPath

テキスト検索と矩形描画

49 SearchTextAndHighlight

テキスト検索とハイライト注釈追加（注釈追加の位置指定処理）

50 SearchTextAndHighlightAuto

テキスト検索とハイライト注釈追加（注釈追加は関数による自動処理）

51 SearchTextAndMaskAuto

テキスト検索とデータ削除

52 SeparationColor ※V7.0 新規

特色を使用した円の描画

53 SetDocInfo

文書情報の設定

54 SetMask

墨消し処理

55 SetOpenMode

開き方の設定56 SetRestriction

閲覧制限設定57 WriteString

テキストオブジェクトの挿入

58 ZoomPage

ページの拡大・縮小

59 ExtractTextElem

テキストエレメントの取得

15

6 エラーコード一覧
エラーコード

エラーメッセージ

0

正常終了

10

Cannot find license file.
ライセンスファイルが見つかりません。

11

License file is expired.
評価版ライセンスの有効期限が切れています。

12

License file is invalid.
ライセンスファイルが無効です。

13
14

License file is for other platform.
ライセンスファイルが他プラットフォーム用です。
License file is for other product.
ライセンスファイルが他製品用です。

100

Invalid PDF file.
PDF が異常です。

101

Cannot read PDF.
PDF の読み込みができません。

102

Cannot write PDF.
PDF の書き出しができません。

103

Cannot write too large PDF.
大きすぎる PDF の書き出しができません。

110

Invalid user password.
ユーザーパスワード不正です。

111

Invalid owner password.
オーナーパスワード不正です。

112
113

Invalid password.
パスワード不正です。
Has not authority.
処理権限がありません。

114

Is not encrypted.
暗号化されていません。

115

Unsupported security handler.
未対応のセキュリティハンドラです。

116

Unsupported security algorithm.
未対応のセキュリティアルゴリズムです。

117

Is signatured.
電子署名されています。

118

Has XFA(XML Form).
XFA(XML Form) を持っています。

120

Can not certificate.

※V7.0 追加

認証できません。

200

Invalid parameter value.
パラメータに問題があります。

201

Invalid page number.
ページの指定が間違っています。

202

Has no text.
テキストの設定がありません。

203

Has no font.
フォントの設定がありません。

16

204

Has no valid data.
有効なデータの設定がありません。

205※V7.0 追加

Cannot use this function.
この関数は使えません。

6 エラーコード一覧
210 *1211 *2

Need password.
パスワードが必要です。
Need user password.
ユーザーパスワードが必要です。

212 *3

Need owner password.
オーナーパスワードが必要です。

213

Invalid encrypt key length.
暗号化キー長が間違っています。

214

Invalid encrypt permission.
権限が間違っています。

215

Invalid encrypt component.
暗号化する文書コンポーネントに誤りがあります。

216

Invalid encrypt method.
暗号化メソッドが間違っています。

217※V7.0 追加

Need PKCS12.
PKCS12 が必要です。

220

Can not read attached file.
添付ファイルの読み込みが出来ません。

221
222

Can not write attached file.
添付ファイルの書き出しが出来ません。
No attached file.
添付ファイルがありません。

223
230

Attached file has no name.
添付ファイルに名前がありません。
Can not read image file.
画像ファイルの読み込みが出来ません。

231
232

Can not write image file.
画像ファイルの書き出しが出来ません。
Unsupported image.
未対応の画像です。

233

Unsupported image for stencil mask.
ステンシルマスクとしてサポートしていない画像です。

234

Image is not single.
ステンシルマスクがモノクロ画像でありません。

235

Unsupported image for color key mask.
カラーキーマスクとしてサポートしていない画像です。

236

Unsupported image for explicit mask.
明示マスクとしてサポートしていない画像です。

237

Image is not single.
明示マスクがモノクロ画像でありません。

238

Image is not gray scale.
ソフトマスクとしてサポートしていない画像です。

240

Image processing error.
イメージ処理で問題が発生しました。

241

Can not read ICC Profile.
ICC プロファイルの読み込みが出来ません。

※V7.0 追加

245
250

Font processing error.
フォント処理で問題が発生しました。
Can not insert page.
ページの挿入が出来ません。

251

Can not delete page.
ページの削除が出来ません。

252

Has no pages.
ページが存在しません。

260 *4

Free docproperty error.
DocProperty がドキュメントからフリーです。

261 *4

Free openmode error.
OpenMode がドキュメントからフリーです。

17262 *4

Free embeddedfiles error.
EmbeddedFiles がドキュメントからフリーです。

263 *4

Free pages error.
Pages がドキュメントからフリーです。

264 *4

Free page error.
Page がドキュメントからフリーです。

270

Can not set to root outline.
ルートアウトラインには設定出来ません。

271 *5

Can not set to free outline.
フリーアウトラインには設定出来ません。

280

Invalid FDF file.
FDF が異常です。

281

Cannot read FDF.
FDF の読み込みができません。

282

Cannot write FDF.
FDF の書き出しができません。

290※V7.0 追加

Cannot read PKCS12.
PKCS12 の読み込みができません。

291

Cannot read X509.
X509 の読み込みができません。

※V7.0 追加

500 *6

Linearize processing error.
線形化処理で問題が発生しました。

700
800

null value.
null 値です。
No Object.
オブジェクトが存在しません。

900

Not enough memory.
メモリが不足しています。

901
902

Internal error.
内部エラーです。
Other error.
その他のエラーです。

999

Sorry, not implemented.
未実装です。

※備考*1[210] PDF の暗号化設定処理においてパスワードの設定が行われていない場合に発生します。
*2[211] 添付ファイルのみの暗号化設定処理において添付ファイルを開くためのパスワードが設定されていない場合に発生します。

*3[212] PDF のセキュリティ権限フラグ設定処理において権限パスワードの設定が行われていない場合に発生します。
*4[260/261/262/263/264] 取得されたオブジェクトが PDF とは紐づいていない場合に発生します。
*5[271] しおりが作成できないことを示します。
*6[500] 線形化処理＝ Web 表示用に最適化する処理で問題が発生したことを意味します。

18

アンテナハウス株式会社

PDF Tool API V7.0 サンプルコードのビルド手順（Windows）

著

者 アンテナハウス株式会社

Antenna House Inc. 2021-2024 All Rights Reserved.