PDF Structure

PDF構成ライブラリ 機能

 PDF StructureはPDF文書を以下のように変換したり、解析したりします。
  • PDFのページを画像に変換
  • 変換される画像はTIFF形式、PNG形式、JPG形式、BMP形式です。
      サンプル
  • PDFのページを画像に印影を追加
  • 角印、丸印、日付印、落款などを追加します。
      サンプル
  • PDFのページコンテンツに文字、画像、図形を追加
  • 文字(字形)でクリップした画像を追加できます。
  • PDFのメタデータ読み出し/メタデータ書き込み
  • PDFの構成オブジェクト(構成部品)を抽出
  • PDFをISO-32000ファイル構造にしたがって解析したオブジェクトを単位として抽出します。
  • PDFに電子署名・タイムスタンプ
  • PDFに電子署名(PAdES)を施します。
    電子署名にはタイムスタンプ(副署)を追加できます。
    タイムスタンプを追加(Document Timestamp)します。
    電子署名やタイムスタンプはIncremental Update(増加更新)として作成されます。
  • Incremental Update(増加更新)出力に対応
  • 変更されたPDFファイルをIncremental Update形式で出力
      サンプル
    Incremental Update形式で格納されたPDFファイルから直前(変更前)のPDFファイルを取り出す。
      サンプル

メタデータについて

 PDF文書に格納されるメタデータはISO 16684-1で規定されたXMP(The Extensible Metadata Platform)です。
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-032E-683H5EW76R5R");

// オープン
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メタデータに記載された一番目の項目を読み出すサンプルです。
C#C/C++Python

Arrayメタデータの三番目に項目を追加するサンプルです。
C#C/C++Python
PDF文書を出力する際に、変更前のPDFを復元できるIncremantal Update(増加更新)形式で格納することができます。

メタデータ - 構造体(Structure Values)

 メタデータのStructureは各々のフィールドに名前と値を持ったデータの組みです。
サンプルでは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"フィールドの値を読み出すサンプルです。
C#C/C++Python

Structureメタデータに新たな不フィールドを追加するサンプルです。
C#C/C++Python
PDF文書を出力する際に、変更前のPDFを復元できるIncremantal Update(増加更新)形式で格納することができます。

ご質問、お問い合わせ

メールで support@TrustSS.co.jp 宛てにお送りください。
または、質問のページからお送りいただくようお願いします。ご要望も承っております。

PDF Toolsライト

PDF 構文解説

(ISO32000-1より)

PDF Tools製品概要