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

Image to PDF Converter(画像をPDFに変換) C++サンプル

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

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

機能概要はこちらです。
無償評価版(リンク先は英語)はこちらです。 ダウンロード手順
Image to PDF Converter ソフト 購入(価格)

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

 ライブラリ(評価版API)は無償でダウンロード(試用)できますので、PDF Image to PDF Converter ダウンロード手順を参照してダウンロードください。
 ファイルをダウンロードしてから、インストールもしくは適当なフォルダーに解凍します。以下のようなフォルダーができあがりますので、適宜ご利用ください。
binライブラリやライセンスマネージャーなど
doc使用説明書やjavadocなど
includeC/C++用のヘッダー(.h)ファイル
jarI2PA.jar(Javaのラッパー)
libC/C++用のlibファイル
samples各種開発言語のサンプル
サンプルの実行前に、bin/Img2PdfAPI.dllをサンプル実行イメージと同じフォルダーにコピーしてください。 COMインターフェースで利用する場合は、bin/Img2PdfAPI.dllをregsvr32.exeを使って登録してください。なお、64ビット版Windowsの場合は、WOW64/regsvr32.exeを使って登録してください。

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

C++のサンプルと解説

#include <stdio.h>
#include "img2pdfapi_c.h"

int main(int argc, char* argv[])
{

    /* 引数:
     * argv[1] : Input image file
     * argv[2] : Output PDF file
     * argv[3] : Optional: Compliance {1.4, 1.5, 1.6, 1.6 1b, 1a, 2b, 2u, 2a}
     * argv[4] : Optional: Output Intent (required for PDF/A)
     *
     * Example:
     * img2pdfsample in.jpg out.pdf 1b "%systemroot%\system32\spool\drivers\color\sRGB Color Space Profile.icm"
     */

    HImg2Pdf pDocument;
    int result;

    // 引数チェック
    if(argc < 3){
        printf("Usage        img2pdfsample input output [compliance] [output intent]\n");
        printf("compliance   4,5,6,7: PDF 1.{4,5,6,7}, a,b: PDF/A-1{a,b}, A,B,U: PDF/A-2{A,B,U}\n");
        printf("output int.  color profile including path\n");
        printf("example      img2pdfsample in.jpg o.pdf b \"path\\sRGB Color Space Profile.icm\"\n");
        return 3;
    } 

    Img2PdfInitialize();

    // ライセンスキー チェック
    if(!Img2PdfGetLicenseIsValid()){
        printf("No valid license found.\n");
        return 10;
    }

    // インスタンス生成
    pDocument = Img2PdfCreateObject();

    // 準拠レベルを設定 (最初に設定しなければなりません。)
    if(argc > 3){
        switch(argv[3][0]){
            case '4': Img2PdfSetCompliance(pDocument, ePDF14); break;
            case '5': Img2PdfSetCompliance(pDocument, ePDF15); break;
            case '6': Img2PdfSetCompliance(pDocument, ePDF16); break;
            case '7': Img2PdfSetCompliance(pDocument, ePDF17); break;
            case 'a': Img2PdfSetCompliance(pDocument, ePDFA1a); break;
            case 'b': Img2PdfSetCompliance(pDocument, ePDFA1b); break;
            case 'A': Img2PdfSetCompliance(pDocument, ePDFA2a); break;
            case 'B': Img2PdfSetCompliance(pDocument, ePDFA2b); break;
            case 'U': Img2PdfSetCompliance(pDocument, ePDFA2u); break;
        }
    }

    // 文書(画像)を開く
    if(!Img2PdfCreateA(pDocument, argv[2], 0, 0, -1)){
        printf("Error creating PDF file %s.\n", argv[2]);
        printf("Error 0x%X\n", Img2PdfGetErrorCode(pDocument));
        return 1;
    }

    // 文書の属性を設定
    Img2PdfSetInfoEntryA(pDocument, "Author", "William Shakespeare");
    
    // 出力インテント設定
    if(argc > 4){   
        // ファイルが存在するか
        FILE *stream;
        if(fopen_s(&stream, argv[4], "r" ) != 0 )
            printf("Warning: Cannot read output intent file %s.\n", argv[4]);
        else{
            fclose(stream);
            Img2PdfSetOutputIntentA(pDocument, argv[4]); 
        }
    }

    // 代替テキストを設定
    if(Img2PdfGetCompliance(pDocument) == ePDFA1a){
        /* Note that only for PDF/A-1a an alternate image description is required.
         * (default: "Imported Image", default Language: "US-EN")
         */

        Img2PdfSetAltA(pDocument, "This is an alternate text.");
        /* Use the corresponding abbreviation for languages
         * US-EN = US-English
         * DE    = German
         * FR    = French
         * etc.
         */
        Img2PdfSetLangA(pDocument, "US-EN");
    }

    // 出力ファイルを生成
    if (!Img2PdfCreatePageFromImageA(pDocument, argv[1]))
    {
        printf("Error reading image file %s.\n", argv[1]);
        return 2;
    }

    // ファイルを閉じ、インスタンスを開放する
    result = Img2PdfClose(pDocument);

    Img2PdfDestroyObject(pDocument);
    Img2PdfUnInitialize();

    return 0;
}

ご質問、お問い合わせ

 メールで 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
株)トラスト・ソフトウェア・システム
暗号化・電子署名・タイムスタンプ ライブラリ作成します。
お問い合わせください。