epos-print SDK for Android 概 要 サンプルプログラム プログラミングガイド API リファレンス コマンドの 送 受 信 付 録 M00049010 Rev.K
ご 注 意 本 書 の 内 容 の 一 部 または 全 部 を 無 断 で 転 載 複 写 複 製 改 ざんすることは 固 くお 断 りします 本 書 の 内 容 については 予 告 なしに 変 更 することがあります 最 新 の 情 報 はお 問 い 合 わせください 本 書 の 内 容 については 万 全 を 期 して 作 成 いたしましたが 万 一 ご 不 審 な 点 や 誤 り 記 載 もれなど お 気 づきの 点 がありましたらご 連 絡 ください 運 用 した 結 果 の 影 響 については 上 項 にかかわらず 責 任 を 負 いかねますのでご 了 承 ください 本 製 品 がお 客 様 により 不 適 切 に 使 用 されたり 本 書 の 内 容 に 従 わずに 取 り 扱 われたり またはエプソンおよびエ プソン 指 定 の 者 以 外 の 第 三 者 により 修 理 変 更 されたことなどに 起 因 して 生 じた 損 害 などにつきましては 責 任 を 負 いかねますのでご 了 承 ください エプソン 純 正 品 およびエプソン 品 質 認 定 品 以 外 のオプションまたは 消 耗 品 を 装 着 してトラブルが 発 生 した 場 合 に は 責 任 を 負 いかねますのでご 了 承 ください 商 標 について EPSON EXCEED YOUR VISION および ESC/POS はセイコーエプソン 株 式 会 社 の 登 録 商 標 です Android TM は Google Inc. の 商 標 または 登 録 商 標 です Java TM は Oracle Corporation 及 びその 子 会 社 関 連 会 社 の 米 国 及 びその 他 の 国 における 登 録 商 標 です Wi-Fi は Wi-Fi Alliance の 登 録 商 標 です Bluetooth は Bluetooth SIG,Inc の 登 録 商 標 です Eclipse は Eclipse Foundation, Inc. の 商 標 または 登 録 商 標 です QR コードは 株 式 会 社 デンソーウェーブの 登 録 商 標 です その 他 の 製 品 名 および 会 社 名 は 各 社 の 商 標 または 登 録 商 標 です ESC/POS コマンドシステム EPSON は 独 自 の POS プリンターコマンドシステム ESC/POS により 業 界 のイニシアチブをとってきました ESC/POS は 特 許 取 得 済 みのものを 含 む 数 多 くの 独 自 のコマンドを 持 ち 高 い 拡 張 性 で 多 才 な POS システムの 構 築 を 実 現 します ほとんどの EPSON POS プリンターとディスプレイに 互 換 性 を 持 つ 他 この 独 自 の 制 御 システムに はフレキシビリティーもあるため 将 来 アップグレードが 行 いやすくなります その 機 能 と 利 便 性 は 世 界 中 で 評 価 されています Seiko Epson Corporation 2012-2014. All rights reserved.
安 全 のために 記 号 の 意 味 本 書 では 以 下 の 記 号 が 使 われています それぞれの 記 号 の 意 味 をよく 理 解 してから 製 品 を 取 り 扱 ってください ご 使 用 上 必 ずお 守 りいただきたいことを 記 載 しています この 表 示 を 無 視 して 誤 った 取 り 扱 い をすると 製 品 の 故 障 や 動 作 不 良 の 原 因 になる 可 能 性 があります 補 足 や 知 っておいていただきたいことを 記 載 しています 使 用 制 限 本 製 品 を 航 空 機 列 車 船 舶 自 動 車 などの 運 行 に 直 接 関 わる 装 置 防 災 防 犯 装 置 各 種 安 全 装 置 など 機 能 精 度 な どにおいて 高 い 信 頼 性 安 全 性 が 必 要 とされる 用 途 に 使 用 される 場 合 は これらのシステム 全 体 の 信 頼 性 および 安 全 維 持 のためにフェールセーフ 設 計 や 冗 長 設 計 の 措 置 を 講 じるなど システム 全 体 の 安 全 設 計 にご 配 慮 いただいた 上 で 当 社 製 品 をご 使 用 いただくようお 願 いいたします 本 製 品 は 航 空 宇 宙 機 器 幹 線 通 信 機 器 原 子 力 制 御 機 器 医 療 機 器 など きわめて 高 い 信 頼 性 安 全 性 が 必 要 とさ れる 用 途 への 使 用 を 意 図 しておりませんので これらの 用 途 には 本 製 品 の 適 合 性 をお 客 様 において 十 分 ご 確 認 の 上 ご 判 断 ください 3
本 書 について 本 書 の 目 的 本 書 は epos-print SDK を 使 った 印 刷 システムの 構 築 設 計 またはプリンターアプリケーションの 開 発 設 計 に 必 要 なすべての 情 報 を 開 発 技 術 者 に 提 供 することを その 目 的 としています 本 書 の 構 成 本 書 は 次 のように 構 成 されています 第 1 章 概 要 第 2 章 サンプルプログラム 第 3 章 プログラミングガイド 第 4 章 API リファレンス 第 5 章 コマンドの 送 受 信 付 録 プリンターごとのサポート API 一 覧 プリンター 別 サポート 情 報 注 意 事 項 オープンソースソフトウェアのライセンス 契 約 4
もくじ 安 全 のために...3 記 号 の 意 味...3 使 用 制 限...3 本 書 について...4 本 書 の 目 的...4 本 書 の 構 成...4 もくじ...5 概 要... 7 epos-print SDK の 概 要...7 特 徴...7 機 能...8 動 作 環 境...9 Android バージョン...9 Android デバイス...9 プリンター...9 開 発 環 境...9 提 供 物... 10 パッケージ...10 マニュアル...10 サンプルプログラム...10 ダウンロード...10 制 限 事 項... 11 サンプルプログラム...13 概 要... 13 使 用 環 境... 14 開 発 環 境...14 プリンター...14 ターゲットデバイス...14 環 境 構 築... 15 使 用 方 法... 16 プリンターを 検 索 して 印 刷 する...16 プリンターの 機 種 名 を 取 得 する...23 NFC/ QR コードを 使 ってプリンターを 選 択 する...24 QR コードを 印 刷 する...24 プログラミングガイド... 25 epos-print SDK for Android の 組 み 込 み 方 法...25 epos-print SDK...27 印 刷 モードについて...27 プログラミングフロー...27 事 前 準 備 (USB 接 続 )...28 プリンターの 選 択...29 印 刷 ドキュメントの 作 成...32 印 刷 ドキュメントの 送 信...34 プリンターの 状 態 を 確 認 してから 印 刷 する...36 プリンターステータスを 自 動 で 取 得...38 リスナーインターフェイス 一 覧...39 例 外 処 理...41 処 理 方 法...41 エラーステータスと 対 処 方 法...43 プリンターステータスと 対 処 方 法...45 バッテリーステータス...46 API リファレンス... 47 epos-print API...47 Builder クラス ( コンストラクター )...50 Builder クラス ( コンストラクター ) ( 旧 フォーマット )...52 clearcommandbuffer...54 addtextalign...55 addtextlinespace...56 addtextrotate...57 addtext...58 addtextlang...59 addtextfont...60 addtextsmooth...61 addtextdouble...62 addtextsize...63 addtextstyle...64 addtextposition...66 addfeedunit...67 addfeedline...68 addimage...69 addimage ( 旧 フォーマット )...72 addimage ( 旧 フォーマット )...75 addlogo...77 addbarcode...78 addsymbol...83 5
addpagebegin... 88 addpageend... 89 addpagearea... 90 addpagedirection... 91 addpageposition... 92 addpageline... 93 addpagerectangle... 94 addcut... 95 addpulse... 96 addsound... 97 addsound ( 旧 フォーマット )... 99 addfeedposition... 101 addlayout... 102 addcommand... 104 Print クラス ( コンストラクター )... 105 Print クラス ( コンストラクター ) ( 旧 フォーマット )... 106 openprinter... 107 openprinter( 旧 フォーマット )... 109 openprinter( 旧 フォーマット )... 111 closeprinter... 113 senddata... 114 senddata ( 旧 フォーマット )... 116 setstatuschangeeventcallback... 118 setonlineeventcallback... 119 setofflineeventcallback... 120 setpoweroffeventcallback... 121 setcoverokeventcallback... 122 setcoveropeneventcallback... 123 setpaperokeventcallback... 124 setpapernearendeventcallback... 125 setpaperendeventcallback... 126 setdrawerclosedeventcallback... 127 setdraweropeneventcallback... 128 setbatteryloweventcallback... 129 setbatteryokeventcallback... 130 setbatterystatuschangeeventcallback... 131 geterrorstatus... 133 getprinterstatus... 134 getbatterystatus... 135 プリンター 検 索 API...136 start... 137 stop... 138 getdeviceinfolist... 139 getresult ( 旧 フォーマット )... 141 getstatus... 142 プリンター 簡 単 選 択 API...143 parsenfc... 144 parseqr... 144 createqr... 145 devicetype... 146 printername... 146 macaddress... 146 ログ 設 定 API...147 setlogsettings... 147 コマンドの 送 受 信... 151 プログラミング... 151 プログラミングフロー...151 デバイスポートのオープン...152 データの 送 信...152 データの 受 信...153 デバイスポートのクローズ...153 例 外 処 理...154 コマンド 送 受 信 API リファレンス... 155 open...155 open( 旧 フォーマット )...157 close...158 write...159 read...160 付 録... 161 プリンターごとのサポート API 一 覧... 161 プリンター 別 サポート 情 報... 162 TM-T88V...162 TM-T70...163 TM-T70II...164 TM-T90II...165 TM-T20II...166 TM-P60II...167 TM-P20...169 注 意 事 項... 171 一 台 のプリンターを 複 数 のモバイル 端 末 から 使 用 する 場 合...171 オープンソースソフトウェアの ライセンス 契 約... 173 6
第 1 章 概 要 概 要 本 章 では epos-print SDK for Android の 特 徴 および 仕 様 について しています epos-print SDKの 概 要 1 epos-print SDK for Android は EPSON TM プリンターに 印 刷 するための Android アプリケーションを 開 発 する 開 発 者 向 け SDK です epos-print SDK で 提 供 する API を 使 用 してアプリケーションを 開 発 します epos-print SDK には ios アプリケーション 向 けの epos-print SDK for ios も 用 意 されています TM プリンターにコマンドを 送 受 信 するための API も 用 意 されています コマンド 送 受 信 API は epos-print API の Print クラスと 同 時 に 使 用 できません コマンド 送 受 信 API の 詳 細 は 151 ページ コマンドの 送 受 信 を 参 照 してください 特 徴 Android アプリケーションから TM プリンターに 印 刷 できます Android アプリケーションから TM プリンターのステータスを 取 得 できます 7
機 能 epos-print API 印 字 の 設 定 ( 位 置 揃 え / 改 行 量 / 倒 立 印 字 / ページモード ) 文 字 データの 設 定 ( 言 語 / フォント ( デバイスフォント )/ 倍 角 / 倍 率 / スムージング / 印 字 位 置 ) 文 字 書 式 の 設 定 ( 白 黒 反 転 / アンダーライン / 太 字 ) 紙 送 り 設 定 ( ドット 単 位 / 行 単 位 ) 画 像 の 印 字 ( ラスターイメージ /NV グラフィック ) バーコードの 印 字 ( 機 種 ごと 印 字 できるバーコードは 162 ページ プリンター 別 サポート 情 報 を 参 照 してください ) 2 次 元 シンボルの 印 字 ( 機 種 ごと 印 字 できる 2 次 元 シンボルは 162 ページ プリンター 別 サポート 情 報 を 参 照 してください ) ドロアーキック 機 能 ブザー 機 能 用 紙 レイアウトの 設 定 ラベル / ブラックマーク 紙 の 紙 送 り 設 定 ESC/POS コマンドの 送 信 プリンターからの 応 答 を 取 得 ( 印 字 結 果 / プリンターの 状 態 / バッテリーの 状 態 ) プリンター 検 索 API プリンターの 検 索 プリンター 簡 単 選 択 API プリンターの 簡 単 選 択 (NFC と QR コードを 使 ってプリンターを 簡 単 選 択 できます ) ログ 設 定 API ログ 出 力 の 設 定 (Android 端 末 のストレージや TCP 接 続 できるサーバーに 出 力 できます ) Android 端 末 に 出 力 したログは USB 接 続 で 他 のコンピューターにも 保 存 できます 8
第 1 章 概 要 動 作 環 境 Android バージョン Android Version 2.3.3 ~ 2.3.7 Android Version 3.1 ~ 3.2.2 Android Version 4.0 ~ 4.4 USB のサポートは Android Version 3.1 以 上 です 最 新 のバージョンは README ファイルを 参 照 してください 1 Android デバイス ARMv5TE 対 応 デバイス プリンター TM プリンター インターフェイス 有 線 LAN 無 線 LAN Bluetooth USB TM-T88V TM-T70 - TM-T70II TM-T90II - TM-T20II - - TM-P60II - TM-P20 - TM プリンター 設 定 で Busy となる 条 件 は 受 信 バッファーフルのみに 設 定 してください 設 定 についてはプリンターの 詳 細 取 扱 書 を 参 照 してください 開 発 環 境 Android アプリケーションを 開 発 するには 以 下 が 必 要 です Android SDK r15 以 降 Java Development Kit 6 以 降 9
提 供 物 パッケージ epos-print.jar ファイル 名 API を Java プログラムから 利 用 するための jar 形 式 ファイルにアー カイブされたコンパイル 済 み Java のクラスファイルです eposeasyselect.jar 簡 単 にプリンターを 選 択 するための Java のクラスファイルです libeposprint.so 機 能 実 行 用 ライブラリーです (ARMv5TE に 対 応 ) epos-print_sample_android.zip README.jp.txt README.en.txt EULA.jp.txt EULA.en.txt epos-print_sdk_android_ja_revx.pdf epos-print_sdk_android_en_revx.pdf epos-print_sdk_android_ AppDevGuide_ja_revx.pdf epos-print_sdk_android_ AppDevGuide_en_revx.pdf サンプルプログラムファイルです README ファイルです README ファイルです ( 英 語 版 ) です SOFTWARE LICENSE AGREEMENT が 記 載 されています SOFTWARE LICENSE AGREEMENT( 英 語 版 ) が 記 載 されています 本 書 です 本 書 ( 英 語 版 ) です 開 発 環 境 を 構 築 する 手 順 が 記 載 されています 開 発 環 境 を 構 築 する 手 順 が 記 載 されています ( 英 語 版 ) マニュアル epos-print SDK for Android のマニュアルには 以 下 のものがあります epos-print SDK for Android ユーザーズマニュアル ( 本 書 ) epos-print SDK for Android アプリケーション 開 発 環 境 - セットアップガイド サンプルプログラム epos-print SDK for Android を 使 用 した TM プリンター 用 Android アプリケーションのサンプルプログラム があります epos-print_sample_android.zip 基 本 機 能 用 サンプル (eposprintsample) 簡 単 選 択 用 サンプル (eposeasyselectsample) ダウンロード 提 供 物 は 下 記 エプソン 販 売 ホームページからダウンロードできます http://www.epson.jp/support/sd/ 10
第 1 章 概 要 制 限 事 項 epos-print APIの 通 信 API(49ページ)とコマンド 送 受 信 API(155ページ)は 同 一 デバイスに 対 して 同 時 に 使 用 することはできません 同 じアプリケーション 内 で 同 時 にオープンできるデバイスポート 数 は 16 個 です 画 面 の 回 転 時 に Activity が 破 棄 されることがあります Print インスタンスを Activity で 保 持 する 場 合 Activity が 破 棄 される 前 に Print クラスの closeprinter を 呼 び 出 す 必 要 があます Bluetooth 接 続 でプリンターとの 通 信 中 に 端 末 がスリープ 状 態 になると 通 信 が 切 断 されてしまいます 1 11
12
第 2 章 サンプルプログラム サンプルプログラム 本 章 では サンプルプログラムの 使 い 方 について しています サンプルプログラムは Android アプリケーション 開 発 者 向 けの epos-print SDK for Android を 使 用 した Android アプリケーションの 実 装 サンプルとして 提 供 します サンプルプログラムは Java ソースファイルを 含 む Eclipse 用 Android アプリケーション プロ ジェクトとして 提 供 します 概 要 提 供 しているサンプルプログラムには 以 下 の 機 能 があります <eposprintsample> サンプルプログラム <eposeasyselectsample> サンプルプログラムは 以 下 の 機 能 を 実 装 しています ( サンプルプログラムでは 文 字 / 画 像 / バーコードなどを 回 転 させる 機 能 は 実 装 していません ) プリンターの 検 索 ポートオープン ポートクローズ テキスト 印 刷 グラフィック 印 刷 ( 画 像 ファイルの 印 刷 ) バーコード 印 刷 2 次 元 シンボル 印 刷 ページモード 印 刷 用 紙 カット プリンターのステータス 取 得 プリンターの 機 種 名 / 言 語 情 報 取 得 ログ 出 力 設 定 ステータスイベントの 表 示 バッテリーステータスイベントの 表 示 NFC/ QR コードを 使 用 して 簡 単 にプリンターに 接 続 します NFC からプリンター 情 報 の 取 得 QR コードからプリンター 情 報 の 取 得 取 得 したプリンター 情 報 の 解 析 解 析 結 果 を 用 いたポートオープン プリンターの 検 索 結 果 からプリンター 情 報 の QR コード 作 成 2 13
使 用 環 境 開 発 環 境 Android SDK r16 Java Development Kit 6 Eclipse ADT Plugin for Eclipse 開 発 環 境 構 築 の 詳 細 は epos-print SDK for Android アプリケーション 開 発 環 境 - セットアップ ガイド を 参 照 してください プリンター epos-print SDK でサポートしている TM プリンター ターゲットデバイス コンピューターに USB 接 続 されているデバイス 14
第 2 章 サンプルプログラム 環 境 構 築 以 下 の 手 順 でサンプルプログラムの 環 境 を 構 築 します 1 サンプルプログラムの ZIP ファイルを 任 意 のディレクトリーに 展 開 します 2 Eclipseの[File]-[Import] で[General]-[Existing Project into Workspace]を 選 択 し [Next] をクリックします 3 Import Projects 画 面 が 表 示 されます 以 下 の 設 定 をし [Finish] をクリックしま す 4 5 項 目 Select root directory Copy projects into workspace Package Explorer View で "eposprintsample" プロジェクト または "eposeasyselectsample" プロジェクトを 右 クリックし [Properties] を 選 択 しま す Properties for eposprintsample または Properties for Properties for eposeasyselectsample が 表 示 されます 以 下 の 設 定 をし [OK] をクリックしま す 設 定 サンプルプログラムの ZIP ファイルを 展 開 したディレクトリーを 指 定 する チェックを 付 ける 2 Android Java Build Path 項 目 設 定 ターゲットデバイスの Android OS バージョンを 選 択 する Libraries に プロジェクトワークスペースにコピーしたプロジェク ト 内 の epos-print.jar または epos-pairing.jar へのパスが 設 定 さ れていることを 確 認 する 6 Package Explorer View で "eposprintsample " または "eposeasyselectsample " プロジェクトを 右 クリックし [Run As Android Application] を 選 択 します 7 ターゲットデバイスにサンプルプログラムがインストールされ サンプルプログラムが 起 動 します 15
使 用 方 法 ここでは 以 下 の 使 い 方 を します eposprintsample プリンターを 検 索 して 印 刷 する (16 ページ ) プリンターの 機 種 名 を 取 得 する (23 ページ ) eposeasyselectsample NFC/ QR コードを 使 ってプリンターを 選 択 する (24 ページ ) QR コードを 印 刷 する (24 ページ ) プリンターを 検 索 して 印 刷 する 以 下 の 手 順 で 使 用 します 1 サンプルプログラムを 起 動 します 詳 細 は 環 境 構 築 (15 ページ ) を 参 照 してください 2 プリンターを 検 索 します メイン 画 面 で [Printer Discovery] をタップします [Device Type] を 選 択 すると [Printer List] に 検 索 されたプリンターの IP アドレス / Mac アドレス / デバイスノード / プリンター 名 がリスト 表 示 されます 表 示 された [Printer List] の 中 から 使 用 するプリンターをタップします 3 4 プリンターのポートをオープンします メイン 画 面 で [Open] をタップします 手 順 3 で 選 択 したプリンターの "Device Type" と "IP アドレス / Mac アドレス / デバ イスノード " が 表 示 されます [Printer Name] と [Language] を 選 択 します 5 [Status Monitor] を 設 定 します 項 目 Enabled Interval ON: ステータスモニターを 有 効 にし プリンターステータスの 監 視 を 行 います OFF:ステータスモニターを 無 効 にします Enabled を ON に 設 定 した 場 合 ステータスの 監 視 間 隔 をミリ 秒 単 位 で 設 定 します 6 [Open] をタップします 16
第 2 章 サンプルプログラム 以 下 の 処 理 を 実 行 します 7 処 理 テキスト 印 刷 グラフィック 印 刷 バーコード 印 刷 2 次 元 シンボル 印 刷 ページモード 印 刷 用 紙 カット プリンターステータスの 取 得 ログ 出 力 設 定 メイン 画 面 の [Text] をタップしてください 詳 細 はテキスト 印 刷 (17 ページ ) を 参 照 してください メイン 画 面 の [Image] をタップしてください 詳 細 はグラフィック 印 刷 (18 ページ ) を 参 照 してください メイン 画 面 の [Barcode] をタップしてください 詳 細 はバーコード 印 刷 (18 ページ ) を 参 照 してください メイン 画 面 の [2D Code] をタップしてください 詳 細 は 2 次 元 シンボル 印 刷 (19 ページ ) を 参 照 してください メイン 画 面 の [Page Mode] をタップしてください 詳 細 はページモード 印 刷 (19 ページ ) を 参 照 してください メイン 画 面 の [Cut] をタップしてください 詳 細 は 用 紙 カット (19 ページ ) を 参 照 してください メイン 画 面 の [Get Status] をタップしてください メイン 画 面 の [Log Settings] をタップしてください 詳 細 はログ 出 力 設 定 (20 ページ ) を 参 照 してください 2 8 以 下 の 処 理 の 実 行 結 果 が 表 示 されます 処 理 実 行 結 果 ( エラーステータス / プリンターステータス / バッテリーステータス ) 詳 細 は 処 理 実 行 結 果 (21 ページ ) を 参 照 してください メソッド (API) 実 行 エラー 詳 細 は メソッド (API) 実 行 エラー (22 ページ ) を 参 照 してください 9 処 理 をすべて 終 えたら メイン 画 面 の [Close] をタップし プリンターのポートをクロー ズします テキスト 印 刷 以 下 の 手 順 で 実 行 します 1 [Print Characters] に 印 字 文 字 列 を 入 力 します 印 字 文 字 列 に 文 字 の 属 性 を 指 定 します 以 下 の 属 性 を 指 定 できます 2 属 性 Font 文 字 フォントを 設 定 します Align 位 置 揃 えを 設 定 します Line Spacing 改 行 量 を 設 定 します Language 言 語 を 設 定 します Size 文 字 の 倍 率 ( 縦 倍 / 横 倍 ) を 設 定 します Style 文 字 修 飾 ( ボールド / アンダーライン ) を 設 定 します X Position 横 位 置 の 開 始 位 置 を 設 定 します Feed Unit 紙 送 り 量 を 設 定 します 3 [Print] をタップし 印 刷 します 17
グラフィック 印 刷 以 下 の 手 順 で 実 行 します 1 [Select Image] をタップし 印 刷 する 画 像 ファイルを 選 択 します 2 [Color Mode] をタップし 階 調 を 選 択 します [Gray 16] ( 多 階 調 印 刷 ) を 選 択 できる 機 種 は TM-T88V/ TM-T70II/ TM-T90II のみです 3 [Halftone Method] をタップし ハーフトーンの 処 理 方 法 を 選 択 します 4 [Brightness] をタップし 数 値 を 入 力 して 明 るさを 指 定 します 5 [Print] をタップし 印 刷 します バーコード 印 刷 以 下 の 手 順 で 実 行 します 以 下 のバーコードの 設 定 をします 1 設 定 Type バーコードの 種 類 を 選 択 します Data バーコードデータを 入 力 します HRI HRI の 位 置 を 設 定 します Font HRI フォントを 設 定 します Module Size(Width, Height) バーコードのモジュールサイズ ( 幅 / 高 さ ) を 設 定 します 2 [Print] をタップし 印 刷 します 18
第 2 章 サンプルプログラム 2 次 元 シンボル 印 刷 以 下 の 手 順 で 実 行 します 1 [Type] から 2 次 元 シンボルの 種 類 を 選 択 します 2 [Data] に 2 次 元 シンボルデータを 入 力 します 3 2 次 元 シンボルの 種 類 ごとに 以 下 を 設 定 します 設 定 Error Correction Level (PDF417,QR Code, Aztec Code, DataMatrix) Module Size(Width, Height) Max Size 4 [Print] をタップし 印 刷 します エラー 訂 正 レベルを 設 定 します 2 次 元 シンボルのモジュールサイズ ( 幅 / 高 さ ) を 設 定 します 2 次 元 シンボルの 最 大 サイズを 設 定 します 2 ページモード 印 刷 以 下 の 手 順 で 実 行 します 1 [Print Characters] に 印 字 文 字 列 を 入 力 します 2 [Print Area] で 印 字 領 域 の 設 定 をします 設 定 X 横 方 向 の 原 点 を 設 定 します Y 縦 方 向 の 原 点 を 設 定 します Width 印 字 領 域 の 幅 を 設 定 します Height 印 字 領 域 の 高 さを 設 定 します 3 [Print] をタップし 印 刷 します 用 紙 カット 以 下 の 手 順 で 実 行 します 1 [Type] で 紙 送 りしてカットするか 設 定 します 2 [Print] をタップし カットを 実 行 します 19
ログ 出 力 設 定 以 下 の 手 順 で 設 定 します 1 [Enabled] に ログ 出 力 の 有 無 と ログの 出 力 先 を 設 定 します 2 ログの 出 力 先 に 合 わせて 以 下 を 設 定 します 設 定 IP Address Port Log Size Log Level 3 [Save Settings Permanently] に 設 定 の 保 存 方 法 を 設 定 します 4 [Setting] をタップし ログ 出 力 の 設 定 を 有 効 にします 5 印 刷 実 行 後 ログファイルを 確 認 します 詳 細 は setlogsettings (147 ページ ) を 参 照 してください TCP 通 信 の IP アドレスを 指 定 します TCP 通 信 用 のポート 番 号 を 指 定 します 端 末 のストレージに 保 存 する ログの 最 大 容 量 を 指 定 します 出 力 するログのレベルを 設 定 します 20
第 2 章 サンプルプログラム 実 行 結 果 処 理 実 行 結 果 以 下 の 表 示 がされます Result: 以 下 のエラーステータスが 表 示 されます 表 示 文 字 列 SUCCESS 成 功 ERR_PARAM 不 正 なパラメーターが 渡 された ERR_ILLEGAL 不 適 切 な 方 法 で 使 用 された ERR_PROCESSING 処 理 を 実 行 できなかった ERR_TIMEOUT 処 理 がタイムアウトされた ERR_CONNECT デバイスとの 通 信 に 失 敗 した ERR_MEMORY 処 理 に 必 要 なメモリーが 確 保 できなかった ERR_OFF_LINE オフライン 状 態 ERR_FAILURE その 他 のエラーが 発 生 した Status: 以 下 のプリンターステータスが 表 示 されます 2 表 示 文 字 列 NO_RESPONSE プリンター 無 応 答 PRINT_SUCCESS 印 刷 終 了 DRAWER_KICK ドロアーキックコネクター 3 番 ピンの 状 態 = "H" (TM-P60II 以 外 ) BATTERY_OFFLINE バッテリーオフライン 状 態 (TM-P60II) OFF_LINE オフライン 状 態 COVER_OPEN カバーが 開 いている PAPER_FEED 紙 送 りスイッチによる 紙 送 り 中 WAIT_ON_LINE オンライン 復 帰 待 ち 中 PANEL_SWITCH 紙 送 りスイッチが 押 されている MECHANICAL_ERR メカニカルエラー 発 生 AUTOCUTTER_ERR オートカッターエラー 発 生 UNRECOVER_ERR 復 帰 不 可 能 エラー 発 生 AUTORECOVER_ERR 自 動 復 帰 エラー 発 生 RECEIPT_NEAR_END ロール 紙 ニアエンド 検 出 器 に 用 紙 なし RECEIPT_END ロール 紙 エンド 検 出 器 に 用 紙 なし BUZZER ブザーが 鳴 っている ( 対 応 機 器 のみ ) Battery Status: 以 下 が 表 示 されます 表 示 文 字 列 0xnnnn バッテリーステータス 値 詳 細 は バッテリーステータス (46 ページ ) を 参 照 してください 21
メソッド (API) 実 行 エラー 以 下 の 表 示 がされます Error Code: 以 下 のエラーステータスが 表 示 されます 表 示 文 字 列 ERR_PARAM ERR_OPEN ERR_CONNECT ERR_TIMEOUT ERR_MEMORY ERR_ILLEGAL ERR_PROCESSING ERR_UNSUPPORTED ERR_OFF_LINE ERR_FAILURE 不 正 なパラメーターが 渡 された オープン 処 理 に 失 敗 した デバイスとの 通 信 に 失 敗 した 指 定 された 時 間 内 にすべてのデータを 送 信 できなかった 処 理 に 必 要 なメモリーが 確 保 できなかった 不 適 切 な 方 法 で 使 用 された 処 理 を 実 行 できなかった サポートしていない 機 種 名 または 言 語 使 用 が 指 定 された プリンターがオフライン 状 態 だった その 他 のエラーが 発 生 した Method: メソッド 実 行 エラーになった API が 表 示 されます 22
第 2 章 サンプルプログラム プリンターの 機 種 名 を 取 得 する プリンターの 機 種 名 の 取 得 は コマンド 送 受 信 API を 使 用 しています 詳 細 は コマンドの 送 受 信 (151 ページ ) を 参 照 してください 以 下 の 手 順 で 使 用 します 1 サンプルプログラムを 起 動 します 詳 細 は 環 境 構 築 (15 ページ ) を 参 照 してください 2 プリンターを 検 索 します メイン 画 面 で [Printer Discovery] をタップします [Device Type] を 選 択 すると [Printer List] に 検 索 されたプリンターの IP アドレス / Mac アドレス / デバイスノード / プリンター 名 がリスト 表 示 されます 表 示 された [Printer List] の 中 から 使 用 するプリンターをタップします 3 4 メイン 画 面 の [Get Printer Name] をタップします 5 [Get Printer Name] をタップします 以 下 が 表 示 されます 6 表 示 内 容 Printer Name プリンターの 機 種 名 が 表 示 されます Language プリンターの 言 語 仕 様 が 表 示 されます 2 23
NFC/ QR コードを 使 ってプリンターを 選 択 する 以 下 の 手 順 で 使 用 します 1 サンプルプログラムを 起 動 します 詳 細 は 環 境 構 築 (15 ページ ) を 参 照 してください 2 メイン 画 面 の [Quick pairing and Easy print by NFC/QR code] をタップします 以 下 の 方 法 でプリンターを 選 択 します 3 NFC にスマートデバイスをかざします QR コードをカメラで 読 み 取 ります カメラプレビューの 赤 枠 内 に QR コードを 入 れてください 4 [Print] をタップし 印 刷 します QR コードを 印 刷 する 以 下 の 手 順 で 使 用 します 1 サンプルプログラムを 起 動 します 詳 細 は 環 境 構 築 (15 ページ ) を 参 照 してください 2 メイン 画 面 の [Print QR code] をタップします 3 QR コード 印 刷 用 画 面 の [Find] をタップします [Printer List] に 検 索 されたプリンターがリスト 表 示 されます 4 使 用 したいプリンターを 選 択 します 5 [Print] をタップし 印 刷 します 24
第 3 章 プログラミングガイド プログラミングガイド 本 章 では epos-print SDK を 使 用 したアプリケーション 開 発 のプログラミング 方 法 について します epos-print SDK for Android を 使 用 した Android アプリケーション 開 発 環 境 の 構 築 方 法 について は epos-print SDK for Android アプリケーション 開 発 環 境 - セットアップガイド を 参 照 して ください epos-print SDK for Android の 組 み 込 み 方 法 epos-print SDK for Android の 組 み 込 み 方 法 について します Eclipse で しています その 他 の 環 境 で 開 発 する 場 合 読 み 替 えてください 以 下 の 手 順 で 組 み 込 んでください 1 Eclipse で 新 しいプロジェクトを 作 成 します 2 提 供 された jar 形 式 ファイル (epos-print.jar, eposeasyselect.jar) を 次 のパスにコ ピーします 3 libs epos-print.jar eposeasyselect.jar eposeasyselect.jar は プリンター 簡 単 選 択 を 使 用 しない 場 合 必 要 ありません 対 象 プロジェクトのプロパティの [Libraries] タグに 追 加 した Jar ファイル (epos- 3 Print.jar) が [Java Build Path] に 登 録 されていることを 確 認 します 追 加 されていない 場 合 [Add Jars... ] で 追 加 した Jar ファイルを ビルドパスに 追 加 します 4 ライブラリーファイル (libeposprint.so) を 次 のパスにコピーします libs armeabi libeposprint.so 5 Eclipse の [Package Explorer] でプロジェクトを 選 択 し 右 クリックで [Refresh] を 押 します 25
6 使 用 したいアプリケーションの *.java ソースファイルで パッケージのインポート 定 義 を 記 載 します 下 記 を 参 照 してください import com.epson.eposprint.*; import com.epson.epsonio.*; import com.epson.epos.easyselect.*; プリンター 簡 単 選 択 を 使 用 しない 場 合 easyselect パッケージを 定 義 する 必 要 はありませ ん 対 象 プロジェクトのプロパティの [Source] タグに 対 象 プロジェクト "/libs" があるこ 7 とを 確 認 します 確 認 できない 場 合 [Add Folder...] から "libs" をビルドパスに 追 加 し ます 8 Eclipse の [Package Explorer] から 対 象 のプロジェクトが 選 択 された 状 態 で [Window] メニューの [Preferences] を 選 択 します 9 [Preferences] 画 面 が 表 示 されます 左 のリストから [Java]-[Compiler] を 選 択 します 10 [Compiler] 画 面 が 表 示 されます [Compiler compliance level:] を "1.6" に 設 定 し [Apply] をクリックします その 後 [OK] をクリックします Eclipse の [Package Explorer] の "AndroidManifest.xml" をダブルクリックします 11 12 [Permissions] タグを 選 択 します 13 [Android Manifest Permissions] 画 面 が 表 示 されます [Add] ボタンをクリックしま す 14 [Uses Permission] を 選 択 し [OK] ボタンをクリックします 15 [Permissions] に [Uses Permission] が 追 加 されます 追 加 された [Uses Permission] に 付 加 する 機 能 の 権 限 を [Attributes for Uses Permission] の [Name] から 選 択 しま す 機 能 Wi-Fi Bluetooth USB [Name] の 設 定 android.permission.internet android.permission.bluetooth android.permission.bluetooth_admin android.permission.usb 付 加 できる 機 能 の 権 限 は [Permissions] の [Uses Permission] に 対 して 1 つの 設 定 です Bluetooth 機 能 およびすべて 機 能 を 使 用 するためには 手 順 13 ~ 手 順 15 までを 繰 り 返 し て 設 定 する 必 要 があります 16 "AndroidManifest.xml" を 保 存 します 26
第 3 章 プログラミングガイド epos-print SDK 印 刷 モードについて 印 字 モードにはスタンダードモードとページモードがあります スタンダードモード スタンダードモードとは 1 行 単 位 で 印 字 する 印 字 モードです 文 字 サイズ 画 像 バーコードなどの 高 さに 合 わせ て 改 行 量 が 調 整 されます レシートなど 印 字 量 に 合 わせて 用 紙 の 長 さが 変 化 する 印 刷 に 向 いています ページモード ページモードとは 印 字 領 域 を 設 定 して 印 字 データを 展 開 し 一 括 印 字 する 印 字 モードです 印 字 位 置 ( 座 標 ) に 文 字 画 像 バーコードなどを 展 開 します プログラミングフロー 以 下 のフローでプログラミングします 1. 事 前 準 備 (USB 接 続 ) (28 ページ ) * 3 2. プリ ンターの 選 択 (29 ページ ) * < 検 索 機 能 を 使 ってプリンターを 選 択 > 検 索 機 能 を 使 ってプリンターを 選 択 (29 ページ ) プリンターの 検 索 結 果 を 取 得 (29 ページ ) プリンターの 検 索 を 終 了 (30 ページ ) <NFC を 使 ってプリンターを 選 択 > NFC を 使 ってプリンターを 選 択 (30 ページ ) <QR コードを 使 ってプリンターを 選 択 > QR コードを 使 ってプリンターを 選 択 (31 ページ ) 3. 印 刷 ドキュ メ ント の 作 成 (32 ページ ) テキストの 印 刷 ドキュメントを 作 成 する 場 合 (32 ページ ) グラフィックの 印 刷 ドキュメントを 作 成 する 場 合 (33 ページ ) ページモードの 印 刷 ドキュメントを 作 成 する 場 合 (33 ページ ) *: 任 意 のプロセスです 4. 印 刷 ドキュ メ ント の 送 信 (34 ページ ) あらかじめプリンターの 状 態 を 確 認 して 送 信 するプログラミングをすると 確 実 に 印 刷 できま す 方 法 については プリンターの 状 態 を 確 認 してから 印 刷 する (36 ページ ) を 参 照 してくださ い 27
事 前 準 備 (USB 接 続 ) インターフェイスが USB の 場 合 あらかじめにアプリケーションで USB デバイスへのアクセス 許 可 を 取 得 するこ とを 推 奨 します あらかじめ USB デバイスへのアクセス 許 可 を 取 得 せず openprinter メソッドでポートオープン する 場 合 以 下 の 注 意 点 があります アク セ ス 許 可 取 得 の ダ イ ア ロ グで [OK]を 押 すと ポート オープ ン ま でに 10 秒 前 後 の 時 間 が 掛 か ります アク セ ス 許 可 取 得 の ダ イ ア ロ グで [ キャ ン セ ル] を 押 す と 30 秒 の タ イ ムア ウト 待 ち に なり ま す アプリケーションでアクセス 許 可 を 取 得 する 方 法 は 以 下 のとおりです 1 AndroidManifest.xml に 以 下 のコードを 追 記 します <manifest...> <application> <activity...> <intent-filter> <action android:name ="android.hardware.usb.action.usb_device_attached" /> </intent-filter> <meta-data android:name ="android.hardware.usb.action.usb_device_attached" android:resource="@xml/device_filter" /> </activity> </application> </manifest> 2 ソースファイルに res/xml/device_filter.xml を 追 加 します 3 device_filter.xml ファイルに 以 下 のコードを 記 述 します <?xml version="1.0" encoding="utf-8"?> <resources> <usb-device vendor-id="1208" /> </resources> 4 アクセス 許 可 を 取 得 する 際 ダイアログが 表 示 されます [OK] を 押 します 28
第 3 章 プログラミングガイド プリンターの 選 択 検 索 機 能 を 使 ってプリンターを 選 択 Finder クラスの start (137 ページ ) を 使 って プリンターの 検 索 を 開 始 します 以 下 のプログラミングを 参 考 にし てください int errstatus = IoStatus.SUCCESS; int devicetype = Print.DEVTYPE_TCP; // 検 索 開 始 try { //Wi-Fi/Ethernet デバイスの 場 合 switch(devicetype){ case DevType.TCP: Finder.start(getBaseContext(), DevType.TCP, "255.255.255.255"); break; //Bluetooth デバイスの 場 合 case DevType.BLUETOOTH: Finder.start(getBaseContext(), DevType.BLUETOOTH, "null"); break; //USB デバイスの 場 合 case DevType.USB: Finder.start(getBaseContext(), DevType.USB, "null"); break; default: Finder.start(getBaseContext(), DevType.TCP, "255.255.255.255"); break; 3 // 例 外 処 理 catch ( EpsonIoException e ) { errstatus = e.getstatus(); プリンターの 検 索 結 果 を 取 得 Finder クラスの getdeviceinfolist (139 ページ ) を 使 って プリンターの 検 索 結 果 を 取 得 します 以 下 のプログラミングを 参 考 にしてください 取 得 した 結 果 を openprinter (107 ページ ) で 使 用 してください int errstatus = IoStatus.SUCCESS; DeviceInfo[] mlist = null; // デバイス 一 覧 の 取 得 try { mlist = getdeviceinfolist(filteroption.param_default); // 例 外 処 理 catch ( EpsonIoException e ) { errstatus = e.getstatus(); プリンターの 検 索 に 時 間 がかかるため Finder クラスの start を 呼 んだ 直 後 に getdeviceinfolist を 呼 んだ 場 合 検 索 結 果 が 無 いこともあります 29
プリンターの 検 索 を 終 了 Finder クラスの stop (138 ページ ) を 使 って プリンターの 検 索 を 終 了 します 以 下 のプログラミングを 参 考 にし てください int errstatus = IoStatus.SUCCESS; // 検 索 終 了 try { Finder.stop(); // 例 外 処 理 catch ( EpsonIoException e ) { errstatus = e.getstatus(); NFC を 使 ってプリンターを 選 択 EasySelect クラスの parsenfc (144 ページ ) を 使 って NFC タグを 解 析 します 以 下 のプログラミングを 参 考 にしてください 取 得 した 結 果 を openprinter (107 ページ ) で 使 用 してください @Override protected void onnewintent(intent intent) { //NFC タグは onnewintent で 受 け 取 る EasySelect easyselect = new EasySelect(); Tag tag = (Tag)intent.getParcelableExtra( NfcAdapter.EXTRA_TAG ); //NFC タグの 解 析 EasySelectInfo easyselectinfo = easyselect.parsenfc( tag ); if (null == easyselectinfo) { // 簡 単 選 択 用 の NFC ではなかった 場 合 return ; try { Print printer = new Print(); // 解 析 したデータを 使 って プリンターをオープン printer.openprinter(esayselectinfo.devicetype, easyselect.printername, easyselectinfo.macaddress ); // 印 刷 処 理 // プリンターをクローズ printer.closeprinter(); // 例 外 処 理 catch (EposException e) { // 本 機 能 は NFC 対 応 機 種 のみ 使 用 できます 30
第 3 章 プログラミングガイド QR コードを 使 ってプリンターを 選 択 EasySelect クラスの parseqr (144 ページ ) を 使 って QR コードを 解 析 します 以 下 のプログラミングを 参 考 にしてください 取 得 した 結 果 を openprinter (107 ページ ) で 使 用 してください EasySelect easyselect = new EasySelect(); String data; // カメラ 画 像 から 取 得 した QR コードデータを 格 納 //QR コードの 解 析 EasySelectInfo easyselectinfo = easyselect.parseqr(data); if (null == easyselectinfo) { // 簡 単 選 択 用 の QR コードでは 無 かった 場 合 return ; try { Print printer = new Print(); // 解 析 したデータを 使 って プリンターをオープン printer.openprinter(easyselectinfo.devicetype, easyselectinfo.macaddress); // 解 析 したデータを 使 って 印 刷 ドキュメントを 作 成 Builder builder = new Builder(easySelectInfo.printerName, Builder.MODEL_JAPANESE); printer.closeprinter(); // 例 外 処 理 catch (EposException e) { // 例 外 処 理 3 プリ ンタ ー 簡 単 選 択 用 の QR コ ー ドを 作 成 する 方 法 プリンター 簡 単 選 択 用 の QR コードを 自 動 印 刷 できる 機 種 の 場 合 ダイナミックステータスシートの QR コードを 使 用 してください ダイナミックステータスシートの 印 刷 方 法 は 機 種 ごとの Technical Reference Guide を 参 照 してください プリンター 簡 単 選 択 用 の QR コードを 自 動 印 刷 できない 機 種 の 場 合 createqr (145 ページ ) を 使 用 して QR コードを 作 成 してください サンプルプログラムの QR コードを 作 成 するを 参 照 してください 31
印 刷 ドキュメントの 作 成 印 刷 ドキュメントは Builder クラス (47 ページ ) で 作 成 します コンストラクターで Builder クラスを 作 成 し Builder クラスの 各 API で 印 刷 ドキュメントを 作 成 します 以 下 のプログラミングを 参 考 にしてください try { //Builder クラスのインスタンスを 初 期 化 Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); // 印 刷 ドキュメントの 作 成 builder.addtextlang(builder.lang_ja); builder.addtextsmooth(builder.true); builder.addtextfont(builder.font_a); builder.addtextsize(3, 3); builder.addtext("hello,\t"); builder.addtext("world!\n"); builder.addcut(builder.cut_feed); catch (EposException e) { int errstatus = e.geterrorstatus(); テキストの 印 刷 ドキュメントを 作 成 する 場 合 テキストの 印 刷 ドキュメントを 作 成 する 場 合 テキストの 各 API でフォントの 設 定 を 命 令 バッファーに 格 納 し 印 刷 ドキュメントを 作 成 します 以 下 のプログラミングを 参 考 にしてください 文 字 列 Hello, World! を 以 下 の 設 定 で 印 刷 ドキュメントを 作 成 する 場 合 フォント : FontA 倍 率 : 幅 4 倍 高 さ 4 倍 スタイル : 太 字 try { //Builder クラスのインスタンスを 初 期 化 Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); // 印 刷 ドキュメントの 作 成 //< 印 字 文 字 の 設 定 > builder.addtextlang(builder.lang_ja); builder.addtextsmooth(builder.true); builder.addtextfont(builder.font_a); builder.addtextsize(4, 4); builder.addtextstyle(builder.false, Builder.FALSE, Builder.TRUE, Builder.PARAM_UNSPECIFIED); //< 印 刷 データを 指 定 > builder.addtext("hello,\t"); builder.addtext("world!\n"); builder.addcut(builder.cut_feed); catch (EposException e) { int errstatus = e.geterrorstatus(); 32
第 3 章 プログラミングガイド グラフィックの 印 刷 ドキュメントを 作 成 する 場 合 グラフィックの 印 刷 ドキュメントを 作 成 する 場 合 グラフィックは android.graphics.bitmap クラスを Builder クラスの addimage (69 ページ ) で 命 令 バッファーに 格 納 します 以 下 のプログラミングを 参 考 にしてください import android.content.res.resources; import android.graphics.bitmap; import android.graphics.bitmapfactory; try { //Builder クラスのインスタンスを 初 期 化 Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); // 印 刷 ドキュメントの 作 成 Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.background); builder.addimage(bmp, 0, 0, 8, 48, Builder.PARAM_DEFAULT); builder.addcut(builder.cut_feed); catch (EposException e) { int errstatus = e.geterrorstatus(); グラフィック 印 字 する 方 法 には プリンターの NV メモリーに 登 録 されているグラフィックを 印 字 する 方 法 もあります 詳 細 は addlogo (77 ページ ) を 参 照 してください ページモードの 印 刷 ドキュメントを 作 成 する 場 合 Builder クラスの addpagebegin (88 ページ ) を 命 令 バッファーに 格 納 することで ページモードが 開 始 されます 印 字 領 域 (addpagearea (90 ページ )) と 印 字 開 始 位 置 (addpageposition (92 ページ )) を 命 令 バッファーに 格 納 します 印 字 開 始 位 置 は 印 字 データに 合 わせて 指 定 します その 後 各 API を 命 令 バッファーに 格 納 し 印 字 データを 作 成 します ページモードの 終 了 は addpageend (89 ページ ) を 命 令 バッファーに 格 納 します 3 文 字 列 Hello, World! を 以 下 の 設 定 で 印 刷 ドキュメントを 作 成 する 場 合 ページモードの 印 字 領 域 ( ドット 単 位 ): 横 方 向 原 点 :100, 縦 方 向 原 点 :50, 幅 :200, 高 さ :100 ページモードの 印 字 位 置 ( ドット 単 位 ): 横 方 向 の 印 字 位 置 :0, 縦 方 の 印 字 位 置 :42 フォント : FontA 倍 率 : 幅 2 倍 高 さ 2 倍 スタイル : 太 字 try { //Builder クラスのインスタンスを 初 期 化 Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); // 印 刷 ドキュメントの 作 成 //< ページモード 開 始 > builder.addpagebegin(); builder.addpagearea(100, 50, 200, 100); builder.addpageposition(0, 42); //< 印 字 文 字 の 設 定 > builder.addtextlang(builder.lang_ja); builder.addtextsmooth(builder.true); builder.addtextfont(builder.font_a); builder.addtextsize(4, 4); builder.addtextstyle(builder.false, Builder.FALSE, Builder.TRUE, Builder.PARAM_UNSPECIFIED); //< 印 刷 データを 指 定 > builder.addtext("hello,\t"); builder.addtext("world!\n"); //< ページモード 終 了 > builder.addpageend(); builder.addcut(builder.cut_feed); catch (EposException e) { int errstatus = e.geterrorstatus(); 33
印 刷 ドキュメントの 送 信 印 刷 ドキュメントは Print クラス (49 ページ ) で 送 信 します コンストラクターで Print クラスを 作 成 し senddata で 印 刷 ドキュメントの 命 令 バッファーを 格 納 した Builder クラスのインスタンスを 指 定 して 送 信 します Builder に 格 納 された 命 令 バッファーは clearcommandbuffer (54 ページ ) を 実 行 するまで 保 管 されます senddata (114 ページ ) 成 功 後 に clearcommandbuffer を 実 行 してください 同 じ 印 刷 ドキュメントを 繰 り 返 し 印 刷 したい 場 合 clearcomanndbuffer を 実 行 する 必 要 はありま せん 以 下 のプログラミングを 参 考 にしてください //Print クラスのインスタンスを 初 期 化 Print printer = new Print(); int[] status = new int[1]; status[0] = 0; try { //Builder クラスのインスタンスを 初 期 化 Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); // 印 刷 ドキュメントの 作 成 //< 印 字 文 字 の 設 定 > builder.addtextlang(builder.lang_ja); builder.addtextsmooth(builder.true); builder.addtextfont(builder.font_a); builder.addtextsize(4, 4); builder.addtextstyle(builder.false, Builder.FALSE, Builder.TRUE, Builder.PARAM_UNSPECIFIED); //< 印 刷 データを 指 定 > builder.addtext("hello,\t"); builder.addtext("world!\n"); builder.addcut(builder.cut_feed); // 印 刷 ドキュメントを 送 信 //< プリンターとの 通 信 を 開 始 > ////Wi-Fi/Ethernet デバイスの 場 合 printer.openprinter(mlist.getdevicetype(), mlist.getdevicename()); ////Bluetooth デバイスの 場 合 printer.openprinter(mlist.getdevicetype(), mlist.getdevicename(), "null", Print.TRUE, Print.PARAM_DEFAULT); ////USB デバイスの 場 合 printer.openprinter(mlist.getdevicetype(), mlist.getdevicename(), getapplicationcontext(), Print.TRUE, Print.PARAM_DEFAULT); //< データを 送 信 > printer.senddata(builder, 10000, status); //< 命 令 バッファーの 削 除 > if((status[0] & Print.ST_PRINT_SUCCESS) == Print.ST_PRINT_SUCCESS) { builder.clearcommandbuffer(); //< プリンターとの 通 信 を 終 了 > printer.closeprinter(); catch (EposException e) { int errstatus = e.geterrorstatus(); status[0] = e.getprinterstatus(); printer.closeprinter(); 34
第 3 章 プログラミングガイド 設 定 用 の 命 令 バッファーの 有 効 範 囲 設 定 用 に 使 用 される Builder クラスの addxxx の 有 効 範 囲 は addxxx 設 定 後 senddata が 実 行 されるまでです 設 定 した 値 は senddata の 実 行 ごとに 初 期 化 されます 以 下 を 参 考 にしてください 例 Print printer = new Print(); Builder builder = null; Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); builder.addtext("hello, World!\n"); builder.addtextfont(builder.font_a); builder.addtext("hello, World!\n"); printer.senddata(builder, 10000, status); builder.addtext("hello, World!\n"); builder.addtextfont(builder.font_b); builder.addtext("hello, World!\n"); addtextfont の 設 定 が 無 効 な 文 字 列 addtextfont の 設 定 が 有 効 な 文 字 列 (FONT_A) addtextfont の 設 定 が 無 効 な 文 字 列 addtextfont の 設 定 が 有 効 な 文 字 列 (FONT_B) printer.senddata(builder, 10000, status); 3 35
プリンターの 状 態 を 確 認 してから 印 刷 する あらかじめプリンターの 状 態 を 確 認 してから 印 刷 すると 確 実 に 印 刷 できます 空 の 印 刷 データを 送 信 し プリン ターがオンライン 状 態 の 場 合 に 印 刷 します 以 下 を 参 考 にしてください //Print クラスのインスタンスを 初 期 化 Print printer = new Print(); int[] status = new int[1]; status[0] = 0; Builder builder = null; try { // 印 刷 ドキュメントの 作 成 Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); builder.addtext("hello, World!\n"); builder.addcut(builder.cut_feed); // 確 認 用 Builder クラスのインスタンスを 初 期 化 Builder confirmbuilder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); //< プリンターとの 通 信 を 開 始 > printer.openprinter(print.devtype_tcp, "192.168.192.168"); //< 確 認 用 データを 送 信 > printer.senddata(confirmbuilder, 10000, status); 1 2 3 if((status[0] & Print.ST_OFF_LINE)!= Print.ST_OFF_LINE){ //< 印 刷 データを 送 信 > printer.senddata(builder, 10000, status); else if ((status[0] & Print.ST_OFF_LINE) == Print.ST_OFF_LINE){ ; else { ; 4 5 //< プリンターとの 通 信 を 終 了 > printer.closeprinter(); catch (EposException e1) { int errstatus1 = e1.geterrorstatus(); status[0] = e1.getprinterstatus(); if ( errstatus1 == EposException.ERR_CONNECT ){ try{ //< プリンターとの 通 信 を 終 了 > printer.closeprinter(); //< プリンターとの 通 信 を 開 始 > printer.openprinter(print.devtype_tcp, "192.168.192.168"); //< 印 刷 データを 送 信 > printer.senddata(builder, 10000, status); //< プリンターとの 通 信 を 終 了 > printer.closeprinter(); 6 catch (EposException e2) { int errstatus2 = e2.geterrorstatus(); status[0] = e2.getprinterstatus(); 36
第 3 章 プログラミングガイド 1 印 刷 データを 作 成 します 2 プリンターの 状 態 を 確 認 するために 空 の 印 刷 データを 作 成 します 3 2で 作 成 した 印 刷 データを 送 信 します 4 2で 作 成 した 印 刷 データが 正 常 に 送 信 され プリンターがオンライン 状 態 の 場 合 に 続 けて1で 作 成 した 印 刷 データを 送 信 します 5 2で 作 成 した 印 刷 データが 正 常 に 送 信 され プリンターがオフライン 状 態 の 場 合 は プ リンターのオフラインとなる 要 因 を 取 り 除 いてください ( プリンターのカバーオープン 用 紙 切 れなど ) 6 2で 作 成 した 印 刷 データが 正 常 に 送 信 されなかった 場 合 プリンターとの 通 信 を 終 了 し て 再 度 プリンターとの 通 信 を 開 始 した 後 印 刷 データを 送 信 します 3 37
プリンターステータスを 自 動 で 取 得 epos-print SDK では リスナーを 使 用 して プリンターの 状 態 の 変 化 を 自 動 でアプリケーションに 通 知 できます 以 下 を 参 考 にしてください // プリンターステータスを 通 知 する StatusChangeEventListener の 登 録 public class SampleActivity extends Activity implements OnClickListener, StatusChangeEventListener { // //StatusChangeEventListener のメソッドを 実 装 private void onstatuschangeevent(string devicename, int status) { // 1 2/5 private void openprinter() { //Print クラスのインスタンスを 初 期 化 Print printer = new Print(); // プリンターの 状 態 変 化 の 通 知 先 を 登 録 printer.setstatuschangeeventcallback(this); try { // プリンターとの 通 信 およびプリンターステータスのモニタリングを 開 始 printer.openprinter(print.devtype_tcp, "192.168.192.168", Print.TRUE, Print.PARAM_DEFAULT); // catch (EposException e) { int errstatus = e.geterrorstatus(); printer.closeprinter(); 3 4 1 プリンターステータスを 取 得 するリスナーインターフェイスを 定 義 します 上 記 では プリンターステータスを openprinter (107 ページ ) で 指 定 した 間 隔 で 通 知 する StatusChangeEventListener を 定 義 しています epos-print のリスナーインターフェイスには カバーオープンやドロアーオープンのイ ベントといった プリンターステータスごとのリスナーインターフェイスも 用 意 されて います 用 途 に 応 じて 使 い 分 けてください epos-print で 使 用 できるリスナーインター フェイスは リスナーインターフェイス 一 覧 (39 ページ ) を 参 照 してください 2 イベント 発 生 時 の 通 知 先 メソッドを 実 装 します 3 プリンターステータスの 通 知 先 を 登 録 します 4 openprinter (107 ページ ) を 使 って プリンターステータスのモニタリングを 開 始 しま す 5 2で 実 装 したメソッドにプリンターステータスを 通 知 します プリンターステータスの 通 知 を 終 了 した 場 合 Print クラスの closeprinter (113 ページ ) で 終 了 します 38
第 3 章 プログラミングガイド リスナーインターフェイス 一 覧 リスナーインターフェイスの 詳 細 は 下 記 通 知 先 登 録 API を している API リファレンス (47 ページ ) を 参 照 してください 機 能 プリンターステータスの 通 知 オンラインの 通 知 オフラインの 通 知 無 応 答 の 通 知 カバークローズの 通 知 カバーオープンの 通 知 用 紙 ありの 通 知 用 紙 残 量 少 の 通 知 用 紙 なしの 通 知 ドロアークローズの 通 知 ドロアーオープンの 通 知 バッテリー 残 量 なしの 通 知 イベントリスナー 通 知 先 メソッド 通 知 先 登 録 API public interface StatusChangeEventListener extends EventListener void onstatuschangeevent(string devicename, int status) setstatuschangeeventcallback (118 ページ ) public interface OnlineEventListener extends EventListener void ononlineevent(string devicename) setonlineeventcallback (119 ページ ) public interface OfflineEventListener extends EventListener void onofflineevent(string devicename) setofflineeventcallback (120 ページ ) public interface PowerOffEventListener extends EventListener void onpoweroffevent(string devicename) setpoweroffeventcallback (121 ページ ) public interface CoverOkEventListener extends EventListener void oncoverokevent(string devicename) setcoverokeventcallback (122 ページ ) public interface CoverOpenEventListener extends EventListener void oncoveropenevent(string devicename) setcoveropeneventcallback (123 ページ ) public interface PaperOkEventListener extends EventListener void onpaperokevent(string devicename) setpaperokeventcallback (124 ページ ) public interface PaperNearEndEventListener extends EventListener void onpapernearendevent(string devicename) setpapernearendeventcallback (125 ページ ) public interface PaperEndEventListener extends EventListener void onpaperendevent(string devicename) setpaperendeventcallback (126 ページ ) public interface DrawerClosedEventListener extends EventListener void ondrawerclosedevent(string devicename) setdrawerclosedeventcallback (127 ページ ) public interface DrawerOpenEventListener extends EventListener void ondraweropenevent(string devicename) setdraweropeneventcallback (128 ページ ) public interface BatteryLowEventListener extends EventListener void onbatterylowevent(string devicename) setbatteryloweventcallback (129 ページ ) 3 39
機 能 バッテリー 残 量 ありの 通 知 バッテリーステータスの 通 知 イベントリスナー 通 知 先 メソッド 通 知 先 登 録 API public interface BatteryOkEventListener extends EventListener void onbatteryokevent(string devicename) setbatteryokeventcallback (130 ページ ) public interface BatteryStatusChangeEventListener extends EventListener void onbatterystatuschangeevent(string devicename, int battery) setbatterystatuschangeeventcallback (131 ページ ) 40
第 3 章 プログラミングガイド 例 外 処 理 epos-print SDK for Android では エラー 発 生 時 に 数 値 (int) 型 のパラメーターを 持 つ 独 自 の 例 外 を 発 生 させ 呼 び 元 にエラーを 通 知 します epos-print API は EposException クラス (49 ページ ) プリンター 検 索 API は EpsonIoException クラス (136 ページ ) で 取 得 します 以 下 のエラーを 通 知 します 種 類 エラーステータス プリンターステータス バッテリーステータス 各 クラスの API 実 行 時 のエラー 要 因 です 詳 細 は エラーステータスと 対 処 方 法 (43 ページ ) を 参 照 してください 印 刷 データ 送 信 時 のプリンターの 状 態 です プリンターステータスは senddata (114 ページ ) を 実 行 時 にのみ 取 得 できます 詳 細 は プリンターステータスと 対 処 方 法 (45 ページ ) を 参 照 してください プリンターのバッテリー 残 量 のステータスです 詳 細 は バッテリーステータス (46 ページ ) を 参 照 してください 処 理 方 法 epos-print API EposException クラスの geterrorstatus (133 ページ ) でエラーステータス getprinterstatus (134 ページ ) でプリンターステータス getbatterystatus (135 ページ ) でバッテリーステータスを 取 得 します 以 下 のプログラミングを 参 考 にしてください 3 //Print クラスのインスタンスを 初 期 化 Print printer = new Print(); import android.content.context; int[] status = new int[1]; int[] battery = new int[1] status[0] = 0; battery[0] = 0; try { // 印 刷 ドキュメントの 作 成 Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE, getapplicationcontext()); builder.addtext("hello,\t"); builder.addtext("world!\n"); builder.addcut(builder.cut_feed); // 印 刷 ドキュメントの 送 信 ////Wi-Fi/Ethernet デバイスの 場 合 printer.openprinter(mlist.getdevicetype(), mlist.getdevicename(), Print.TRUE, Print.PARAM_DEFAULT); ////Bluetooth デバイスの 場 合 printer.openprinter(print.devtype_bluetooth, "00:00:12:34:56:78", Print.TRUE, Print.PARAM_DEFAULT); ////USB デバイスの 場 合 printer.openprinter(print.devtype_usb, "/dev/bus/usb/001/002", Print.TRUE, Print.PARAM_DEFAULT); printer.senddata(builder, 10000, status, battery); printer.closeprinter(); catch (EposException e) { // エラーステータスの 取 得 int errstatus = e.geterrorstatus(); // プリンターステータスの 取 得 status[0] = e.getprinterstatus(); // バッテリーステータスの 取 得 battery[0] = e.getbatterystatus(); printer.closeprinter(); 41
プリンター 検 索 API EpsonIoException クラスの getstatus (142 ページ ) でエラーステータスを 取 得 します 以 下 のプログラミングを 参 考 にしてください int errstatus = IoStatus.SUCCESS; DeviceInfo[] mlist = null; // デバイス 一 覧 の 取 得 try { ////Wi-Fi/Ethernet デバイスの 場 合 Finder.start(getBaseContext(), DevType.TCP, "255.255.255.255"); ////Bluetooth デバイスの 場 合 Finder.start(getBaseContext(), DevType.BLUETOOTH, "null"); ////USB デバイスの 場 合 Finder.start(getBaseContext(), DevType.USB, "null"); mlist = getdeviceinfolist(filteroption.param_default); // 例 外 処 理 catch ( EpsonIoException e ) { errstatus = e.getstatus(); 42
第 3 章 プログラミングガイド エラーステータスと 対 処 方 法 エラーステータスは API を 実 行 した 各 クラスに 定 義 されています ここでエラーステータス 内 容 と 対 処 方 法 を しますので お 客 様 のアプリケーションでエラーハンドリング 処 理 を 行 ってください エラーステータス 要 因 対 処 方 法 ERR_PARAM ERR_OPEN ERR_CONNECT ERR_TIMEOUT ERR_MEMORY ERR_ILLEGAL ERR_PROCESSING ERR_UNSUPPORTED 不 正 なパラメーターが 渡 された < 例 > null など 不 正 な 引 数 を 渡 された サポートしていない 範 囲 の 値 が 指 定 され た オープン 処 理 に 失 敗 した < 例 > 指 定 したプリンターに 接 続 できなかっ た USB 接 続 の 場 合 USBケーブルが 接 続 され ていなかった デバイスとの 通 信 に 失 敗 した < 例 > プリンターへのデータ 送 信 に 失 敗 した 指 定 したタイムアウト 時 間 を 越 えた < 例 > 指 定 された 時 間 内 に 全 データを 送 信 できな かった 処 理 に 必 要 なメモリーが 確 保 できなかっ た 不 適 切 な 方 法 で 使 用 された < 例 > プリンターがオープンされていない 状 態 で プリンターにコマンドを 送 信 する API が 呼 び 出 された USB 接 続 の 場 合 コンテキスト 付 のコン ストラクターが 使 われなかった 処 理 を 実 行 できなかった < 例 > 同 様 の 処 理 を 他 のスレッドで 実 行 中 のた め 処 理 が 実 行 できなかった サポートしていない 機 種 名 または 言 語 仕 様 が 指 定 された パラメーターの 指 定 が 間 違 えています パラメーターを 見 直 してください Android デバイスとプリンターを 確 認 して ください (プリンターの 電 源 通 信 接 続 状 態 など) closeprinter メソッドを 実 行 後 openprinter メソッドを 実 行 して Android デバイスとプリンターの 通 信 を 復 帰 させてください インターフェイスが Bluetooth の 場 合 Android OS が 自 動 で 再 接 続 する 可 能 性 が あります 20 秒 間 ステータス 取 得 を 試 みて "ERR_CONNECT" を 受 信 し 続 ける 場 合 は Android デバイスとプリンターの 通 信 を 復 帰 させてください タイムアウト 時 間 を 確 認 してください タイムアウト 時 間 は 印 刷 所 要 時 間 以 上 に 設 定 してください 不 要 なアプリケーションを 終 了 してくださ い API を 適 切 な 方 法 で 使 用 してください 27 ページ プログラミングフロー を 参 照 してください アプリケーションの 処 理 のタイミングを 見 直 し 処 理 が 重 ならないようにしてくださ い サポートしていない 機 種 では 使 用 できませ ん 3 43
エラーステータス 要 因 対 処 方 法 ERR_OFF_LINE ERR_FAILURE プリンターがオフライン 状 態 だった その 他 のエラーが 発 生 した オフラインになる 要 因 を 取 り 除 いてくださ い ( プリンターのカバーオープン 用 紙 切 れ など) Android デバイスの 通 信 設 定 を 確 認 して ください (Wi-Fi の 接 続 設 定 / Bluetooth の 接 続 設 定 / USB の 接 続 設 定 など) 実 行 環 境 に 問 題 がないか 確 認 してくださ い 44
第 3 章 プログラミングガイド プリンターステータスと 対 処 方 法 TM プリンターの 機 種 によってプリンターステータスは 異 なります ここではプリンターステータスの 内 容 と 対 処 方 法 を しますので お 客 様 のアプリケーションでエラーハンドリン グ 処 理 を 行 ってください プリンターステータス 要 因 対 処 方 法 Print.ST_NO_RESPONSE (0x00000001) Print.ST_PRINT_SUCCESS (0x00000002) <TM-P60II 以 外 > Print.ST_DRAWER_KICK (0x00000004) <TM-P60II> Print.ST_BATTERY_OFFLINE (0x00000004) Print.ST_OFF_LINE (0x00000008) Print.ST_COVER_OPEN (0x00000020) Print.ST_PAPER_FEED (0x00000040) Print.ST_PANEL_SWITCH (0x00000200) Print.ST_MECHANICAL_ERR (0x00000400) Print.ST_AUTOCUTTER_ERR (0x00000800) Print.ST_UNRECOVER_ERR (0x00002000) Print.ST_AUTORECOVER_ER R (0x00004000) Print.ST_RECEIPT_NEAR_END (0x00020000) Print.ST_RECEIPT_END (0x00080000) Print.ST_BUZZER (0x01000000) TM プリンターの 電 源 が 入 っていない 通 信 が 確 立 されていいない 通 信 ケーブルが 抜 かれている 印 刷 終 了 - ドロアーキックコネクター 3 番 ピンの 状 態 = "H" バッテリー 残 量 によるオフライン 状 態 オフライン 状 態 カバーが 開 いている 紙 送 りスイッチによる 紙 送 り 中 - プリンターのスイッチ またはボタン が 押 されている メカニカルエラー 発 生 オートカッターエラー 発 生 プリンターに 印 刷 できない 復 帰 不 可 能 エラー 発 生 ヘッドの 温 度 が 上 昇 し 自 動 復 帰 エ ラーが 発 生 用 紙 残 量 が 少 なくなった 用 紙 がなくなった ブザーが 鳴 っている ( 対 応 機 器 のみ ) - ラベル 除 去 待 ち 状 態 ( 対 応 機 器 のみ ) 電 源 ケーブルなど プリンターの 状 態 や 通 信 状 態 を 確 認 してください - バッテリーを 充 電 してください オフラインになる 要 因 を 取 り 除 いて ください (カバーオープン 用 紙 切 れなど) プリンターのカバーを 閉 めてくださ い - エラーの 原 因 を 取 り 除 き プリン ターの 電 源 を 再 投 入 してください エラーの 原 因 を 取 り 除 き プリン ターの 電 源 を 再 投 入 してください ただちにプリンターの 電 源 を 切 って ください 時 間 の 経 過 により ヘッドの 温 度 が 下 降 すれば 自 動 で 解 除 されます プリンターに 用 紙 を 入 れてください プリンターに 用 紙 を 入 れてください ラベルを 取 り 除 いてください 3 45
バッテリーステータス バッテリーステータスは 以 下 の 16 ビット (0x0000) で 構 成 されています ビット 上 位 8 ビット 下 位 8 ビット 共 通 のバッテリーステータス ( 詳 細 は 共 通 のバッテリーステータス ( 上 位 8 ビット ) (46 ページ ) を 参 照 してください ) 機 種 専 用 のバッテリーステータス ( 詳 細 は プリンター 別 サポート 情 報 (162 ページ ) を 参 照 してください ) バッテリーステータス 取 得 不 可 能 状 態 もしくは 機 種 がバッテリーステータスに 対 応 していない 場 合 "0x0000" を 返 します 共 通 のバッテリーステータス ( 上 位 8 ビット ) バッテリーステータス 値 0x30 0x31 AC アダプターが 接 続 されている AC アダプターが 接 続 されていない 要 因 46
第 4 章 APIリファレンス API リファレンス 本 章 では epos-print SDK for Android で 用 意 されている API について しています epos-print API epos-print API は 印 刷 ドキュメントを 作 成 し 印 刷 処 理 を 行 う API です 以 下 のクラスが 用 意 されています Builder クラス (47 ページ ) Print クラス (49 ページ ) EposException クラス (49 ページ ) プリンターによって 使 用 できる API や 指 定 可 能 な 設 定 値 は 異 なります 詳 細 は プリンターごとのサポート API 一 覧 (161 ページ ) およびプリンター 別 サポート 情 報 (162 ページ ) を 参 照 してください Builder クラス 印 字 する 文 字 列 やグラフィックの 印 刷 用 紙 カットなどプリンターの 制 御 命 令 の 印 刷 ドキュメントを 作 成 します 以 下 の API が 用 意 されています API ページ コンストラクター Builder クラスのインスタンスを 初 期 化 50 コンストラクター ( 旧 フォーマット ) Builder クラスのインスタンスを 初 期 化 ( ログ 出 力 機 能 は 使 用 できません ) 命 令 バッファーのクリア clearcommandbuffer 各 API で 追 加 した 命 令 バッファーをクリア 54 テキスト 紙 送 り addtextalign 位 置 揃 え 設 定 を 命 令 バッファーに 追 加 55 addtextlinespace 改 行 量 設 定 を 命 令 バッファーに 追 加 56 addtextrotate 倒 立 印 字 設 定 を 命 令 バッファーに 追 加 57 addtext 文 字 印 字 を 命 令 バッファーに 追 加 58 addtextlang 言 語 設 定 を 命 令 バッファーに 追 加 59 addtextfont 文 字 フォント 設 定 を 命 令 バッファーに 追 加 60 addtextsmooth 文 字 スムージング 設 定 を 命 令 バッファー に 追 加 61 addtextdouble 文 字 倍 角 設 定 を 命 令 バッファーに 追 加 62 addtextsize 文 字 倍 率 設 定 を 命 令 バッファーに 追 加 63 addtextstyle 文 字 装 飾 設 定 を 命 令 バッファーに 追 加 64 addtextposition 文 字 印 字 位 置 設 定 を 命 令 バッファーに 追 加 66 addfeedunit ドット 単 位 の 紙 送 りを 命 令 バッファーに 追 加 67 addfeedline 行 単 位 の 紙 送 りを 命 令 バッファーに 追 加 68 addfeedposition ラベル / ブラックマーク 紙 の 紙 送 りを 命 令 バッファーに 追 加 52 101 4 47
グラフィック バーコード ページモード addimage addimage ( 旧 フォーマット ) addimage ( 旧 フォーマット ) ラスターイメージ 印 字 を 命 令 バッファーに 追 加 イメージデータを 圧 縮 して 命 令 バッファーに 追 加 (Bluetooth インターフェイス ) ラスターイメージ 印 字 を 命 令 バッファーに 追 加 ( イメージデータの 圧 縮 は 使 用 できません (Bluetooth インターフェイス ) ) ラスターイメージ 印 字 を 命 令 バッファー に 追 加 ( イメージデータの 圧 縮 は 使 用 できません (Bluetooth インターフェイス ) 多 階 調 は 印 刷 できません ) addlogo NV ロゴ 印 字 を 命 令 バッファーに 追 加 77 addbarcode バーコード 印 字 を 命 令 バッファーに 追 加 78 addsymbol 2 次 元 シンボル 印 字 を 命 令 バッファーに 追 加 83 addpagebegin ページモード 開 始 を 命 令 バッファーに 追 加 88 addpageend ページモード 終 了 を 命 令 バッファーに 追 加 89 addpagearea addpagedirection addpageposition addpageline ページモード 印 字 領 域 設 定 を 命 令 バッファー に 追 加 ページモード 印 字 方 向 設 定 を 命 令 バッファー に 追 加 ページモード 印 字 位 置 設 定 を 命 令 バッファー に 追 加 ページモード 直 線 描 画 を 命 令 バッファー に 追 加 addpagerectangle ページモード 四 角 形 描 画 を 命 令 バッファー に 追 加 94 カット addcut 用 紙 カットを 命 令 バッファーに 追 加 95 ドロアーキック addpulse ドロアーキックを 命 令 バッファーに 追 加 96 ブザー API ページ addsound ブザー 鳴 動 を 命 令 バッファーに 追 加 97 addsound ( 旧 フォーマット ) ブザー 鳴 動 を 命 令 バッファーに 追 加 ( 鳴 動 周 期 は 設 定 できません ) 用 紙 レイアウト addlayout 用 紙 レイアウト 情 報 を 命 令 バッファーに 追 加 102 コマンド 送 信 addcommand コマンドを 命 令 バッファーに 追 加 104 69 72 75 90 91 92 93 99 48
第 4 章 APIリファレンス Print クラス Builder クラスで 作 成 した 印 刷 ドキュメントを 送 信 してプリンターを 制 御 したり 送 信 結 果 や 通 信 状 態 を 監 視 した りします API ページ コンストラクター Print クラスのインスタンスを 初 期 化 105 コンストラクター ( 旧 フォーマット ) Print クラスのインスタンスを 初 期 化 ( ログ 出 力 機 能 と USB 接 続 での 通 信 はできません ) 106 openprinter プリンターとの 通 信 を 開 始 107 openprinter( 旧 フォーマット ) openprinter ( 旧 フォーマット ) プリンターとの 通 信 を 開 始 (タイムアウトが 設 定 できません) プリンターとの 通 信 を 開 始 (プリンターステータスの 取 得 およびタイムアウト が 設 定 できません) closeprinter プリンターとの 通 信 を 終 了 113 senddata プリンターにコマンドを 送 信 114 senddata ( 旧 フォーマット ) プリンターにコマンドを 送 信 ( バッテリーステータスは 取 得 できません ) 116 setstatuschangeeventcallback プリンターステータスの 通 知 先 を 登 録 118 setonlineeventcallback オンラインイベントの 通 知 先 を 登 録 119 setofflineeventcallback オフラインイベントの 通 知 先 を 登 録 120 setpoweroffeventcallback 無 応 答 イベントの 通 知 先 を 登 録 121 setcoverokeventcallback カバークローズイベントの 通 知 先 を 登 録 122 setcoveropeneventcallback カバーオープンイベントの 通 知 先 を 登 録 123 setpaperokeventcallback 用 紙 ありイベントの 通 知 先 を 登 録 124 setpapernearendeventcallback 用 紙 残 量 少 イベントの 通 知 先 を 登 録 125 setpaperendeventcallback 用 紙 なしイベントの 通 知 先 を 登 録 126 setdrawerclosedeventcallback ドロアークローズイベントの 通 知 先 を 登 録 127 setdraweropeneventcallback ドロアーオープンイベントの 通 知 先 を 登 録 128 setbatteryloweventcallback バッテリー 残 量 なしイベントの 通 知 先 を 登 録 129 setbatteryokeventcallback バッテリー 残 量 ありイベントの 通 知 先 を 登 録 130 setbatterystatuschangeeventcallback バッテリーステータスの 通 知 先 を 登 録 131 109 111 4 EposException クラス API 実 行 エラーや 印 刷 エラーの 例 外 発 生 のスロー 時 に ステータスを 取 得 します API ページ geterrorstatus エラーステータスを 取 得 133 getprinterstatus プリンターステータスを 取 得 134 getbatterystatus バッテリーステータスを 取 得 135 49
Builder クラス ( コンストラクター) Builder クラスのコンストラクターです Builder クラスのインスタンスを 初 期 化 します 本 コンストラクターは ログ 出 力 機 能 を 使 用 する 場 合 に 使 用 します 構 文 public Builder(String printermodel, int lang, Context context) throws EposException パラメーター printermodel : 対 象 のプリンターの 機 種 名 を 指 定 します "TM-T88V" 設 定 値 TM-T88V "TM-T70" TM-T70 "TM-T70II" TM-T70II "TM-T90II" TM-T90II "TM-T20II" TM-T20II "TM-P20" TM-P20 "TM-P60II" TM-P60II lang : プリンターの 言 語 仕 様 を 指 定 します TM プリンター 別 設 定 値 設 定 値 TM-T88V TM-T70 TM-T70II TM-T90II TM-T20II TM-P60II TM-P20 Builder.MODEL_ANK ANK モデル Builder.MODEL_JAPANESE 日 本 語 モデル - - context : アプリケーションのコンテキストを 指 定 します 例 外 処 理 に 失 敗 した 場 合 以 下 のエラーステータスの EposException が 発 生 します エラーステータス ERR_PARAM ERR_MEMORY ERR_UNSUPPORTED ERR_FAILURE 不 正 なパラメーターが 渡 された 処 理 に 必 要 なメモリーが 確 保 できなかった サポートしていない 機 種 名 または 言 語 仕 様 が 指 定 された その 他 のエラーが 発 生 した 50
第 4 章 APIリファレンス 例 TM-T88V 日 本 語 モデル 用 の 命 令 バッファーを 初 期 化 する 場 合 import android.content.context; try { Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE, getapplicationcontext()); catch (EposException e) { int errstatus = e.geterrorstatus(); 4 51
Builder クラス ( コンストラクター) ( 旧 フォーマット ) Builder クラスのコンストラクターです Builder クラスのインスタンスを 初 期 化 します ログ 出 力 機 能 は 使 用 できません ログ 出 力 機 能 を 使 用 する 場 合 Builder クラス ( コンストラクター ) (50 ページ ) を 使 用 してください 構 文 public Builder(String printermodel, int lang) throws EposException パラメーター printermodel : 対 象 のプリンターの 機 種 名 を 指 定 します 設 定 値 "TM-T88V" TM-T88V "TM-T70" TM-T70 "TM-T70II" TM-T70II "TM-T90II" TM-T90II "TM-T20II" TM-T20II "TM-P20" TM-P20 "TM-P60II" TM-P60II lang : プリンターの 言 語 仕 様 を 指 定 します TM プリンター 別 設 定 値 設 定 値 TM-T88V TM-T70 TM-T70II TM-T90II TM-T20II TM-P60II TM-P20 Builder.MODEL_ANK ANK モデル Builder.MODEL_JAPANESE 日 本 語 モデル - - 例 外 処 理 に 失 敗 した 場 合 以 下 のエラーステータスの EposException が 発 生 します エラーステータス ERR_PARAM ERR_MEMORY ERR_UNSUPPORTED ERR_FAILURE 不 正 なパラメーターが 渡 された 処 理 に 必 要 なメモリーが 確 保 できなかった サポートしていない 機 種 名 または 言 語 仕 様 が 指 定 された その 他 のエラーが 発 生 した 52
第 4 章 APIリファレンス 例 TM-T88V 日 本 語 モデル 用 の 命 令 バッファーを 初 期 化 する 場 合 try { Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); catch (EposException e) { int errstatus = e.geterrorstatus(); 4 53
clearcommandbuffer Builder クラスの API で 使 用 した 命 令 バッファーをクリアします Builder クラスに 格 納 された 命 令 バッファーは 本 API を 実 行 するまで 保 管 されます 構 文 public void clearcommandbuffer() 例 命 令 バッファーをクリアする 場 合 try { Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); builder.clearcommandbuffer(); catch (EposException e) { int errstatus = e.geterrorstatus(); 54
第 4 章 APIリファレンス addtextalign 位 置 揃 え 設 定 を 命 令 バッファーに 追 加 します 本 API の 設 定 は バーコード /2 次 元 シンボルにも 適 用 されます ページモードで 位 置 揃 えを 設 定 する 場 合 本 API ではなく addpageposition (92 ページ ) で 設 定 してください 構 文 public void addtextalign(int align) throws EposException パラメーター align : 位 置 揃 えを 指 定 します 設 定 値 Builder.ALIGN_LEFT ( 初 期 値 ) Builder.ALIGN_CENTER Builder.ALIGN_RIGHT 左 揃 え 中 央 揃 え 右 揃 え 例 外 処 理 に 失 敗 した 場 合 以 下 のエラーステータスの EposException が 発 生 します エラーステータス ERR_PARAM ERR_MEMORY ERR_FAILURE 不 正 なパラメーターが 渡 された 処 理 に 必 要 なメモリーが 確 保 できなかった その 他 のエラーが 発 生 した 4 例 中 央 揃 えに 設 定 する 場 合 try { Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); builder.addtextalign(builder.align_center); catch (EposException e) { int errstatus = e.geterrorstatus(); 55
addtextlinespace 改 行 量 設 定 を 命 令 バッファーに 追 加 します 構 文 public void addtextlinespace(int linespc) throws EposException パラメーター linespc : 改 行 量 ( ドット 単 位 ) を 指 定 します 0 ~ 255 の 整 数 値 で 指 定 します ( 初 期 値 : プリンター 別 サポート 情 報 (162 ページ ) を 参 照 してください ) 例 外 処 理 に 失 敗 した 場 合 以 下 のエラーステータスの EposException が 発 生 します エラーステータス ERR_PARAM ERR_MEMORY ERR_FAILURE 不 正 なパラメーターが 渡 された 処 理 に 必 要 なメモリーが 確 保 できなかった その 他 のエラーが 発 生 した 例 改 行 量 を 50 ドットに 設 定 する 場 合 try { Builder builder = new Builder("TM-T88V", Builder.MODEL_JAPANESE); builder.addtextlinespace(50); catch (EposException e) { int errstatus = e.geterrorstatus(); 56