libpxv700.so 仕様書

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


１ 概要

libpxv700.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
                                    "A5"    :A5 148x210 mm
                                    "A6"    :A6  105x148 mm
                                    "B5"    :B5  182x257 mm
                                    "PC"    :ハガキ 100x148 mm
                                    "DPC"   :往復ハガキ 200x148 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
                                    "L"     :L版 89x127 mm
                                    "2L"    :2L版 127 x 178 mm
          char* format;         印刷フォーマット
                                    "MONO"  :モノクロ印刷
                                    "COLOR" :カラー印刷
          char* resol;          入力解像度
                                    "180"   :180dpi
                                    "360"   :360dpi
                                    "720"   :720dpi
          char* high_speed;     双方向印刷
                                    "ON"    :双方向
                                    "OFF"   :単方向
          char* bin_id;         給紙方法
                                    "AUTO"   :オートシートフィーダ
                                    "T4AUTO" :オートシートフィーダ(4辺縁無し)
          char* media_type;     メディア種類
                                    "PLAIN"  :普通紙
                                    "RCPC"   :官製ハガキ(再生紙)
                                    "ESF"    :EPSONスーパーファイン紙
                                    "PMMATT" :PMマット紙
                                    "IJPC"   :官製ハガキ (インクジェット紙)
                                    "ARCMATT":MCマット紙
                                    "PHOTOW" :MC光沢紙
				    "PSGLOS" :PM/MC写真用紙<半光沢>
          char* qlevel;         品質レベル
                                    "DRAFT"  :ドラフト印刷
                                    "STD"    :スタンダード
                                    "FINE"   :ファイン
                                    "SFINE"  :スーパーファイン
                                    "PHOTO"  :フォト
				    "SILENT" :スタンダード(静音給紙)
          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* inkset;         インクセット
                                    "DEFAULT"  :機種指定のデフォルト値
	      char* auto_cut;       オートカット
                                    "NONE"   :カット無し
        } 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]
