libpxg900.so 仕様書

Copyright (C) SEIKO EPSON CORPORATION 2004.



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


１ 概要

libpxg900.soは、BGRデータを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
                                    "B5"    :B5  182x257 mm
                                    "A5"    :A5 148x210 mm
                                    "A6"    :A6  105x148 mm
                                    "PC"    :ハガキ 100x148 mm
                                    "DPC"   :往復ハガキ 200x148 mm
                                    "L"     :L判 89x127 mm
                                    "LL"    :L判(横) 127x89 mm
                                    "2L"    :2L判 127x178 mm
                                    "INDEX8":六切 203 x 254 mm
                                    "NC91"  :名刺 55 x 91 mm
                                    "NC"    :名刺 89 x 55 mm
                                    "CARD"  :カード 54 x 86 mm
                                    "4X6"   :4 x 6判 100x152 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 1/2 x11 in
                                    "LGL"   :Legal  8 1/2x14 in
          char* format;         印刷フォーマット
                                    "MONO"  :モノクロ印刷
                                    "COLOR" :カラー印刷
          char* resol;          入力解像度
                                    "360"   :360dpi
                                    "720"   :720dpi
          char* high_speed;     双方向印刷
                                    "ON"    :双方向
                                    "OFF"   :単方向
          char* bin_id;         給紙方法
                                    "AUTO"   :オートシートフィーダ
                                    "T4AUTO" :オートシートフィーダ(4辺縁無し)
                                    "ROLL"   :ロール紙
                                    "TROLL"  :ロール紙(左右余白無し)
                                    "MANUAL" :手差し
                                    "TMANUAL":手差し(４辺縁無し)
          char* media_type;     メディア種類
                                    "PLAIN"   	     	:普通紙
                                    "ESF"     	     	:EPSONスーパーファイン専用紙
                                    "ERC"     		:EPSON写真用紙
                                    "EPM" 		:EPSONフォトマット紙
                                    "ADDRESS"           :ハガキ宛名面
                                    "SFPC"              :EPSONスーパーファイン専用ハガキ
                                    "IJPC"    		:官製ハガキ(インクジェット紙)
                                    "EPS"     		:EPSONフォトシール                               
                                    "EDPM" 		:EPSON両面マット紙<再生紙>
                                    "P_BOARD"           :EPSONフォトスタンド
                               				    
          char* qlevel;         品質レベル
                                    "DRAFT"             :ドラフト印刷
                                    "STD360"            :スタンダード360印刷
                                    "FINE720"           :ファイン720印刷
				    "SFINE720"          :スーパーファイン720印刷
                                    "PHOTO1440"         :フォト1440印刷
                                    "PHOTO2880"         :フォト2880印刷
                                    "SPHOTO1440"        :スーパーフォト1440印刷
                                    "SPHOTO2880"        :スーパーフォト2880印刷
          POINT margin;         マージン
                                    x = 上端マージン[0 - 下端最大値](pixel)
                                    y = 左端マージン[0 - 右端最大値](pixel)
          POINT paper_size;     用紙サイズ
                                    x = 用紙の横幅(pixel)
                                    y = 用紙の縦幅(pixel)
          POINT paper_area;     印字領域
                                    x = 印字可能領域の横幅(pixel)
                                    y = 印字可能領域の縦幅(pixel)
          char* mw_type;        マイクロウィーブ
                                    "ON"    :マイクロウィーブON
                                    "OFF"   :マイクロウィーブOFF

          char* clear_ink;      グロスオプティマイザ
                                    "ON"
                                    "OFF"
                                    "AUTO"
                                    "FULL"

        } 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;     色補正方法
                                    "AUTO"  :自動調整
                                    "PHOTO" :自然な色合い
                                    "GRAPH" :鮮やかな色合い
                                    "NONE"  :色補正無し
          char* halftone_type;  ハーフトーン種類
                                    "ED"    :高画質ハーフトーン
          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 & libprt_out_at関数

RGBデータをプリンターコードに変換する
もし、色補正方法に"AUTO"を設定した場合は、libprt_outではなくlibprt_out_atを使用する。libprt_out_atもAPI仕様は同じ。

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

    戻り値 : エラーコード

    構造体 : 
        typedef struct _LIBPRT_BAND_STRUCT
        {
          long width_pixel;             ラスターのピクセル数
          long width_bytes;             ラスターのバイト数
          long line_number;             ラスター数
          unsigned char* byte_data;     ラスターイメージ
          LP_LIBPRT_ATBMP_BAND lp_atbmp_band; 色補正方法に"AUTO"を設定した場合は、属性情報を
                                              渡し、そうでなければNULLを渡す
        } LIBPRT_BAND, *LP_LIBPRT_BAND;

        typedef struct _LIBPRT_ATBMP_BAND_STRUCT
        {
          long width_bytes;                   属性ビットマップのバイト数
          unsigned char* byte_data;           属性ビットマップ
        } LIBPRT_ATBMP_BAND, *LP_LIBPRT_ATBMP_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]
