2
Esc/Posを使用して、プリンタのNVグラフィックスメモリにビットマップイメージをアップロードします。JAVA ESC PosアップロードNVグラフィックからプリンタ
Esc/PosマニュアルのGS (L/GS 8 L
<Function 67>
を使用しています。
<Function 65>
と<Function 66>
を使用して、グラフィックスのすべてまたは1つを削除することができます。
ビットマップを関数に追加するときに何か不足していることが分かりました。
Heresは、ビットマップを含む私のコマンド文字列です。 bitmapString
は、ファイルヘッダ除去ビットマップのInfoヘッダ(最初の62バイト)(DataOffset)を有する:
String bitmapString = new String(bitmapBytes, Charsets.US_ASCII);
bitmapString = bitmapString.substring(DataOffset, bitmapStringSize);
String commandString = "";
int commandLength = (bitmapStringSize.length) + 11;
pL = commandLength % 256;
if (commandLength < 256) {
pH = 0;
} else {
pH = (commandLength - pL)/256;
}
xL = bitmapWidth % 256;
if (bitmapWidth < 256) {
xH = 0;
} else {
xH = (bitmapWidth - (bitmapWidth % 256))/256;
}
yL = bitmapHeight % 256;
if (bitmapHeight < 256) {
yH = 0;
} else {
yH = (bitmapHeight - (bitmapHeight % 256))/256;
}
commandString
+= Utils.H("1B")// 27
+ Utils.H("40") // 64
+ Utils.H("1B") // 27
+ Utils.H("3D") // 61
+ Utils.H("01") // 1
+ Utils.H("1D") // GS = 29
+ Utils.H("28") // (= 40
+ Utils.H("4C") // L = 76
+ Utils.D(pL) // pL
+ Utils.D(pH) // pH
+ Utils.H("30") // m = 48
+ Utils.H("43") // fn = 67
+ Utils.H("30") // a = 48
+ Utils.H(KC1) // kc1
+ Utils.H(KC2) // kc2
+ Utils.H("01") // b = 1
+ Utils.D(xL) // xL
+ Utils.D(xH) // xH
+ Utils.D(yL) // yL
+ Utils.D(yH) // yH
+ Utils.H("31");// c = 49
commandString += bitmapString;
Iが開き、プリンタに書き込むEPOS-Print.jarを使用している:
EpsonIo epsonio = new EpsonIo();
byte[] commandBytes = commandString.getBytes(Charsets.US_ASCII);
epsonio.open(DevType.BLUETOOTH, MAC, null, ESCPosService.this);
while (n > 0) {
epsonio.write(commandBytes, i, n > bufferSize ? bufferSize : n, SEND_TIMEOUT);
Thread.sleep(450);
i += bufferSize;
n -= bufferSize;
}
しかし、私はそれが歪んでいるグラフィック印刷するとき: