PDF Imager-LP PDF文書メタデータをXMP解析
PDF Imager-LP PDFのメタデータをXMP解析・変更するサンプル
PDF Imager-LPは、PDF文書を画像(TIFF、JPEG、PNG、BMP)に変換するライブラリです。( PDF Imager-LP概要 )
価格見積り
ここでは、PDFメタデータをXMP(Extensible Metadata Platform)として解析・変更するサンプルを示します。
ダウンロード:
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')
メタデータをXMPとして解析するサンプルコード
PDF文書からメタデータをXMPとしてダンプ出力するサンプルコードです。
C# | C/C++ | Python | 他のサンプル | ダウンロード |
#include "ImagerLP.h" #pragma comment(lib, "PdfImagerLP.lib") int main() { //初期化 if (0 > MlpInitialize("0-0G12-43RG03HK9153")) { printf("ライセンスキーが不正です\n"); exit(100); } //オープン if (0 > MlpOpenDoc("input.pdf", "", "")) printf("オープンエラー\n"); else { //XMPインターフェース XMP_TK_HANDLE h = MlpGetXmpInterface(); //XMP解析結果をダンプ出力 XmpDumpObjectToConsole(h); //クローズ XmpCloseInterface(h); MlpCloseDoc(); } //終了 MlpUninitialize(); }
MlpInitialize | 初期化 引数にライセンスキー を指定します。 |
MlpOpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
MlpGetXmpInterface | XMPインターフェースを取得 ハンドルが戻ります。 |
XmpDumpObjectToConsole | XMP解析の結果をコンソールに出力 第一引数:インターフェースハンドル |
XmpCloseInterface | XMPインターフェースをクローズ |
MlpCloseDoc | PDF文書をクローズ |
MlpUninitialize | ライブラリの終了 |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
using System; using PDFTools.PdfImagerLP; namespace XmpDumpCsp { class XmpDump { static void Main(string[] args) { // インスタンス生成 using (var mlp = new PdfImager("0-0G12-43RG03HK9153")) { // オープン if (0 > mlp.OpenDoc("input.pdf")) { Console.WriteLine("オープンエラー"); mlp.Uninitialize(); return; } else { // Xmpインターフェース XmpInterface xmp = mlp.GetXmpInterface(); // ダンプ出力 xmp.DumpObjectToConsole(); // クローズ xmp.CloseInterface(); mlp.CloseDoc(); } //終了 mlp.Uninitialize(); } } } }
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード(省略可) 第三引数:ユーザーパスワード(省略可) |
GetXmpInterface | XMPインターフェースを取得 |
GetMetadat | XMPメタデータを出力 |
CloseInterface | インターフェースクローズ |
CloseDoc | PDF文書をクローズ |
Uninitialize | ライブラリの終了 |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
from PdfImagerLP import Mlp #インスタンス生成 mlp = Mlp(); #初期化 if mlp.Initialize("0-0G12-43RG03HK9153") < 0: print("ライセンスキーが不正です。"); exit() #オープン if mlp.OpenDoc("in.pdf") < 0: print("PDFファイルを開けません。") else: # XMPインターフェース xmp = mlp.GetXmpInterface() # XMP出力 xmp.DumpObjectToConsole() #クローズ xmp.CloseInterface() mlp.CloseDoc() # 後始末 mlp.Uninitialize();
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード(省略可) 第三引数:ユーザーパスワード(省略可) |
GetXmpInterface | XMPインターフェースを取得 |
DumpObjectToConsole | XMPメタデータを出力 |
CloseInterface | XMPインターフェースをクローズ |
CloseDoc | PDF文書をクローズ |
Uninitialize | ライブラリの終了 |
以下は、上記コードで抽出されるXMPメタデータの例です。
dc: http://purl.org/dc/elements/1.1/ dc:format = "application/pdf" dc:creator [rdf:Seq] [1] = "" dc:title [rdf:Alt] [1] = "" pdf: http://ns.adobe.com/pdf/1.3/ pdf:Producer = "Acrobat Distiller 10.1.3 (Windows)" xmp: http://ns.adobe.com/xap/1.0/ xmp:CreatorTool = "Word 用 Acrobat PDFMaker 10.1" xmp:ModifyDate = "2024-11-10T11:38:22+09:00" xmp:CreateDate = "2024-11-10T11:38:15+09:00" xmp:MetadataDate = "2024-11-10T11:38:22+09:00" xmpMM: http://ns.adobe.com/xap/1.0/mm/ xmpMM:DocumentID = "uuid:352e51c6-c5a1-4710-bfd6-92ecdfa8db59" xmpMM:InstanceID = "uuid:0f64c2dd-f790-4217-9469-25b37bc83bf6"
メタデータのSimpleプロパティを検索・変更するサンプルコード
PDF文書のメタデータであるSimpleプロパティを検索・変更するサンプルコードです。
C# | C/C++ | Python | 他のサンプル | ダウンロード |
#include "ImagerLp.h" #pragma comment(lib, "PdfImagerLP.lib") int main() { // 初期化 if(MlpInitialize("0-0G12-43RG03HK9153")){ printf("ライセンスキーが不正です。正しいライセンスキーを使用してください。"); return 1; } // PDF文書オープン if(MlpOpenDoc("ファイル.pdf", NULL, NULL)){ printf("PDFファイルをオープンできません。"); return 2; } // XMPインターフェース XMP_TK_HANDLE h = MlpGetXmpInterface(); // Simpleプロパティ if (!XmpDoesSimplePropertyExist(h, "http://ns.adobe.com/xap/1.0/", "CreateDate")) { printf("プロパティはありません\n"); } else { time_t t; struct tm tm; // Simpleプロパティ値取得 XmpGetPropertyDate(h, "http://ns.adobe.com/xap/1.0/", "CreateDate", &t); localtime_s(&tm, &t); printf("%d-%d-%d %d:%d:%d\n", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); } // Simpleプロパティ変更(または追加) if (!XmpSetSimplePropertyCurrentDate(h, "http://ns.adobe.com/xap/1.0/", "ABCD")) { // メタデータを更新 XmpUpdateDocument(h); // 更新されたPDF文書を格納 XmpDocumentToFile(h, "out.pdf"); } // クローズ XmpCloseInterface(h); MlpCloseDoc(); // 後始末 MlpUninitialize(); return 0; }
MlpInitialize | 初期化 引数にライセンスキー を指定します。 |
MlpOpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
MlpGetXmpInterface | XMPインターフェースを取得 ハンドルが戻ります。 |
XmpDoesSimplePropertyExist | Simpleプロパティの有無を確認 第一引数:ハンドル 第二引数:プロパティの名前空間URL 第三引数:プロパティ名 |
XmpGetSimplePropertyDate | プロパティに指定された日時を取得 第一引数:ハンドル 第二引数:プロパティの名前空間URL 第三引数:プロパティ名 第四引数:日時データ |
XmpSetSimplePropertyCurrentDate | プロパティを現在日時に変更、もしくは現在日時のプロパティを追加 第一引数:ハンドル 第二引数:プロパティの名前空間URL 第三引数:プロパティ名 |
XmpUpdateDocument | PDF文書のメタデータを更新 XMPインターフェース |
XmpDocumentToFile | 更新されたPDF文書を出力 第一引数:ハンドル 第二引数:出力ファイルパス |
XmpCloseInterface | XMPインターフェースをクローズ |
MlpCloseDoc | PDF文書をクローズ |
MlpUninitialize | ライブラリの終了 |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
using System; using PDFTools.PdfImagerLP; namespace XmpSimpleCsp { class XmpSimple { static void Main() { // インスタンス生成 using (var mlp = new PdfImager("0-0G12-43RG03HK9153")) { // オープン if (0 > mlp.OpenDoc("in.pdf")) { Console.WriteLine("オープンエラー"); mlp.Uninitialize(); return; } // Xmpインターフェース XmpInterface xmp = mlp.GetXmpInterface(); // Simpleプロパティ値取得 if (xmp.DoesSimplePropertyExist("http://ns.adobe.com/xap/1.0/", "CreateDate") < 1) { Console.WriteLine("プロパティがありません"); } else { DateTime dt = xmp.GetPropertyDate("http://ns.adobe.com/xap/1.0/", "CreateDate"); Console.WriteLine(dt); } // Simpleプロパティ変更(追加) if (xmp.SetSimplePropertyCurrentDate("http://ns.adobe.com/xap/1.0/", "ABCD") == 0) { // PDF文書更新 xmp.UpdateDocument(); // PDF出力 mlp.DocumentToFile("out.pdf"); } //クローズ xmp.CloseInterface(); mlp.CloseDoc(); mlp.Uninitialize(); } } } }
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
GetXmpInterface | XMPインターフェースを取得 |
DoesSimplePropertyExist | Simpleプロパティの有無を確認 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 |
GetSimplePropertyDate | プロパティに指定された日時を取得 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 |
SetSimplePropertyCurrentDate | プロパティを現在日時に変更、もしくは現在日時のプロパティを追加 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 |
UpdateDocument | PDF文書のメタデータを更新 XMPインターフェース |
DocumentToFile | 更新されたPDF文書を出力 引数:出力ファイルパス |
CloseInterface | XMPインターフェースをクローズ |
CloseDoc | PDF文書をクローズ |
Uninitialize | ライブラリの終了 |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
from PdfImagerLP import Mlp #インスタンス生成 mlp = Mlp(); #初期化 if mlp.Initialize("0-0G12-43RG03HK9153") < 0: print("ライセンスキーが不正です。"); exit() #オープン if mlp.OpenDoc("in.pdf") < 0: print("PDFファイルを開けません。") else: #Simpleプロパティ値取得 xmp = mlp.GetXmpInterface() if 0 >= xmp.DoesSimplePropertyExist("http://ns.adobe.com/xap/1.0/", "CreateDate"): print('プロパティはありません') else: print(xmp.GetPropertyDate("http://ns.adobe.com/xap/1.0/", "CreateDate")) #Simpleプロパティ変更(追加) if 0 == xmp.SetSimplePropertyCurrentDate("http://ns.adobe.com/xap/1.0/", "ABCD"): #PDF文書更新 xmp.UpdateDocument() #更新された文書を出力 mlp.DocumentToFile("out.pdf") # クローズ xmp.CloseInterface() mlp.CloseDoc(); # 後始末 mlp.Uninitialize();
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
GetXmpInterface | XMPインターフェースを取得 |
DoesSimplePropertyExist | Simpleプロパティの有無を確認 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 |
GetSimplePropertyDate | プロパティに指定された日時を取得 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 |
SetSimplePropertyCurrentDate | プロパティを現在日時に変更、もしくは現在日時のプロパティを追加 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 |
UpdateDocument | PDF文書のメタデータを更新 XMPインターフェース |
DocumentToFile | 更新されたPDF文書を出力 引数:出力ファイルパス |
CloseDoc | PDF文書をクローズ |
Uninitialize | ライブラリの終了 |
以下は、上記コードで変更されたメタデータの例です。
<xmp:CreateDate>2024-11-10T11:38:15+09:00</xmp:CreateDate> <xmp:ABCD>2024-11-10T11:37:02+09:00</xmp:ABCD>
メタデータのarrayプロパティを検索・変更するサンプルコード
PDF文書のメタデータであるArrayプロパティを検索・変更するサンプルコードです。
C# | C/C++ | Python | 他のサンプル | ダウンロード |
#include "ImagerLp.h" #pragma comment(lib, "PdfImagerLP.lib") int main() { // 初期化 if(MlpInitialize("0-0G12-43RG03HK9153")){ printf("ライセンスキーが不正です。正しいライセンスキーを使用してください。"); return 1; } // PDF文書オープン if(MlpOpenDoc("ファイル.pdf", NULL, NULL)){ printf("PDFファイルをオープンできません。"); return 2; } // XMPインターフェース XMP_TK_HANDLE h = MlpGetXmpInterface(); // Arrayプロパティ if (!XmpDoesArrayPropertyExist(h, "http://purl.org/dc/elements/1.1/", "subject")) { printf("プロパティはありません\n"); } else { //項目 if (XmpDoesArrayItemExist(h, "http://purl.org/dc/elements/1.1/", "subject", 1)) { // Arrayプロパティ値取得 char *data; XmpGetArrayItem(h, "http://purl.org/dc/elements/1.1/", "subject", 1, &data); printf("Array(subject)[1]=%s\n", data); } // Arrayプロパティ変更(または追加) if (!XmpSetArrayItem(h, "http://purl.org/dc/elements/1.1/", "subject", 1, "ABCD")) { // メタデータを更新 XmpUpdateDocument(h); // 更新されたPDF文書を格納 XmpDocumentToFile(h, "out.pdf"); } // クローズ XmpCloseInterface(h); MlpCloseDoc(); // 後始末 MlpUninitialize(); return 0; }
MlpInitialize | 初期化 引数にライセンスキー を指定します。 |
MlpOpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
MlpGetXmpInterface | XMPインターフェースを取得 ハンドルが戻ります。 |
XmpDoesArrayPropertyExist | Arrayプロパティ項目の有無を確認 第一引数:ハンドル 第二引数:プロパティの名前空間URL 第三引数:プロパティ名 第四引数:項目番号 |
XmpGetArrayItem | プロパティの項目データを取得 第一引数:ハンドル 第二引数:プロパティの名前空間URL 第三引数:プロパティ名 第四引数:項目番号 第五引数:データの格納アドレス |
XmpSetArrayItem | Arrayプロパティを変更、もしくは追加 第一引数:ハンドル 第二引数:プロパティの名前空間URL 第三引数:プロパティ名 第四引数:項目番号 第五引数:格納するデータ |
XmpUpdateDocument | PDF文書のメタデータを更新 XMPインターフェース |
XmpDocumentToFile | 更新されたPDF文書を出力 第一引数:ハンドル 第二引数:出力ファイルパス |
XmpCloseInterface | XMPインターフェースをクローズ |
MlpCloseDoc | PDF文書をクローズ |
MlpUninitialize | ライブラリの終了 |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
using System; using PDFTools.PdfImagerLP; namespace XmpArrayCsp { class XmpArray { static void Main() { // インスタンス生成 using (var mlp = new PdfImager("0-0G12-43RG03HK9153")) { // オープン if (0 > mlp.OpenDoc("in.pdf")) { Console.WriteLine("オープンエラー"); mlp.Uninitialize(); return; } // Xmpインターフェース XmpInterface xmp = mlp.GetXmpInterface(); // Arrayプロパティ の有無 if (xmp.DoesArrayPropertyExist("http://purl.org/dc/elements/1.1/", "subject") < 1) { Console.WriteLine("Has not Propert"); } else { // Array項目取得 Console.WriteLine(xmp.GetArrayItem("http://purl.org/dc/elements/1.1/", "subject", 1)); // Array項目の変更(追加) xmp.SetArrayItem("http://purl.org/dc/elements/1.1/", "subject", 1, "ABCD"); // PDF文書更新 xmp.UpdateDocument(); // PDF出力 mlp.DocumentToFile("out.pdf"); } // クローズ xmp.CloseInterface(); mlp.CloseDoc(); mlp.Uninitialize(); } } } }
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
GetXmpInterface | XMPインターフェースを取得 |
DoesArrayPropertyExist | Arrayプロパティ項目の有無を確認 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:項目番号 |
GetArrayItem | プロパティの項目データを取得 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:項目番号 |
SetArrayItem | Arrayプロパティを変更、もしくは追加 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:項目番号 第四引数:格納するデータ |
UpdateDocument | PDF文書のメタデータを更新 XMPインターフェース |
DocumentToFile | 更新されたPDF文書を出力 引数:出力ファイルパス |
CloseInterface | XMPインターフェースをクローズ |
CloseDoc | PDF文書をクローズ |
Uninitialize | ライブラリの終了 |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
from PdfImagerLP import Mlp #インスタンス生成 mlp = Mlp(); #初期化 if mlp.Initialize("0-0G12-43RG03HK9153") < 0: print("ライセンスキーが不正です。"); exit() #オープン if mlp.OpenDoc("in.pdf") < 0: print("PDFファイルを開けません。") else: #Arrayプロパティ取得 xmp = mlp.GetXmpInterface() if 0 >= xmp.DoesArrayPropertyExist("http://purl.org/dc/elements/1.1/", "subject"): print('プロパティがない') else: print(xmp.GetArrayItem("http://purl.org/dc/elements/1.1/", "subject", 1)) #変更(追加) xmp.SetArrayItem("http://purl.org/dc/elements/1.1/", "subject", 1, "ABCD") # PDF文書のメタデータを更新 xmp.UpdateDocument() # PDF文書を格納 mlp.DocumentToFile("out.pdf") # クローズ xmp.CloseInterface() mlp.CloseDoc(); # 後始末 mlp.Uninitialize();
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
GetXmpInterface | XMPインターフェースを取得 |
DoesArrayPropertyExist | Arrayプロパティ項目の有無を確認 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:項目番号 |
GetArrayItem | プロパティの項目データを取得 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:項目番号 |
SetArrayItem | Arrayプロパティを変更、もしくは追加 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:項目番号 第四引数:格納するデータ |
UpdateDocument | PDF文書のメタデータを更新 XMPインターフェース |
DocumentToFile | 更新されたPDF文書を出力 引数:出力ファイルパス |
CloseDoc | PDF文書をクローズ |
Uninitialize | ライブラリの終了 |
以下は、上記コードで検索・変更されたArrayメタデータの例です。
<dc:subject> <rdf:Bag> <rdf:li>ABCD</rdf:li> <rdf:li>metadata</rdf:li> <rdf:li>ISO Standard</rdf:li> </rdf:Bag> </dc:subject>
メタデータのstructプロパティを検索・変更するサンプルコード
PDF文書のメタデータであるStructureプロパティを検索・変更するサンプルコードです。
C# | C/C++ | Python | 他のサンプル | ダウンロード |
#include "ImagerLp.h" #pragma comment(lib, "PdfImagerLP.lib") int main() { // 初期化 if(MlpInitialize("0-0G12-43RG03HK9153")){ printf("ライセンスキーが不正です。正しいライセンスキーを使用してください。"); return 1; } // PDF文書オープン if(MlpOpenDoc("ファイル.pdf", NULL, NULL)){ printf("PDFファイルをオープンできません。"); return 2; } // XMPインターフェース XMP_TK_HANDLE h = MlpGetXmpInterface(); // Structureプロパティ if (!XmpDoesStructPropertyExist(h, "http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize")) { printf("Has not Property\n"); } else { // フィールド if (XmpDoesStructFieldExist(h, "http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "h")) { // 取得 char *data; XmpGetStructField(h, "http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "h", &data); printf("Struct(MaxPageSize:h)=%s\n", data); // 変更(追加) XmpSetStructField(h, "http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "h", "300"); XmpSetStructField(h, "http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "hMax", "1000"); // メタデータを更新 XmpUpdateDocument(h); // 変更されたPDF文書を格納 MlpDocumentToFile(h, "out.pdf"); } } // クローズ XmpCloseInterface(h); MlpCloseDoc(); // 後始末 MlpUninitialize(); return 0; }
MlpInitialize | 初期化 引数にライセンスキー を指定します。 |
MlpOpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
MlpGetXmpInterface | XMPインターフェースを取得 ハンドルが戻ります。 |
XmpDoesStructPropertyExist | structプロパティの有無を確認 第一引数:ハンドル 第二引数:プロパティの名前空間URL 第三引数:プロパティ名 第四引数:フィールドの名前空間URL 第五引数:フィールド名 |
XmpGetStructField | プロパティのフィールド値を取得 第一引数:ハンドル 第二引数:プロパティの名前空間URL 第三引数:プロパティ名 第四引数:フィールドの名前空間URL 第五引数:フィールド名 第六引数:取得データアドレス |
XmpSetStructPropertyCurrentDate | プロパティを現在日時に変更、もしくは現在日時のプロパティを追加 第一引数:ハンドル 第二引数:プロパティの名前空間URL 第三引数:プロパティ名 第四引数:フィールドの名前空間URL 第五引数:フィールド名 第六引数:格納データ |
XmpUpdateDocument | PDF文書のメタデータを更新 XMPインターフェース |
MlpDocumentToFile | 更新されたPDF文書を出力 第一引数:ハンドル 第二引数:出力ファイルパス |
XmpCloseInterface | XMPインターフェースをクローズ |
MlpCloseDoc | PDF文書をクローズ |
MlpUninitialize | ライブラリの終了 |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
using System; using PDFTools.PdfImagerLP; namespace XmpstructCsp { class Xmpstruct { static void Main() { // インスタンス生成 using (var mlp = new PdfImager("0-0G12-43RG03HK9153")) { // オープン if (0 > mlp.OpenDoc("in.pdf")) { Console.WriteLine("オープンエラー"); mlp.Uninitialize(); return; } // Xmpインターフェース XmpInterface xmp = mlp.GetXmpInterface(); //Structureプロパティ if (xmp.DoesStructPropertyExist("http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize") < 1) { Console.WriteLine("プロパティはありません"); } else { // フィールド if (xmp.DoesStructFieldExist("http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "h") > 0) { // フィールド値取得 string data = xmp.GetStructField("http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "h"); Console.WriteLine($"Struct(MaxPageSize:h)={data}"); // フィールド値変更(追加) xmp.SetStructField("http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "h", "300"); xmp.SetStructField("http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "hMax", "1000"); // PDF文書更新 xmp.UpdateDocument(); // 更新されたPDF文書を出力 mlp.DocumentToFile("out.pdf"); } } //クローズ xmp.CloseInterface(); mlp.CloseDoc(); mlp.Uninitialize(); } } } }
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
GetXmpInterface | XMPインターフェースを取得 |
DoesStructPropertyExist | structプロパティの有無を確認 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:フィールドの名前空間URL 第四引数:フィールド名 |
GetStructField | プロパティのフィールド値を取得 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:フィールドの名前空間URL 第四引数:フィールド名 第五引数:取得データアドレス |
SetStructPropertyCurrentDate | プロパティを現在日時に変更、もしくは現在日時のプロパティを追加 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:フィールドの名前空間URL 第四引数:フィールド名 第五引数:格納データ |
UpdateDocument | PDF文書のメタデータを更新 XMPインターフェース |
DocumentToFile | 更新されたPDF文書を出力 引数:出力ファイルパス |
CloseInterface | XMPインターフェースをクローズ |
CloseDoc | PDF文書をクローズ |
Uninitialize | ライブラリの終了 |
C# | C/C++ | Python | 他のサンプル | ダウンロード |
from PdfImagerLP import Mlp # インスタンス生成 mlp = Mlp(); # 初期化 if mlp.Initialize("0-0G12-43RG03HK9153") < 0: print("ライセンスキーが不正です。"); exit() # オープン if mlp.OpenDoc("in.pdf") < 0: print("PDFファイルを開けません。") else: # Structureプロパティ xmp = mlp.GetXmpInterface() if 0 >= xmp.DoesStructPropertyExist("http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize"): print('プロパティはありません') else: # Structureプロパティのフィールド値 print(xmp.GetStructField("http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "h")) # フィールド値変更(追加) xmp.SetStructField("http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "h", "300"); xmp.SetStructField("http://ns.adobe.com/xap/1.0/t/pg/", "MaxPageSize", "http://ns.adobe.com/xap/1.0/sType/Dimensions#", "hMax", "1000"); # PDF文書更新 xmp.UpdateDocument() # 更新された文書を出力 mlp.DocumentToFile("out.pdf") # クローズ xmp.CloseInterface() mlp.CloseDoc(); # 後始末 mlp.Uninitialize();
Initialize | 初期化 引数にライセンスキー を指定します。 |
OpenDoc | PDF文書をオープン 第一引数:ファイルパス名 第二引数:オーナーパスワード 第三引数:ユーザーパスワード |
GetXmpInterface | XMPインターフェースを取得 |
DoesStructPropertyExist | structプロパティの有無を確認 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:フィールドの名前空間URL 第四引数:フィールド名 |
GetStructField | プロパティのフィールド値を取得 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:フィールドの名前空間URL 第四引数:フィールド名 第五引数:取得データアドレス |
SetStructPropertyCurrentDate | プロパティを現在日時に変更、もしくは現在日時のプロパティを追加 第一引数:プロパティの名前空間URL 第二引数:プロパティ名 第三引数:フィールドの名前空間URL 第四引数:フィールド名 第五引数:格納データ |
UpdateDocument | PDF文書のメタデータを更新 XMPインターフェース |
DocumentToFile | 更新されたPDF文書を出力 引数:出力ファイルパス |
CloseDoc | PDF文書をクローズ |
Uninitialize | ライブラリの終了 |
以下は、上記コードで変更されたメタデータの例です。
<xmpTPg:MaxPageSize rdf:parseType="Resource"> <stDim:h>300</stDim:h> <stDim:w>210</stDim:w> <stDim:unit>mm</stDim:unit> <stDim:hMax>1000</stDim:hMax> </xmpTPg:MaxPageSize>