Image to PDF Converter(画像をPDF変換) サンプル・ソースコード

Image to PDF Converter

PDF ValidatorImage to PDF Converter」ソフトは、PDF文書を画像に変換するツールです。

機能
  • 単一または複数ページのラスター画像をPDFに変換
  • 出力の形式と適合する規格(PDF、PDF/A-1、PDF/A-2)を指定
  • 画像の種類(モノクロ、グレースケールまたはカラーやインデックスの画像)それぞれ個別の圧縮方式を設定
  • ミックスト・ラスター・コンテント(MRC)をサポート
  • ページのサイズと切り取りを指定
  • 位置(センターリング)と縮尺設定
  • 暗号化、許可フラグ設定
  • カラープロファイルの埋め込みと選択
  • XMPメタデータ 埋め込み
  • タイトルや作成者といった文書プロパティ指定
  • ラスター画像を別の形式のラスタ画像(PDFではなく)に変換
  • Web閲覧用にリニアライズ
  • 変換のためのページ範囲指定
  • 向きを指定
  • 画像のコーデック情報を読み出します。

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


C#開発環境 C/C++開発環境
1.Zipファイルをダウンロードする場合
ライブラリ(評価版API)は無償でダウンロードできます。
ファイルをダウンロードしてから適当なフォルダーに解凍してください。
以下のようなフォルダーができあがりますので、適宜ご利用ください。
binライブラリやライセンスマネージャーなど
doc使用説明書やjavadocなど
includeC/C++用のヘッダー(.h)ファイル
jar I2P.jar(Javaのラッパー)
libC/C++用のlibファイル
samples各種開発言語のサンプル
サンプルの実行前に参照設定などを行ってください。
無償評価版と共にダウンロードしたライセンスキーを bin/LicenseManager.exeを使って登録してください。
2.NuGetでインストールする場合
nuget.org から PdfTools.Imge2Pdf をインストールします。

  NuGetでのインストール手順

この場合は参照設定などの必要はありません。 評価用ライセンスは こちら から取得してください。
C#開発環境 C/C++開発環境
ライブラリ(評価版API)は無償でダウンロードできます。
ファイルをダウンロードしてから適当なフォルダーに解凍してください。
以下のようなフォルダーができあがりますので、適宜ご利用ください。
binライブラリやライセンスマネージャーなど
doc使用説明書やjavadocなど
includeC/C++用のヘッダー(.h)ファイル
jar I2P.jar(Javaのラッパー)
libC/C++用のlibファイル
samples各種開発言語のサンプル
サンプルの実行前に参照設定などを行ってください。
無償評価版と共にダウンロードしたライセンスキーを bin/LicenseManager.exeを使って登録してください。

画像をPDF/Aに変換(PDF規格を指定)

画像をPDF/A-1aに変換するサンプルです。
別の規格を指定することができます。

C# C/C++ ダウンロード
// Converter生成
pConverter = Img2PdfCreateObject();

// PDF規格を設定
Img2PdfSetCompliance(pConverter, eCompliance);

// 出力ファイルを生成
if (!Img2PdfCreate(pConverter, szOutPath, _T(""), _T(""), ePermNoEncryption))
{
    _tprintf(_T("出力ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 入力画像をPDFのページに変換
if (!Img2PdfCreatePageFromImage(pConverter, szInPath))
{
    _tprintf(_T("入力画像 %s をPDFのページとして生成できません。 %s (エラーコード: 0x%08x).\n"),
        szInPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 出力ファイルをクローズ
if (!Img2PdfClose(pConverter))
{
    _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}
C# C/C++ ダウンロード
// Converter生成
using (Img2Pdf converter = new Img2Pdf())
{
    // PDF規格を設定
    converter.Compliance = compliance;

    // 出力ファイルを生成
    if (!converter.Create(outPath, "", "", PDFPermission.ePermNoEncryption))
        throw new Exception(String.Format("出力ファイル {0} を生成できません。 {1} "+ 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));

    // 入力画像をPDFのページに変換
    if (!converter.CreatePageFromImage(inPath))
        throw new Exception(String.Format("入力画像 {0} をPDFのページとして生成できません。 " + 
            "{1} (エラーコード: 0x{2:x})", inPath, converter.ErrorMessage, converter.ErrorCode));

    // 出力ファイルをクローズ
    if (!converter.Close())
        throw new Exception(String.Format("出力ファイル {0} をクローズできません。 " + 
            "{1} (エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));
}

画像をPDF文書に変換し、メタデータを埋め込む

JPEG画像をPDF文書に変換し、XMPメタデータを追加します。
メタデータには、作成者やタイトルなどが記します。

C# C/C++ ダウンロード
// Converter生成
pConverter = Img2PdfCreateObject();

// 出力ファイルを生成
if (!Img2PdfCreate(pConverter, szOutPath, _T(""), _T(""), ePermNoEncryption))
{
    _tprintf(_T("出力ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// XMPメタデータを設定
Img2PdfSetMetadata(pConverter, szMetaFile);

// 入力画像をPDFのページに変換
if (!Img2PdfCreatePageFromImage(pConverter, szInPath))
{
    _tprintf(_T("入力画像 %s をPDFのページとして生成できません。 %s (エラーコード: 0x%08x).\n"),
        szInPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 出力ファイルをクローズ
if (!Img2PdfClose(pConverter))
{
    _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}
C# C/C++ ダウンロード
// Converter生成
using (Img2Pdf converter = new Img2Pdf())
{
    // 出力ファイルを生成
    if (!converter.Create(outPath, "", "", PDFPermission.ePermNoEncryption))
        throw new Exception(String.Format("出力ファイル {0} を生成できません。 {1} " +
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));

    // XMPメタデータを設定
    converter.SetMetadata(metaFile);

    // 入力画像をPDFのページに変換
    if (!converter.CreatePageFromImage(inPath))
        throw new Exception(String.Format("入力画像 {0} をPDFのページとして生成できません。 " +
            "{1} (エラーコード: 0x{2:x})", inPath, converter.ErrorMessage, converter.ErrorCode));

    // 出力ファイルをクローズ
    if (!converter.Close())
        throw new Exception(String.Format("出力ファイル {0} をクローズできません。 " +
            "{1} (エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));
}

画像をPDF文書に変換(圧縮手順指定)

画像をPDF文書に変換するサンプルです。
カラー画像やグレースケール画像の圧縮手順を指定します。非可逆圧縮の際は画像品質を指定できます。

C# C/C++ ダウンロード
// Converter生成
pConverter = Img2PdfCreateObject();

// 出力ファイルを生成
if (!Img2PdfCreate(pConverter, szOutPath, _T(""), _T(""), ePermNoEncryption))
{
    _tprintf(_T("出力ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 圧縮手順を設定
Img2PdfSetContinuousCompression(pConverter, eCompression);

// 画像品質を設定
Img2PdfSetImageQuality(pConverter, iQuality);

// 入力画像をPDFのページに変換
if (!Img2PdfCreatePageFromImage(pConverter, szInPath))
{
    _tprintf(_T("入力画像 %s をPDFのページとして生成できません。 %s (エラーコード: 0x%08x).\n"),
        szInPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 出力ファイルをクローズ
if (!Img2PdfClose(pConverter))
{
    _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}
C# C/C++ ダウンロード
// Converter生成
using (Img2Pdf converter = new Img2Pdf())
{
    // 出力ファイルを生成
    if (!converter.Create(outPath, "", "", PDFPermission.ePermNoEncryption))
        throw new Exception(String.Format("出力ファイル {0} を生成できません。 {1}" + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));

    // 圧縮手順を設定
    converter.ContinuousCompression = compression;

    // 画像品質を設定
    converter.ImageQuality = quality;

    // 入力画像をPDFのページに変換
    if (!converter.CreatePageFromImage(inPath))
        throw new Exception(String.Format("入力画像 {0} をPDFのページとして生成できません。 " +
            "{1} (エラーコード: 0x{2:x})", inPath, converter.ErrorMessage, converter.ErrorCode));

    // 出力ファイルをクローズ
    if (!converter.Close())
        throw new Exception(String.Format("出力ファイル {0} をクローズできません。 {1}" + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));
}

画像を暗号化されたPDF文書に変換

画像を暗号化されたPDF文書に変換するサンプルです。
PDF文書を不正にアクセスできないように(ユーザーまたはオーナー)パスワードで暗号化します。ユーザーパスワードは文書の開き方や印刷を制限し、オーナーパスワードは不正なアクセスを禁止します。

C# C/C++ ダウンロード
// Converter生成
pConverter = Img2PdfCreateObject();

// 出力ファイルを生成
if (!Img2PdfCreate(pConverter, szOutPath, szUserPW, szOwnerPW, ePermDigitalPrint | ePermPrint))
{
    _tprintf(_T("出力ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 入力画像をPDFのページに変換
if (!Img2PdfCreatePageFromImage(pConverter, szInPath))
{
    _tprintf(_T("入力画像 %s をPDFのページとして生成できません。 %s (エラーコード: 0x%08x).\n"),
        szInPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 出力ファイルをクローズ
if (!Img2PdfClose(pConverter))
{
    _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}
C# C/C++ ダウンロード
// Converter生成
using (Img2Pdf converter = new Img2Pdf())
{
    // 出力ファイルを生成
    if (!converter.Create(outPath, userPW, ownerPW, PDFPermission.ePermDigitalPrint | 
        PDFPermission.ePermPrint))
        throw new Exception(String.Format("出力ファイル {0} を生成できません。 {1} " + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));

    // 入力画像をPDFのページに変換
    if (!converter.CreatePageFromImage(inPath))
        throw new Exception(String.Format("入力画像 {0} をPDFのページとして生成できません。 " + 
            "{1} (エラーコード: 0x{2:x})", inPath, converter.ErrorMessage, converter.ErrorCode));

    // 出力ファイルをクローズ
    if (!converter.Close())
        throw new Exception(String.Format("出力ファイル {0} をクローズできません。 {1} " + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));
}

画像を文書情報を加えたPDF文書に変換

画像を文書情報(文書タイトル、作成者、作成アプリケーションなどの情報)が追加されたPDF文書に変換するサンプルです。

C# C/C++ ダウンロード
// Converter生成
pConverter = Img2PdfCreateObject();

// 出力ファイルを生成
if (!Img2PdfCreate(pConverter, szOutPath, _T(""), _T(""), ePermNoEncryption))
{
    _tprintf(_T("出力ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 文書情報ディクショナリを設定
Img2PdfSetInfoEntry(pConverter, _T("Title"), _T("Your Title"));
Img2PdfSetInfoEntry(pConverter, _T("Author"), _T("Your Author"));
Img2PdfSetInfoEntry(pConverter, _T("Creator"), _T("Your Creator"));
Img2PdfSetInfoEntry(pConverter, _T("Subject"), _T("Your Subject"));
Img2PdfSetInfoEntry(pConverter, _T("Producer"), _T("Your Producer"));

// 入力画像をPDFのページに変換
if (!Img2PdfCreatePageFromImage(pConverter, szInPath))
{
    _tprintf(_T("入力画像 %s をPDFのページとして生成できません。 %s (エラーコード: 0x%08x).\n"),
        szInPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 出力ファイルをクローズ
if (!Img2PdfClose(pConverter))
{
    _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}
C# C/C++ ダウンロード
// Converter生成
using (Img2Pdf converter = new Img2Pdf())
{
    // 出力ファイルを生成
    if (!converter.Create(outPath, "", "", PDFPermission.ePermNoEncryption))
        throw new Exception(String.Format("出力ファイル {0} を生成できません。 {1}" + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));

    // 文書情報ディクショナリを設定
    converter.SetInfoEntry("Title", "Your Title");
    converter.SetInfoEntry("Author", "Your Author");
    converter.SetInfoEntry("Creator", "Your Creator");
    converter.SetInfoEntry("Subject", "Your Subject");
    converter.SetInfoEntry("Producer", "Your Producer");

    // 入力画像をPDFのページに変換
    if (!converter.CreatePageFromImage(inPath))
        throw new Exception(String.Format("入力画像 {0} をPDFのページとして生成できません。 {1}" + 
            "(エラーコード: 0x{2:x})", inPath, converter.ErrorMessage, converter.ErrorCode));

    // 出力ファイルをクローズ
    if (!converter.Close())
        throw new Exception(String.Format("出力ファイル {0} をクローズできません。 {1} " + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));
}

画像をリニアライズされたPDF文書に変換

画像をリニアライズ(Webで素早く表示できるように最適化)されたPDF文書に変換するサンプルです。
リニアライズは2ページ以上のPDF文書で有効です。

C# C/C++ ダウンロード
// Converter生成
pConverter = Img2PdfCreateObject();

// リニアライズ設定
Img2PdfSetLinearize(pConverter, true);

// 出力ファイルを生成
if (!Img2PdfCreate(pConverter, szOutPath, _T(""), _T(""), ePermNoEncryption))
{
    _tprintf(_T("出力ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 入力画像をPDFのページに変換
if (!Img2PdfCreatePageFromImage(pConverter, szInPath))
{
    _tprintf(_T("入力画像 %s をPDFのページとして生成できません。 %s (エラーコード: 0x%08x).\n"),
        szInPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 出力ファイルをクローズ
if (!Img2PdfClose(pConverter))
{
    _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}
C# C/C++ ダウンロード
// Converter生成
using (Img2Pdf converter = new Img2Pdf())
{
    // リニアライズ設定
    converter.Linearize = true;

    // 出力ファイルを生成
    if (!converter.Create(outPath, "", "", PDFPermission.ePermNoEncryption))
        throw new Exception(String.Format("出力ファイル {0} を生成できません {1} " + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));

    // 入力画像をPDFのページに変換
    if (!converter.CreatePageFromImage(inPath))
        throw new Exception(String.Format("入力画像 {0} をPDFのページとして生成できません。 {1}" + 
            "(エラーコード: 0x{2:x})", inPath, converter.ErrorMessage, converter.ErrorCode));

    // 出力ファイルをクローズ
    if (!converter.Close())
        throw new Exception(String.Format("出力ファイル {0} をクローズできません。 {1} " + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));
}

指定して画像を指定ページサイズのPDF文書に変換

画像を指定されたページサイズのPDF文書に変換するサンプルです。
PDF文書の各ページサイズはPageディクショナリに記載されます。

C# C/C++ ダウンロード
// Converter生成
pConverter = Img2PdfCreateObject();

// PDF文書のページサイズ設定
Img2PdfSetPageSize(pConverter, fWidth, fHeight);

// 出力ファイルを生成
if (!Img2PdfCreate(pConverter, szOutPath, _T(""), _T(""), ePermNoEncryption))
{
    _tprintf(_T("出力ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 入力画像をPDFのページに変換
if (!Img2PdfCreatePageFromImage(pConverter, szInPath))
{
    _tprintf(_T("入力画像 %s をPDFのページとして生成できません。 %s (エラーコード: 0x%08x).\n"),
        szInPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}

// 出力ファイルをクローズ
if (!Img2PdfClose(pConverter))
{
    _tprintf(_T("出力ファイル %s をクローズできません。 %s (ErrorCode: 0x%08x).\n"),
        szOutPath, Img2PdfGetErrorMessage(pConverter), Img2PdfGetErrorCode(pConverter));
    iReturnValue = 1;
    goto cleanup;
}
C# C/C++ ダウンロード
// Converter生成
using (Img2Pdf converter = new Img2Pdf())
{
    // PDF文書のページサイズ設定
    converter.SetPageSize(width, height);

    // 出力ファイルを生成
    if (!converter.Create(outPath, "", "", PDFPermission.ePermNoEncryption))
        throw new Exception(String.Format("出力ファイル {0} を生成できません。 {1} " + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));

    // 入力画像をPDFのページに変換
    if (!converter.CreatePageFromImage(inPath))
        throw new Exception(String.Format("入力画像 {0} をPDFのページとして生成できません。 " + 
            "{1} (エラーコード: 0x{2:x})", inPath, converter.ErrorMessage, converter.ErrorCode));

    // 出力ファイルをクローズ
    if (!converter.Close())
        throw new Exception(String.Format("出力ファイル {0} をクローズできません。 {1} " + 
            "(エラーコード: 0x{2:x})", outPath, converter.ErrorMessage, converter.ErrorCode));
}

ご質問、お問い合わせ

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

PDF-Tools サンプル

PDF Toolsとは

PDF/Aとは