问题是这样,最近在用热敏打印机做东西,其中一向可能要涉及到热敏打印机打印二维码的问题:
并口打印(USB映射为并口):
当次打印二维码的的时候图片总有很多白线。
热敏打印机不放纸张的时候选择打印二维码提示完成后,再把纸张放进去,一次性来的码就没有(基本没有)白线。
当我打开并口一次性执行完再关闭并口的时候就不打印了,热敏打印机跟据接收指令一样。
请问该怎么解决.
if (!SetLineSpace(0))
{
return false;
}
if (!Alignment("left"))
{
return false;
}
Bitmap bmp = new Bitmap(path);
int width = bmp.Width;
if (0 != width % 4)
{
int extra = 4 - width % 4;
width += extra;
}
int height = bmp.Height;
byte[] data = new byte[3];
//byte[] data = {0x00};
byte[] bmpModel = {0x1B, 0x2A, (byte)'\x21',(byte)(width % 256), (byte)(width / 256)};
Color pixel;
//if (!OpenPrinter())
//{
// return false;
//}
for (int i = 0; i != (height / 24 + 1); ++i)
{
if (!SetBitmapMode(24, width))
{
return false;
}
//if (!PrinterCmd(bmpModel))
//{
// return false;
//}
for (int j = 0; j != width; ++j)
{
for (int k = 0; k != 24; ++k)
{
if (((i * 24) + k) < bmp.Height)
{
pixel = bmp.GetPixel(j, (i * 24) + k);
if (pixel.R == 0)
{
data[k / 8] += (byte)(128 >> (k % 8));
}
}
}
if (!WritePixel(data))
{
return false;
}
//if (!PrinterCmd(data))
//{
// return false;
//}
data[0] = 0x00;
data[1] = 0x00;
data[2] = 0x00;
}
//byte[] cmd = { 0x0A };
//if (!PrinterCmd(cmd))
//{
// return false;
//}
if (!PrintNull())
{
return false;
}
}
//if (!ClosePrinter())
//{
// return false;
//}
if (!PrintNull())
{
return false;
}
bmp.Dispose();
return true;
楼主,您这使用的打印方法是POS_S_DownloadAndPrintBmp吗?