PDF Structure
PDF構成ライブラリ 機能
PDF StructureはPDF文書を以下のように変換したり、解析したりします。
- PDFのページを画像に変換
- PDFのページを画像に印影を追加
- PDFのページコンテンツに文字、画像、図形を追加
- PDFのメタデータ読み出し/メタデータ書き込み
- PDFの構成オブジェクト(構成部品)を抽出
- PDFに電子署名・タイムスタンプ
- Incremental Update(増加更新)出力に対応
変換される画像はTIFF形式、PNG形式、JPG形式、BMP形式です。
サンプル
サンプル
角印、丸印、日付印、落款などを追加します。
サンプル
サンプル
文字(字形)でクリップした画像を追加できます。
PDFに電子署名(PAdES)を施します。
電子署名にはタイムスタンプ(副署)を追加できます。
タイムスタンプを追加(Document Timestamp)します。
電子署名やタイムスタンプはIncremental Update(増加更新)として作成されます。
電子署名にはタイムスタンプ(副署)を追加できます。
タイムスタンプを追加(Document Timestamp)します。
電子署名やタイムスタンプはIncremental Update(増加更新)として作成されます。
メタデータについて
PDF文書に格納されるメタデータはISO 16684-1で規定されたXMP(The Extensible Metadata Platform)です。
XMPデータはXML(Extensible Markup Language)仕様に従ったデータで、単純(Simple Values)、構造体(Structure values)、配列(Array values)を扱うことができます。
PDF StructureライブラリはこのXMPを読み出したり、書き込んだり、または、新たな項目を追加し値を設定することができます。
XMPデータはXML(Extensible Markup Language)仕様に従ったデータで、単純(Simple Values)、構造体(Structure values)、配列(Array values)を扱うことができます。
PDF StructureライブラリはこのXMPを読み出したり、書き込んだり、または、新たな項目を追加し値を設定することができます。
以下はPDF文書に記載された一般的なメタデータの例です。
<?xpacket begin="...." id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"> <xmp:CreateDate>2055-01-01T09:01:23+09:00</xmp:CreateDate> <xmp:ModifyDate>2056-01-02T09:45:12+09:00</xmp:ModifyDate> <xmp:MetadataDate>2056-01-02T09:45:12+09:00</xmp:MetadataDate> <xmp:CreatorTool>PDF Structure Library Ver 1.10.2 (https://www.trustss.co.jp/)</xmp:CreatorTool> <xmp:Rating>3</xmp:Rating> <xmpMM:DocumentID>uuid:1e46bb17-844f-4007-9c74-27a2f1def67f</xmpMM:DocumentID> <xmpMM:InstanceID>uuid:27fbec95-3283-409b-b302-5cf8cfd5d5ff</xmpMM:InstanceID> <dc:format>application/pdf</dc:format> <dc:title> <rdf:Alt> <rdf:li xml:lang="x-default">XMP Sample</rdf:li> </rdf:Alt> </dc:title> <dc:creator> <rdf:Seq/> </dc:creator> <dc:subject> <rdf:Bag> <rdf:li>XMP</rdf:li> <rdf:li>ISO 16684</rdf:li> </rdf:Bag> </dc:subject> <pdf:Producer>PDF Structure Library Ver 1.10.2 (https://www.trustss.co.jp/)</pdf:Producer> <pdf:Keywords>XMP; ISO 16684</pdf:Keywords> <xmpTPg:MaxPageSize rdf:parseType="Resource"> <stDim:h>297</stDim:h> <stDim:w>210</stDim:w> <stDim:unit>mm</stDim:unit> </xmpTPg:MaxPageSize> </rdf:Description> </rdf:RDF> </x:xmpmeta>以下のサンプルではこのPDF文書の値を読み出したり、書き込んだりします。
メタデータ - 単純(Simple Values)
メタデータのSimple値には、文書の作成日時や変更された日時が記載されています。サンプルでは上記PDF文書から以下を読み出し・変更します。
<xmp:CreateDate>2055-01-01T09:01:23+09:00</xmp:CreateDate> <xmp:ModifyDate>2056-01-02T09:45:12+09:00</xmp:ModifyDate> <xmp:MetadataDate>2056-01-02T09:45:12+09:00</xmp:MetadataDate>
記載された日時を読み出すサンプルです。文字列や日付型データで読み出します。
記載された更新日時を現在の時刻で置き換えます。
C# | C/C++ | Python |
using PDFTools.PdfStructure; using PDFTools.PdfStructure.Constants; // 初期化 var stc = new Structure("0-03W2-021180K4R188"); // オープン stc.OpenDoc("input.pdf"); // XMPインターフェース var xmp = stc.GetXmpInterface(); //生成日文字列読み出し Console.WriteLine(xmp.GetSimpleProperty(kXMP_NS.XMP, "CreateDate")); //日付型データ Console.WriteLine(xmp.GetPropertyDate(kXMP_NS.XMP, "CreateDate").ToString()); //終了 stc.CloseDoc(); stc.Uninitialize();
記載された更新日時を現在の時刻で置き換えます。
C# | C/C++ | Python |
PDF文書を出力する際に、変更前のPDFを復元できるIncremantal Update(増加更新)形式で格納することができます。
メタデータ - 配列(Array Values)
メタデータのArrayには、順序に意味を持つものと、持たないものがあります。上記の例は順序に意味がありません。サンプルではPDF文書から以下を読み出し・変更します。
<dc:subject> <rdf:Bag> <rdf:li>XMP</rdf:li> <rdf:li>ISO 16684</rdf:li> </rdf:Bag> </dc:subject>
Arrayメタデータに記載された一番目の項目を読み出すサンプルです。
Arrayメタデータの三番目に項目を追加するサンプルです。
C# | C/C++ | Python |
Arrayメタデータの三番目に項目を追加するサンプルです。
C# | C/C++ | Python |
PDF文書を出力する際に、変更前のPDFを復元できるIncremantal Update(増加更新)形式で格納することができます。
メタデータ - 構造体(Structure Values)
メタデータのStructureは各々のフィールドに名前と値を持ったデータの組みです。
サンプルではPDF文書から以下を読み出し・変更します。
サンプルではPDF文書から以下を読み出し・変更します。
<xmpTPg:MaxPageSize rdf:parseType="Resource"> <stDim:h>297</stDim:h> <stDim:w>210</stDim:w> <stDim:unit>mm</stDim:unit> </xmpTPg:MaxPageSize>
Structureメタデータに記載された"h"フィールドの値を読み出すサンプルです。
Structureメタデータに新たな不フィールドを追加するサンプルです。
C# | C/C++ | Python |
Structureメタデータに新たな不フィールドを追加するサンプルです。
C# | C/C++ | Python |
PDF文書を出力する際に、変更前のPDFを復元できるIncremantal Update(増加更新)形式で格納することができます。