PDF Imager-LP PDF文書のインターラクティブ フォームのデータを表示 サンプル
PDF Imager-LP PDFのフォームに入力されたデータを表示する サンプル

Imager-LP
価格見積り
PDF Imager-LPは、
・PDF文書を画像(TIFF、JPEG、PNG、BMP)に変換
・PDFメタデータをXMP解析・変更
・文書のFormに入力されたデータを抽出
・PDFのオブジェクト(PDFの構成要素)を抽出
を実施するライブラリです。( PDF Imager-LP概要 )
ダウンロード:
PDF Imager-LPの無償体験版は、以下からダウンロードできます。無償体験版は、製品版と同じ機能が使えます。
利用許諾契約書をご確認のうえダウンロードしてください。ダウンロードしますと、利用許諾に同意したものとみなします。
評価利用では、ライセンスキーが必要ですので必ずダウンロードしてください。
インストール
| C# 開発環境 | C/C++ 開発環境 | Python 開発環境 |
ライブラリは無償でダウンロードでき、全機能を試用できます。
Imager-LPパッケージをダウンロードしてから、適当なフォルダーに解凍してください。
以下のようなフォルダーができますので適宜ご利用ください。
Imager-LPパッケージをダウンロードしてから、適当なフォルダーに解凍してください。
以下のようなフォルダーができますので適宜ご利用ください。
| doc | ライブラリ説明書、利用許諾契約書 |
| include | C/C++用ヘッダー(.h)ファイル |
| lib | DLLライブラリ、Libファイル |
| sample | C/C++言語、C#/VB.NET言語 および、 Windowsアプリケーション(C++およびC#) |
サンプルはlib/PdfImagerLPNET.dllおよびlib/x64/PdfImagerLP.dll(またはlib/Win32/PdfImagerLP.dll)を参照しますので、適切なフォルダーにコピーしてください。
サンプルはlib/x64/PdfImagerLP.dll(またはlib/Win32/PdfImagerLP.dll)を参照しますので、適切なフォルダーにコピーしてください。
サンプルはPdfImagerLP.pyを使用し、lib/[x64またはWin32]/_PdfImagerLP.pydおよびlib/[x64またはWin32]/PdfImagerLP.dllを参照しますので、適切なフォルダーにコピーするか、以下のような手順でPython DLLの検索パスを設定してください。
import sys
if sys.maxsize > 2**32:
sys.path.insert(1,'[Imager-LPインストールフォルダー名]/lib/x64')
else:
sys.path.insert(1,'[Imager-LPインストールフォルダー名]/lib/Win32')
フォームに入力されたデータをリスト表示するサンプルコード
PDF文書のインターラクティブ フォームに入力されたデータを表示するサンプルコードです。
PDF文書のフォームとその内容を表示します。(PDF文書の内容はこちらです。)
/* "hidden"はclass="hide"と同じ */ ?>
| C# | C/C++ | Python | 他のサンプル | ダウンロード |
#include "ImagerLP.h"
#pragma comment(lib, "PdfImagerLP.lib")
static void showData(MlpFormData*);
int main()
{
// 初期化
if(MlpInitialize("0-032G-E03H5ER56R0G")){
printf("ライセンスキーが不正です。正しいライセンスキーを使用してください。");
return 1;
}
// PDF文書オープン
if(MlpOpenDoc("ファイル.pdf", NULL, NULL)){
printf("PDFファイルをオープンできません。");
return 3;
}
// 最初のフォームデータ
MlpFormData res = MlpInteractiveFormFirstData();
if (res.type > 0) {
printf("*** FORM DATA ***\n");
showData(&res);
// 2番目以降のフォームデータ
while(1) {
res = MlpInteractiveFormNextData();
if (res.type < 1) break;
showData(&res);
}
printf("\n\n");
}
else
printf("The document has not AcroForm\n\n");
// 文書クローズ
MlpCloseDoc();
// 後始末
MlpUninitialize();
}
static void showData(MlpFormData *data)
{
static const char *FieldTypeName[] = {
"","PushButton","CheckButton","RadioButton",
"Text(Singleline)","Text(Multiline)","Text(File Path)","Text(Rich Text)","Password",
"ListBox(Single)","ListBox(Multi)","ComboBox", };
printf("%s [%s] ", FieldTypeName[data->type], data->name);
if (data->valueLength)
for (int i = 0; i < data->valueLength; i++)
if (!data->GetValue(data, i)[i]) printf("\n\t%s", data->GetValue(data, i)[1]);
else if (!data->GetValue(data, i)[1]) printf("\n\t%s", data->GetValue(data, i)[0]);
else if (!strcmp(data->GetValue(data, i)[0], data->GetValue(data, i)[1])) printf("\n\t%s", data->GetValue(data, i)[0]);
else printf("\n\t(%s)-%s", data->GetValue(data, i)[0], data->GetValue(data, i)[1]);
else
printf("\n\t(NoValue)");
if (data->richText)
printf("\n\t%s", data->richText);
printf("\n");
}
| MlpInitialize | 初期化 引数にライセンスキーを指定します。 |
| MlpOpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
| MlpInteractiveFormFirstData | 最初に記載されたフォームのデータを取得 |
| MlpInteractiveFormNextData | 次に記載されたフォームのデータを取得 |
| MlpCloseDoc | PDF文書をクローズ |
| MlpUninitialize | ライブラリの終了 |
/* "hidden"はclass="hide"と同じ */ ?>
| C# | C/C++ | Python | 他のサンプル | ダウンロード |
using System;
using PDFTools.PdfImagerLP;
namespace Alt
{
class Alt
{
static void Main(string[] args)
{
// インスタンス生成
PdfImager imgr = new PdfImager("0-032G-E03H5ER56R0G");
// オープン
if (imgr.OpenDoc("入力.pdf") != err.MLP_NO_ERROR)
{
Console.WriteLine("PDFファイルを開けません。");
Environment.Exit(3);
}
// 最初のフォームデータ
FormData res = mlp.InteractiveFormFirstData();
if (res.type > 0)
{
Console.WriteLine("*** FORM DATA ***");
ShowData(res);
// 2番目以降のフォームデータ
while (true)
{
res = mlp.InteractiveFormNextData();
if (res.type <= 0) break;
ShowData(res);
}
Console.WriteLine("\n");
}
else
Console.WriteLine("No Form Data");
// 文書クローズ
imgr.CloseDoc();
// 後始末
imgr.Uninitialize();
}
// 表示
static void ShowData(FormData d)
{
Console.Write($"{FieldTypeName[d.type]} [{d.name}]");
if (d.valueLength < 1)
Console.Write("\n\t(NoData)");
else
for (int i = 0; i < d.valueLength; i++)
if (d.GetValue(i)[0].Length < 1 && d.GetValue(i)[1].Length < 1) Console.Write("\n\t(NoData)");
else if (d.GetValue(i)[0].Length < 1) Console.Write($"\n\t{d.GetValue(i)[1]}");
else if (d.GetValue(i)[1].Length < 1) Console.Write($"\n\t{d.GetValue(i)[0]}");
else if (d.GetValue(i)[0] == d.GetValue(i)[1]) Console.Write($"\n\t{d.GetValue(i)[0]}");
else Console.Write($"\n\t{d.GetValue(i)[0]}-({d.GetValue(i)[1]})");
Console.WriteLine();
}
}
}
| Initialize | 初期化 引数にライセンスキーを指定します。 |
| OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード(省略可) 第三引数:ユーザーパスワード(省略可) |
| InteractiveFormFirstData | 最初に記載されたフォームのデータを取得 |
| InteractiveFormNextData | 次に記載されたフォームのデータを取得 |
| CloseDoc | PDF文書をクローズ |
| Uninitialize | ライブラリの終了 |
/* "hidden"はclass="hide"と同じ */ ?>
| C# | C/C++ | Python | 他のサンプル | ダウンロード |
import PdfImagerLP
# 表示
def show_data(data):
print('{0} [{1}]'.format(FieldTypeName[data.type], data.name))
if data.valueLength < 1:
print('\t(NoData)')
else:
for i in range(data.valueLength):
if data.GetValue(i)[0] == '':
print('\t{0}'.format(data.GetValue(i)[1]))
elif data.GetValue(i)[1] == '':
print('\t{0}'.format(data.GetValue(i)[0]))
elif data.GetValue(i)[0] == data.GetValue(i)[1]:
print('\t{0}'.format(data.GetValue(i)[0]))
else:
print('\t{0} - ({1})'.format(data.GetValue(i)[0], data.GetValue(i)[1]))
# インスタンス生成
mlp = PdfImagerLP.Mlp();
# 初期化
if mlp.Initialize("0-032G-E03H5ER56R0G") < 0:
print("ライセンスキーが不正です。");
exit()
EMBED = ('非埋込フォント', '埋込フォントサブセットフォント', '', '埋込フォント', '標準14フォント')
TYPE = ('Type0', 'Type1', 'MMType1', 'Type3', 'TrueType', 'CIDFontType0', 'CIDFontType2')
# オープン
if mlp.OpenDoc("in.pdf") < 0:
print("PDFファイルを開けません。")
else:
# 最初のフォームデータ
d = mlp.InteractiveFormFirstData()
if d.type > 0:
print('*** FORM DATA ***')
show_data(d)
# 2番目以降のフォームデータ
while(True):
d = mlp.InteractiveFormNextData()
if d.type < 1:
break
show_data(d)
else:
print('No Form')
print()
# 文書クローズ
mlp.CloseDoc();
# 後始末
mlp.Uninitialize();
| Initialize | 初期化 引数にライセンスキーを指定します。 |
| OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード(省略可) 第三引数:ユーザーパスワード(省略可) |
| InteractiveFormFirstData | 最初に記載されたフォームのデータを取得 |
| InteractiveFormNextData | 次に記載されたフォームのデータを取得 |
| CloseDoc | PDF文書をクローズ |
| Uninitialize | ライブラリの終了 |
変換結果:以下のようにフォントがリスト表示されます。
*** FORM DATA ***
Text(Singleline) [Name]
坂本龍馬
RadioButton [Develop Lang]
C Sharp
CheckButton [確認]
確認済み
PushButton [Send]
(NoValue)
入力のPDF文書はこちらです。