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

时间:2014-02-24 09:29:42

标签: image printing barcode thermal-printer barcode-printing

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

对此事项的任何意见都将受到高度赞赏。这里没有想法。

5 个答案:

答案 0 :(得分: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(); 
  • 在您的Android手机上安装示例应用程序,然后使用蓝牙将打印机与手机连接。
  • ' TSCActivity '是'tscsdk'中的活动类。
  • “ 00:19:0E:A2:23:DE”替换为打印机的MAC地址(与打印机配对后,将通过手机的BT设置获取它)
  • 在这里,我将图像保存在手机的“下载”文件夹中(adb push path_of_img / PrintImg2.bmp / mnt / sdcard / Download)。
  • 图像大小取决于图像的分辨率,您可以更改setup()的第一个参数(宽度,高度......)以获取最大尺寸。

答案 1 :(得分: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.'

答案 2 :(得分:0)

您的代码应如下所示:

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 :(得分:0)

我刚才又看到了这个问题,我想我会分享所做的工作。我希望这会对外面的人有所帮助。

首先,我从使用pcx更改为bmp只是因为我发现它更容易。我还使图像很小,例如1kb,b / c我还是在打印一个小的徽标。然后,我使用diagtool将新图像上传到打印机。

除了删除<?php include_once '../includes/db.inc.php'; $sql = "SELECT c.prm_nome, c.apelido, c.nmr_tlm, c.mail, c.nif_id, f.flight_id FROM clients c JOIN flights f ON f.nif_id = c.nif_id ORDER BY c.nif_id ASC;"; $result = mysqli_query($conn, $sql) or die(mysqli_error($conn)); $resultCheck = mysqli_num_rows($result); if ($resultCheck > 0) { while ($row = mysqli_fetch_assoc($result)) { $first = $row["prm_nome"]; $last = $row["apelido"]; $phone = $row['nmr_tlm']; $email = $row['mail']; $nif = $row['nif_id']; $flight = $row['flight_id']; echo '<tr>'; echo '<td><a href="detail.php?id='. $nif . '">'.$nif.'</a></td>'; echo '<td>'.$first.'</td>'; echo '<td>'.$last.'</td>'; echo '<td>'.$phone.'</td>'; echo '<td>'.$email.'</td>'; echo '<td><a href="../flights/detail.php?id='. $flight . '">'.$flight.'</a></td>'; echo '</tr>'; } } ?> 行并将downloadpcx更改为PUTPCX之外,我的代码实际上并没有太大变化。

PUTBMP

然后它就起作用了。

答案 4 :(得分:0)

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