libpm3300c.so 仕様書

目次
１　概要
２　API関数
    ２.１ libprt_init関数
    ２.２ libprt_page_init関数
    ２.３ libprt_out関数
    ２.４ libprt_page_end関数
    ２.５ libprt_end関数
３ エラーコード


１ 概要

libpm3300c.soは、RGBデータをESC/Pデータに変換するライブラリです。
ユーザーは、本ライブラリを利用したコードを書くことができます。



２ API関数

２.１ libprt_init関数

libraryの初期化を行う


int
libprt_init (
        HANDLE*,                library内部で使用するハンドルへのポインタ
        LP_LIBPRT_INIT          libraryの初期化構造体
        );

    戻り値 : エラーコード

    構造体 :
        typedef struct _LIBPRT_INIT_STRUCT
        {
          FILE* output;         出力先へのポインタ
          char* paper;          用紙
                                    "A4"    :A4  210x297 mm
                                    "A5"    :A5 148x210 mm
                                    "A6"    :A6  105x148 mm
                                    "A3"    :A3  297x420 mm
                                    "A3+"   :A3ノビ  329x483 mm
                                    "B5"    :B5  182x257 mm
                                    "B4"    :B4  257x364 mm
                                    "PC"    :ハガキ 100x148 mm
                                    "DPC"   :往復ハガキ 200x148 mm
                                    "PHOTO" :フォトカード 102x152 mm
                                    "ENVC3" :長形3号封筒 120x235 mm
                                    "ENVC4" :長形4号封筒 90x205 mm
                                    "ENVY1" :洋形1号封筒 120x176 mm
                                    "ENVY2" :洋形2号封筒 114x162 mm
                                    "ENVY3" :洋形3号封筒 98x148 mm
                                    "ENVY4" :洋形4号封筒 105x235 mm
                                    "LT"    :Letter  8.5x11 in
                                    "LGL"   :Legal  8.5x14 in
                                    "4X6"   :4x6版 100x152 mm
                                    "L"     :L版 89x127 mm
                                    "NC"    :名刺 89x55 mm

          char* format;         印刷フォーマット
                                    "MONO"  :モノクロ印刷
                                    "COLOR" :カラー印刷
          char* resol;          入力解像度
                                    "120"   :120dpi
                                    "360"   :360dpi
                                    "720"   :720dpi
          char* high_speed;     双方向印刷
                                    "ON"    :双方向
                                    "OFF"   :単方向
          char* bin_id;         給紙方法
                                    "AUTO"  :オートシートフィーダ
                                    "ROLL"  :ロール紙
                                    "TROLL" :ロール紙(左右余白無し)
          char* media_type;     メディア種類
                                    "PLAIN"  :普通紙
                                    "SFINE"  :スーパーファイン専用紙
                                    "GPAPER" :フォトプリント紙
                                    "GFILM"  :専用光沢フィルム
                                    "OHP"    :専用OHPシート
                                    "IRON"   :アイロンプリントペーパー
                                    "BLFILM" :バックライトフィルム
          char* qlevel;         品質レベル
                                    "DRAFT"     :ドラフト印刷
                                    "STD"       :スタンダード
                                    "FINE"      :ファイン
                                    "SFINE"     :スーパーファイン
                                    "PHOTO"     :フォト
                                    "SPHOTO"    :スーパーフォト
          POINT margin;         マージン
                                    x = 上端マージン[0 - 下端最大値](pixel)
                                    y = 左端マージン[0 - 右端最大値](pixel)
          POINT paper_size;     用紙サイズ
                                    x = 用紙の横幅(pixel)
                                    y = 用紙の縦幅(pixel)
          POINT paper_area;     印字領域
                                    x = 印字可能領域の横幅(pixel)
                                    y = 印字可能領域の縦幅(pixel)
          void* reserved;       reserved
                                    未使用
        } LIBPRT_INIT, *LP_LIBPRT_INIT;



２.２ libprt_page_init関数

ページ印刷の初期化を行う


int
libprt_page_init (
        HANDLE,                 library内部で使用するハンドル
        LP_LIBPRT_PAGE          ページ印刷初期化構造体
        );

    戻り値 : エラーコード

    構造体 : 
        typedef struct _LIBPRT_PAGE_STRUCT
        {
          char* color_mode;     色補正方法
                                    "PHOTO" :自然な色合い
                                    "GRAPH" :鮮やかな色合い
                                    "NONE"  :色補正無し
          char* halftone_type;  ハーフトーン種類
                                    "ED"    :高画質ハーフトーン
                                    "DB"    :高速ハーフトーン
          int brightness;       明度         = [-50 - 50]
          int contrast;         コントラスト = [-50 - 50]
          int saturation;       彩度         = [-50 - 50]
          int r_strength;       赤色補正     = [-50 - 50]
          int g_strength;       緑色補正     = [-50 - 50]
          int b_strength;       青色補正     = [-50 - 50]
          void* reserved;       reserved
                                    未使用
        } LIBPRT_PAGE, *LP_LIBPRT_PAGE;


２.３ libprt_out関数

RGBデータをプリンターコードに変換する


int
libprt_out (
        HANDLE,                 library内部で使用するハンドル
        LP_LIBPRT_BAND          印刷データ構造体
        );

    戻り値 : エラーコード

    構造体 : 
        typedef struct _LIBPRT_BAND_STRUCT
        {
          long width_pixel;             ラスターのピクセル数
          long width_bytes;             ラスターのバイト数
          unsigned char* byte_data;     ラスターイメージ
          void* reserved;               reserved
                                            未使用
        } LIBPRT_BAND, *LP_LIBPRT_BAND;


２.４ libprt_page_end関数

ページ印刷の終了、及び中断の処理を行う


int
libprt_page_end (
        HANDLE,                 library内部で使用するハンドル
        int                     cancel flag
                                    何らかの理由で処理を中断する時にTUREをセットする。
                                    通常はFALSEをセットする。
        );

    戻り値 : エラーコード


２.５ libprt_end関数

libraryの終了処理を行う


int
libprt_end (
        HANDLE                  library内部で使用するハンドル
        );

    戻り値 : エラーコード


３ エラーコード

関数の返す値の意味を以下に示す。

        0   正常終了
        1   Memoryの確保に失敗
        2   誤ったパラメータが入力された
        3   関数が誤った順序で呼ばれた      
        4   原因を特定できないエラーが発生した


[EOF]