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-0GR4-HE110364R170")){ 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-0GR4-HE110364R170"); // オープン 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-0GR4-HE110364R170") < 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文書はこちらです。