如何在 TSC 打印机中打印图像

Posted

技术标签:

【中文标题】如何在 TSC 打印机中打印图像【英文标题】:How to print image in TSC printer 【发布时间】:2014-03-25 20:56:37 【问题描述】:

我正在使用 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,所以我知道大小与它没有任何关系。

我们将非常感谢您对此事的任何意见。这里的想法用完了。

【问题讨论】:

请问您是从哪个环境中执行此操作的,.net 还是 java。你在用什么sdk,你用的是什么控件或库PrintTSClabel 【参考方案1】:

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

除了删除downloadpcx 行并将PUTPCX 更改为PUTBMP 之外,我的代码没有改变。

  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();

然后它起作用了。

【讨论】:

【参考方案2】:

您的代码应如下所示:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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() 的第一个两个参数(宽度、高度......)以获得可能的最大尺寸。

【讨论】:

【参考方案5】:

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

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.'

【讨论】:

以上是关于如何在 TSC 打印机中打印图像的主要内容,如果未能解决你的问题,请参考以下文章

tsc打印机模板怎么编辑环形文字

Java如何调用TSC打印机进行打印详解

Android TSC热敏标签打印机打印

Java调用TSC打印机进行打印

android局域网连接TSC桌面打印机打印

TSC打印机使用教程终极版(转)