トラスト・ソフトウェア・システム
トラスト・ソフトウェア・システム

PDF Prep Tool Suite 画像追加C#サンプル

「PDF Prep Tool Suite」ソフトは、PDF文書を作成、編集、分割、統合するためのAPI(ライブラリ)です。

PDF文書にテキスト・コンテント、画像、ベクタ・グラフィックスを追加します。 さらに、インターラクティブな要素(ハイパー・リンク、フォーム・フィールド、ブックマークなど)を追加し処理します。

PDF文書は、新たに生成することができます。プロパティ(位置、フォント、サイズ、色など)は自由に選択できます。 作成されたPDF文書には、暗号化やWebの表示用に最適化が施されます。

機能概要はこちらです。
無償評価版(リンク先は英語)はこちらです。 ダウンロード手順
他のC#サンプルC++サンプルを公開しています。
PDF Prep Tool Suite ソフト 購入(価格)

無償評価版のダウンロードとインストール

 ライブラリ(評価版API)は無償でダウンロード(試用)できますので、PDF Prep Tool Suiteダウンロード手順を参照してダウンロードください。
 ファイルをダウンロードしてから、インストールもしくは適当なフォルダーに解凍します。以下のようなフォルダーができあがりますので、適宜ご利用ください。
binライブラリやライセンスマネージャーなど
doc使用説明書やjavadocなど
includeC/C++用のヘッダー(.h)ファイル
jarPrepTool.jar、I2PA.jar(Javaのラッパー)
libC/C++用のlibファイル
ご注意ください:サンプル(英語版)はPDF Tools AG社のページからダウンロードできますが、それを動作させるためにはコードの変更が必要な場合があります。
以下のサンプルは、正しい動作を確認しています。ソースコードはこちらからダウンロードできます。

無償評価版と共にダウンロードしたライセンスキーをbin/LicenseManager.exeを使って登録してください。 ライセンスキーの登録方法はこちらです。

COMインターフェースとして、bin/pdprep32.dll、bin/Img2PdfAPI.dllをregsvr32.exeを使って登録してください。なお、64ビット版Windowsの場合は、WOW64/regsvr32.exeを使って登録してください。
文字化けする場合は、bin/pdcjk.dllをサンプル実行イメージと同じフォルダーにコピーしてください。

参照設定

C#プロジェクトでは、以下のように.NET用DLLの参照を設定します。なお、サンプルは、基本的にコンソールアプリケーションです。
  1. C#プロジェクトを新規に作成します。
  2. PDF Prep Tool SuiteライブラリのNETラッパを参照する設定をします。
  3. Visual Studio C#のメインメニューで、「プロジェクト(P)」→「参照の追加(R)...」を選択します。
    以下のようなダイアログが表示されますので、解凍して作成されたフォルダーの「bin」に格納されている.NET用のDLLおよびpdprep32.dllを指定します。
    PDF Prep Tool参照設定

画像を追加するC#サンプルと解説

画像が追加された新しいPDF文書を新規に作成するサンプルです。
using System;
using PREPTOOLLib;
using Pdftools.Img2Pdf;
using Pdftools.Pdf;

namespace img
{
    class Img
    {
        static void Main(string[] args)
        {
            //インスタンス生成
            PDoc doc = new PDoc();

            //出力ファイルを作成
            if (!doc.New("out.pdf", 0, 0))
            {
                Console.WriteLine("'output.pdf'を作成できません");
                Environment.Exit(1);
            }

            //テキストを追加
            content p = doc.Page();
            p.SetFont("Helvetica", 15);
            p.SetTm(1, 0, 0, 1, 50, 100);
            p.PrintText("Text String", 50, 100);

            //コーデック インスタンスを生成
            PdfCodec cdc = new PdfCodec();

            //画像データをオープン
            if (!cdc.Open("image.jpg"))
            {
                Console.WriteLine("コーデックを画像から生成できません");
                Environment.Exit(2);
            }

            //ページ番号を指定
            cdc.PageNo = 1;

            //画像生成
            short bits = cdc.BitsPerComponent;
            if (cdc.ColorSpace == PDFColorSpace.eColorCMYK)
            {
                bits = 32;
            }
            int imgId = doc.CreateImageEx(cdc.Width, cdc.Height, bits, cdc.ComponentsPerPixel > 1, cdc.Samples, cdc.Palette, cdc.Mask, (short)cdc.Compression);

            //生成した画像を追加
            if (!p.PrintImage(imgId, 50, 400, cdc.Width, cdc.Height))
            {
                Console.WriteLine("画像を追加できません");
                Environment.Exit(3);
            }

            //終了
            doc.Close();
            cdc.Close();
        }
    }
}
このサンプルでは、以下の手順でPDFを新規に作成します。
  1. PDFを操作するインスタンスを生成
  2. 出力ファイルを作成
  3. テキスト追加
  4. コーデック インスタンスを生成
  5. 画像ファイルを開く
  6. 画像オブジェクトを生成
  7. 画像オブジェクトをPDFに追加
PDoc doc = new PDoc() インスタンス生成
doc.New( ) 結果のPDFインスタンスを生成
引数に以下の値を設定します。
第一引数作成するPDF文書のファイル(パス)名
第二引数作成するPDF文書のページ幅(ポイント単位)
第三引数作成するPDF文書のページ高さ(ポイント単位)
content p = doc.Page() ページのインスタンスを取得
p.SetFont( ) フォントを指定
ここでは、ページにテキスト文字を追加(PrintText)するためにフォントを指定します。p.PrintTextをコールする前にフォントを指定しなければなりません。
引数に以下の値を設定します。
第一引数フォントの名前
第二引数フォントのサイズ
Acrobatにビルトインされたフォント(Helvetica、Helvetica-Bold、Helvetica-Oblique、Times-Roman、Times-Italic、Times-Bold、Courier、Courier-Oblique、Courier-Bold、Symbol、ZapfDingbats)は、この例のように利用できます。 これ以外のフォントや日本語フォントを利用する場合は、日本語フォントのテンプレートを参照してください。
p.SetTm( ) テキスト配置の変換行列を指定
引数に以下の値を設定します。
第一引数注1参照
第二引数注1参照
第三引数注1参照
第四引数注1参照
第五引数テキストの書き出しX座標
第六引数テキストの書き出しY座標
注1)第一引数から第四引数の値でテキストの回転を指定します。[1 0 0 1]を指定すると、テキストを左から右へ横方向に書き出します。文字列を襷がけのように書き出す方法を参照してください。
p.PrintText( ) 書き出す文字列を指定
引数に以下の値を設定します。
第一引数書き出す文字列
第二引数テキストの書き出しX座標
第三引数テキストの書き出しY座標
PdfCodec cdc = new PdfCodec() コーデックのインスタンスを生成
cdc.Open( ) 画像データを開く
引数に画像ファイル名を指定します。
cdc.PageNo ページ番号を指定
画像を追加するページを指定します。
short bits = cdc.BitsPerComponent Componentあたりのビット数を取得
CMYK色空間の場合は32を指定します。
doc.CreateImageEx( ) 画像オブジェクトを生成
PDFに埋め込む画像objectを生成します。
引数に以下の値を設定します。
第一引数
第二引数高さ
第三引数Componentあたりのビット数
第四引数カラーの場合に真
第五引数画像データ
第六引数パレットデータ(注1)
第七引数マスク
第八引数圧縮のタイプ
注1)PDFのパレットデータサイズは、768でなければなりません。画像のパレットサイズがこれより小さい場合は、データが自動調整されます。
p.PrintImage( ) 画像オブジェクトをPDFに貼り付け
作成した画像objectをPDFの現在のページに貼り付けます。
引数に以下の値を設定します。
第一引数画像の識別番号
doc.CreateImageExの戻り値
第二引数X-座標
第三引数Y-座標
第四引数
第五引数高さ

サンプルコード

 C# PDF Prep Tool Suite サンプル (MS Visual Studio 2008 Project) PtsCspSamples.zip

ご質問、お問い合わせ

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

(記載の会社名および製品名は、各社の登録商標および商標です。)
PDF製品 C#サンプル
PDF Security
PDF Validator
PDF to PDF/A Converter
PDF to Image Converter
PDF Imager-LP
Image to PDF Converter
PDF Printer
PDF Viewer
PDF Viewer-L
PDF Prep Tool Suite
PDF Optimization
PDF Command Line Suite
PDF Extract
PDF Easy Parse
株)トラスト・ソフトウェア・システム
暗号化・電子署名・タイムスタンプ ライブラリ作成します。
お問い合わせください。