PDF Imager-LP PDF文書からすべてのオブジェクトを抽出
PDF Imager-LP
PDF Imager-LPは、PDF文書を画像(TIFF、JPEG、PNG、BMP)に変換するライブラリです。( PDF Imager-LP概要 )
価格見積り
ダウンロード:
PDF Imager-LPの無償体験版は、以下からダウンロードできます。無償体験版は、製品版と同じ機能が使えます。
利用許諾契約書をご確認のうえダウンロードしてください。ダウンロードしますと、利用許諾に同意したものとみなします。
評価利用では、ライセンスキーが必要です。
インストール
/*C#*/ ?>
C#開発環境 | C/C++開発環境 | Python開発環境 |
ライブラリは無償でダウンロードおよび試用できます。
Imager-LPパッケージをダウンロードしてから、適当なフォルダーに解凍してください。
以下のようなフォルダーができますので適宜ご利用ください。
サンプルはlib/x64/PdfImagerLP.dll(またはlib/Win32/PdfImagerLP.dll)およびlib/PdfImagerLP.dllを参照しますので、適切なフォルダーにコピーしてください。
Imager-LPパッケージをダウンロードしてから、適当なフォルダーに解凍してください。
以下のようなフォルダーができますので適宜ご利用ください。
doc | ライブラリ説明書、利用許諾契約書 |
include | C/C++用ヘッダー(.h)ファイル |
lib | DLLライブラリ、Libファイル |
sample | C/C++言語、C#言語サンプル および、 Windowsアプリケーション(C++およびC#) |
C#開発環境 | C/C++開発環境 | Python開発環境 |
ライブラリは無償でダウンロードおよび試用できます。
Imager-LPパッケージをダウンロードしてから、適当なフォルダーに解凍してください。
以下のようなフォルダーができますので適宜ご利用ください。
サンプルはlib/x64/PdfImagerLP.dll(またはlib/Win32/PdfImagerLP.dll)を参照しますので、適切なフォルダーにコピーしてください。
Imager-LPパッケージをダウンロードしてから、適当なフォルダーに解凍してください。
以下のようなフォルダーができますので適宜ご利用ください。
doc | ライブラリ説明書、利用許諾契約書 |
include | C/C++用ヘッダー(.h)ファイル |
lib | DLLライブラリ、Libファイル |
sample | C/C++言語、C#言語サンプル および、 Windowsアプリケーション(C++およびC#) |
C#開発環境 | C/C++開発環境 | Python開発環境 |
ライブラリは無償でダウンロードおよび試用できます。
Imager-LPパッケージをダウンロードしてから、適当なフォルダーに解凍してください。
以下のようなフォルダーができますので適宜ご利用ください。
サンプルはモジュールPdfImagerLP.pyを使用し、lib/x64またはWin32/_PdfImagerLP.pydおよびlib/x64またはWin32/PdfImagerLP.dllを参照しますので、
適切なフォルダーにコピーするか、以下のような手順でPython DLLの検索パスを設定してください。
Imager-LPパッケージをダウンロードしてから、適当なフォルダーに解凍してください。
以下のようなフォルダーができますので適宜ご利用ください。
doc | ライブラリ説明書、利用許諾契約書 |
include | C/C++用ヘッダー(.h)ファイル |
lib | DLLライブラリ、Libファイル |
sample | C/C++言語、C#言語サンプル および、 Windowsアプリケーション(C++およびC#) |
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文書からすべてのオブジェクトを抽出し表示するサンプルコードです。
結果ではオブジェクト ストリームは通常のオブジェクトのように変換され、圧縮されたストリームは適切に伸長されますのでLength要素の値とは違ったサイズになります。
このサンプルはHelloWorld.pdfから抽出します。このPDFの内容はHelloWorld.txtです。
C# | C/C++ | Python | 他のサンプル | ダウンロード |
#include "ImagerLP.h" int main() { // 初期化(ライセンスキー) if (MlpInitialize("0-0G08-43RG048K9112")) { printf("License error\n"); return 100; } // 入力ファイルをオープン if (0 <= MlpOpenDoc("HelloWorld.pdf", "", "")) { // Primitiveインターフェース PRIMITIVE_HANDLE h = MlpGetPrimitiveInterface(); // 最大オブジェクト番号 int nMax = PrmMaxObjectNumber(h); // 表示 for (int i = 1; i <= nMax; i++) { PrmObjectHandle oh = PrmObjectHandleIndirect(h, i); if (oh.type != PRM_NUL_OBJ) { char *data; PrmStringObjectHandle(h, oh, 0, 1, 0, &data); printf("%d %d obj\n%s\nendobj\n", i, PrmObjectHandleReferenceToGeneration(h, oh), data); } } // クローズ PrmCloseInterface(h); MlpCloseDoc(); } // 後始末 MlpUninitialize(); }
MlpInitialize | 初期化 引数にライセンスキー を指定します。 |
MlpOpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
MlpGetPrimitiveInterface | PDFの構成要素を抽出するインターフェースのハンドルを取得 |
PrmObjectHandleIndirect | 指定された番号のオブジェクトを取得 文書の最大オブジェクト番号を戻します。 第一引数:ハンドル 第二引数:オブジェクト番号 |
PrmStringObjectHandle | オブジェクトを文字列で取得 第一引数:ハンドル 第二引数:オブジェクトハンドル 第三引数:参照オブジェクトを解決 第四引数:streamを文字列に含める 第五引数:改行して見易く |
PrmObjectHandleIndirectToGeneration | オブジェクトの世代番号を取得 第一引数:ハンドル 第二引数:オブジェクトハンドル |
PrmCloseInterface | 構成要素を抽出するインターフェースのハンドルを終了 第一引数:ハンドル |
MlpCloseDoc | PDF文書をクローズ |
MlpUninitialize | ライブラリの終了 |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
using System; using PDFTools.PdfImagerLP; namespace StartXref { class StartXref { static void Main(string[] args) { using (var mlp = new PdfImager("0-0G08-43RG048K9112")) { // オープン if (0 <= mlp.OpenDoc("HelloWorld.pdf")) { // Primitiveインターフェース PrimitiveInterface prm = p2i.GetPrimitiveInterface(); // 最大オブジェクト番号 int nMax = prm.MaxObjectNumber(); //表示 for(int i = 1; i <=nMax; i++) { var oh = prm.ObjectHandleIndirect(i); if(oh.type != PrmObjectType.PRM_NULL_OBJ) { Console.WriteLine($"{i} {prm.ObjectHandleReferenceToGeneration(oh)} obj"); Console.WriteLine($"{prm.StringObjectHandle(oh, false, true)}\nendobj"); } } // クローズ prm.CloseInterface(); mlp.CloseDoc(); } } } } }
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード(省略可) 第三引数:ユーザーパスワード(省略可) |
GetPrimitiveInterface | PDFの構成要素を抽出するインターフェースのハンドルを取得 |
ObjectHandleIndirect | 指定された番号のオブジェクトを取得 文書の最大オブジェクト番号を戻します。 引数:オブジェクト番号 |
ObjectHandleIndirectToGeneration | オブジェクトの世代番号を取得 引数:オブジェクトハンドル |
StringObjectHandle | オブジェクトを文字列で取得 第一引数:オブジェクトハンドル 第二引数:参照オブジェクトを解決(省略可) 第三引数:streamを文字列に含める(省略可) 第四引数:改行して見易く(省略可) |
CloseInterface | 構成要素を抽出するインターフェースのハンドルを終了 |
CloseDoc | PDF文書をクローズ |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
from PdfImagerLP import Mlp,PrmConstant mlp = Mlp() #初期化 if mlp.Initialize("0-0G08-43RG048K9112") < 0: print("ライセンスエラー") exit() # 入力ファイルをオープン if mlp.OpenDoc("HelloWorld.pdf") < 0: print('オープンエラー') else: # Primitiveインターフェース prm = mlp.GetPrimitiveInterface() # 最大オブジェクト番号 nMax = prm.MaxObjectNumber() # 表示 for i in range(1, nMax+1): oh = prm.ObjectHandleIndirect(i) if oh.type != PrmConstant.NULL_OBJ: print(i, prm.ObjectHandleReferenceToGeneration(oh), 'obj') s = prm.StringObjectHandle(oh, stream=True) print(s, '\nendobj') # クローズ prm.CloseInterface() mlp.CloseDoc() # 終了 mlp.Uninitialize()
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード(省略可) 第三引数:ユーザーパスワード(省略可) |
GetPrimitiveInterface | PDFの構成要素を抽出するインターフェースのハンドルを取得 |
ObjectHandleIndirect | 指定された番号のオブジェクトを取得 文書の最大オブジェクト番号を戻します。 引数:オブジェクト番号 |
ObjectHandleIndirectToGeneration | オブジェクトの世代番号を取得 引数:オブジェクトハンドル |
StringObjectHandle | オブジェクトを文字列で取得 第一引数:オブジェクトハンドル 第二引数:参照オブジェクトを解決([resolve],省略可) 第三引数:streamを文字列に含める([stream],省略可) 第四引数:改行して見易く([pretty],省略可) |
CloseInterface | 構成要素を抽出するインターフェースのハンドルを終了 |
CloseDoc | PDF文書をクローズ |
結果は以下です。
1 0 obj <</Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <</ModDate(D:20140217010203)/Producer(PDF Easy Parse Trust Soft Sys)>> endobj 3 0 obj <</Count 1/Kids[4 0 R]/Type/Pages>> endobj 4 0 obj <</Contents 5 0 R/MediaBox[0 0 595 842]/Parent 3 0 R/Resources 6 0 R/Type/Page>> endobj 5 0 obj <</Length 75>> stream BT 1 0 0 1 100 600 Tm /SF1 50 Tf 0 Ts 0 Tr 0 Tc 0 Tw (Hello, World.) Tj ET endstream endobj 6 0 obj <</Font<</SF1 7 0 R>>/ProcSet[/PDF/Text]>> endobj 7 0 obj <</BaseFont/Helvetica/Encoding/WinAnsiEncoding/Subtype/Type1/Type/Font>> endobj