PDF Structure ライブラリ

PDF Structure
PDF Structureライブラリは以下の機能を持ったライブラリです。

 ・PDF文書のページを画像に変換
 ・PDF文書にスタンプを追加
 ・PDF文書に文字・画像・図形を追加
 ・PDF文書のメタデータ読み出しと編集
 ・PDF文書フォームデータ読み出し
 ・PDF文書を画像化したPDFデータに変換
 ・PDF文書の構成オブジェクトを抽出
 ・PDF文書に電子署名

PDF Structure(構成)ライブラリ 利用例

 電子データ(画像形式・PDF形式)のビジネス文書(電子帳簿等)を保存するサンプルコード示します。

目  次
1.PDFに受信日付印を追加
 1.1画像をにPDFに変換
2.PDFメタデータに日付・文書名などを追加
3.保存されたPDFの情報を列挙
4.更新されたPDFファイルから更新前のPDFファイルを作成

1. PDFに受信日付印を追加

 注文書などの文書を受け取った際に文書に日付印を追加する。
日付印が追加されたPDFはIncremental Update(増加更新)されているので、後から押印前の文書に戻せます。

オリジナル日付印追加済み
オリジナルの注文書日付印追加済みの注文書

PDF文書に受信印を追加するコード (増加更新による)
C#C/C++Python
// 初期化
var stc = new Structure("0-03K0-69310109W05H");

// オープン
stc.OpenDoc("OrdeSheet.pdf");

//受信印追加
var stm = stc.GetStampInterface();
stm.PaintStampFile("受信印.xml");
stm.CloseInterface();

//PDFファイル作成
stc.IncrementalUpdate = true;    //増加更新を有効にする
stc.SavePDF("OrdeSheetDateStamp.pdf");

スタンプのためのデータ("受信印.xml")は以下です。
<?xml version="1.0" encoding="utf-8" ?>

<init xmlns="http://www.trustss.co.jp/2019/Structure/">

  <pdfstamp xmlns="http://www.trustss.co.jp/2019/PDFStamp/">

    <stamp name="Ken" pos="250 450" layer="annot" page="1" alpha="1" BlendMode="Normal"
            creator="田中" subject="検印" >
      <circle size="80" sub="18" line-width="2" stroke-color="0 .75 .75 0" />
      <text value="受信" font-name="MS Mincho" font-size="20" color="0 .75 .75 0" expand="19 0 0 51" />
      <text value="{localtime:%Y.%m.%d}" format="true" font-name="MS PGothic" font-size="12"
          color="0 .75 .75 0" expand="10 0 0 35" />
      <text value="田中" font-name="MS Gothic" font-size="20" color="0 .75 .75 0" expand="20 0 0 8" />
    </stamp>

  </pdfstamp>

</init>


1.1 画像をにPDFに変換

スキャナーなどで作成した画像をPDFに変換します。

画像ファイルから同名のPDF文書を作成
C#C/C++Python
// 初期化
var stc = new Structure("0-03K0-69310109W05H");

// 画像ファイル読み込み
stc.OpenDoc("OrdeSheet.jpg");

// PDFファイルを格納
stc.CreatePDF(1, 72, 75, "OrdeSheet.pdf");   //72DPI,圧縮品質75%


2. PDFメタデータに日付・文書名などを追加

PDFファイルを検索しやすくするために、PDFのメタデータに受信日や文書名を追加します。
メタデータは表示データに無関係ですので、どのような文字列でも追加できます。
Incremental Update(増加更新)しますので、受信したオリジナルのPDF文書にいつでも戻せます。

PDFのメタデータに受信日と文書名を追加
C#C/C++Python
// 初期化
var stc = new Structure("0-03K0-69310109W05H");

// 画像ファイル読み込み
stc.OpenDoc("OrdeSheet.pdf");

// メタデータに受信の日時を追加
var xmp = stc.GetXmpInterface();
xmp.SetSimplePropertyCurrentDate(kXMP_NS.XMP, "ReceivedDate");     //現在時刻を追記
xmp.SetSimpleProperty(kXMP_NS.XMP, "CompanyName", "サンプル(株)");   //会社名を追記
xmp.UpdateDocument();
xmp.CloseInterface();

// PDFを格納
stc.IncrementalUpdate = true;   //Incremental Updateを有効に
stc.SavePDF("../../../OrderSheetUd.pdf");  //更新されたPDF文書


3. 保存されたPDFファイルの情報(メタデータ)を列挙

フォルダー内のすべてのPDFファイルに記載されたメタデータを読み取り列挙

C#C/C++Python
// 初期化
var stc = new Structure("0-03K0-69310109W05H");

// 現在フォルダー内のPDFファイル名を取得
string[] files = Directory.GetFiles(".", "*.pdf");
for (int i = 0; i < files.Length; i++)
{
    if (stc.OpenDoc(files[i]) >= 0)
    {
        var xmp = stc.GetXmpInterface();
        string com = xmp.GetSimpleProperty(kXMP_NS.XMP, "CompanyName");
        DateTime dt;
        string xmp.GetPropertyDate(kXMP_NS.XMP, "ReceivedDate", out dt) == 0 ? dt.ToString() : "NoReveivedDate";
        Console.WriteLine(Path.GetFileName(files[i]) + "," + com + "," + receiveStr + ",");

        xmp.CloseInterface();
        stc.CloseDoc();
    }
}


4. 更新されたPDFファイルから更新前のPDFを作成

Incremental Update(増加更新)されたPDFファイルから更新前のPDF文書を作成

C#C/C++Python
// 初期化
var stc = new Structure("0-03K0-69310109W05H");

// PDFファイル読み込み
stc.OpenDoc("OrdeSheetUpdated.pdf");

// 更新前のPDFを格納
if (stc.SaveLastPDF("OrdeSheetOriginal.pdf") != 0)
    Console.WriteLine("The PDF has NOT last version.");

ご質問 ・ お問い合わせ

 メールで support@TrustSS.co.jp 宛てに、または 質問のページからお送りいただくようお願いします。
ご購入前の技術的なご質問も受け付けております。


PDF Toolsライト

PDF 構文解説

(ISO32000-1より)

PDF Tools製品概要