4

我正在使用 TSC ME240 打印机打印标签。标签设计有公司标志、文字部分和条形码。条形码和文本打印得很好,但没有徽标,这是存储在打印机内存中的 .bmp 图像。

每次打印标签时,都会弹出一条消息“无法打开文件”。

这是我的代码的一部分:

  openport("printerName");
  setup("80 mm", "51 mm", "4", "15", "0", "3 mm", "0");
  clearbuffer();

  //  LOGO
  downloadpcx("logo-bmp.PCX", "logo-bmp.PCX");
  sendcommand("PUTPCX 19,15,\"logo-bmp.PCX\""); 
  printlabel("1", "1");
  closeport();

我也尝试将图像存储在应用程序中,但我仍然收到相同的消息。我想知道是否可能需要更改打印速度?打印机是否有可能因为打印机打印速度太快而无法打印图像?但如果打印速度设置得太低,贴纸可能会燃烧。

编辑:

我将打印机配置为较低的打印速度,但这并没有解决我的问题。

然后我尝试使用他们的示例图像,它打印得很好。我的图像是 5kb,他们的图像是 6kb,所以我知道大小与它没有任何关系。

对此事的任何意见将不胜感激。这里的想法用完了。

4

5 回答 5

2

我从pcx更改为bmp。我还把图像缩小了 1kb。然后我使用 diagtool 将新图像上传到打印机。

除了删除该downloadpcx行并更改PUTPCXPUTBMP.

  openport("printerName");
  setup("80 mm", "51 mm", "4", "15", "0", "3 mm", "0");
  clearbuffer();

  //  LOGO
  sendcommand("PUTBMP 19,15,\"logo-bmp.BMP\""); 
  printlabel("1", "1");
  closeport();

然后它起作用了。

于 2019-03-14T02:00:03.313 回答
1

这是因为图像不是 TSC 打印机支持的 ​​BMP 格式(1 位或 256 位)。在 Paint 中打开图像另存为 BMP,格式为 1 位或 256 位。

于 2019-07-17T05:08:52.850 回答
1

您的代码应如下所示:

PrintTSClabel.openport("PrinterName as in Windows");                                 //Driver name of the printer as in Windows
PrintTSClabel.setup("80", "38", "4", "15", "0", "3", "0");                           //Setup the media size and sensor type info
PrintTSClabel.clearbuffer();                                                         //Clear image buffer

PrintTSClabel.downloadpcx(@"C:\USERS\USER\DOWNLOADS\LOGO-BMP.PCX", "LOGO-BMP.PCX");  //Download PCX file into printer
PrintTSClabel.sendcommand("PUTPCX 10,30,\"LOGO-BMP.PCX\"");                          //Drawing PCX graphic

PrintTSClabel.sendcommand("PRINT 1");                                                //Print labels
PrintTSClabel.closeport();                                                           //Close specified printer driver
于 2016-03-29T18:42:21.647 回答
1

我用下面的代码解决了这个问题:

TSCActivity tscDll = new TSCActivity();
tscDll.openport("00:19:0E:A2:23:DE");
tscDll.setup(100, 60, 4, 15, 0, 3, 0);
tscDll.clearbuffer();
String filePath = Environment.getExternalStorageDirectory().toString() + "/Download";
String fileName = "PrintImg2.bmp";
File mFile = new File(filePath, fileName);
tscDll.sendpicture(200, 200, mFile.getAbsolutePath());
tscDll.printlabel(1, 1);
tscDll.closeport(); 
  • 在您的安卓手机上安装示例应用程序,并使用蓝牙将打印机连接到您的手机。
  • TSCActivity ”是“tscsdk”中的活动类。
  • '00:19:0E:A2:23:DE' 将其替换为您的打印机的 MAC 地址(与打印机配对后,您将在手机的 BT 设置中获得它)
  • 在这里,我将图像保存在手机的下载文件夹中(adb push path_of_img/PrintImg2.bmp /mnt/sdcard/Download)。
  • 图像大小取决于图像的分辨率,您可以更改 setup() 的第一个两个参数(宽度、高度......)以获得可能的最大尺寸。
于 2020-03-05T17:11:11.883 回答
0

我有同样的问题,下面的代码解决了这个问题。

mydll = cdll.LoadLibrary('k:\Work\SCANNER\Printer\TSCLIB_V0201_x64\TSCLIB.dll')
print 'Start Printing.'
mydll.openport("TSC TA300")
mydll.setup("32","25","2","10","0","0","0")
mydll.clearbuffer()

# LABEL TEMPLATE
mydll.sendcommand("SIZE 50.8 mm,25.4 mm")
mydll.sendcommand('GAP 3 mm,0 mm')
mydll.sendcommand('DIRECTION 0')
mydll.sendcommand('CLS')
# Draw Label Image
mydll.sendcommand('BOX 12,12,584.4,282,4,19.2')
mydll.sendcommand("QRCODE 417.6,160,H,4,A,0,\"ABCabc123\"")
mydll.sendcommand("TEXT 48,56,\"2\",0,1,1,\"I'm Testing\"")

# Print
mydll.sendcommand('PRINT 1,1')
mydll.closeport()
print 'Finished Printing.'
于 2014-07-25T12:28:58.090 回答