爱普生TM-T88V格式化

我安装了一台运行Ubuntu Server 12.04的小机器,并直接插入Epson TM-T88V。 起初,我能够打印罚款(使用LP),但自动切刀不工作。 我意识到它只是没有使用驱动程序中包含的正确的PPD文件,所以一旦我设置打印机使用该切割开始工作正常。

但是,一旦我使用正确的PPD文件得到它的文字是打印如此轻,它几乎很难阅读。 当我试图直接将ESC / POS命令传递给它时,它基本上就像我回到了原来的情况(黑暗的文字,没有剪切)。

这实际上是我第一次涉足热敏打印机,所以如果我错过简单的东西,我很抱歉。 我是否完全错误的方式? 任何build议将不胜感激。

我原本是在SuperUser上发布的,但是我想因为打印机在物理上正常工作,这显然是我在编程方面犯的一个错误。

这是我用来打印的命令(它是Node.js)。 我不知道是否值得注意的是,当我写这个应用程序,并从我的MBP工作,我使用lpr而不是lp 。 无论出于何种原因, lpr在服务器上不做任何事情

 var toPrint = "echo '" + "Order for: " + req.body.name + "\n" + "Email: " + req.body.email + "\n\n" + "Food Items Ordered: \n" + foodItems + "\n\nThank you for using WhyWait!' | lp"; // Print the order! var printCmd = exec(toPrint, function (error, stdout, stderr) { if (error !== null) { console.log('exec error: ' + error); } console.log('Order printed!\n'); }); 

这是PPD文件。

 *PPD-Adobe: "4.3" *% Copyright (C) Seiko Epson Corporation 2010. All rights reserved. *% *% Driver for Epson Thermal Printers Series. *FormatVersion: "4.3" *FileVersion: "1.0" *LanguageVersion: English *LanguageEncoding: ISOLatin1 *PCFileName: "TM-T88V.PPD" *Manufacturer: "EPSON" *Product: "(ThermalPrinter)" *ModelName:"EPSON TM-T88V" *ShortNickName:"TM-T88V" *NickName: "EPSON TM-T88V (rastertotmt)" *PSVersion: "(3010.000) 0" *LanguageLevel: "3" *ColorDevice: False *DefaultColorSpace: Gray *FileSystem: False *Throughput: "1" *LandscapeOrientation: Plus90 *VariablePaperSize: True *TTRasterizer: Type42 *cupsVersion: 1.2 *cupsManualCopies: True *cupsModelNumber: 1 *cupsFilter: "application/vnd.cups-raster 0 rastertotmt" *OpenGroup: General/General *%Page size settings. *OpenUI *PageSize/Media Size: PickOne *OrderDependency: 11 AnySetup *PageSize *DefaultPageSize:RP80x297 *PageSize RP80x297/Roll Paper 80 x 297 mm: "<</PageSize[204 841.8]/ImagingBBox null>>setpagedevice" *PageSize RP58x297/Roll Paper 58 x 297 mm: "<</PageSize[141.7 841.8]/ImagingBBox null>>setpagedevice" *CloseUI: *PageSize *OpenUI *PageRegion: PickOne *OrderDependency: 11 AnySetup *PageRegion *DefaultPageRegion:RP80x297 *PageRegion RP80x297/Roll Paper 80 x 297 mm: "<</PageSize[204 841.8]/ImagingBBox null>>setpagedevice" *PageRegion RP58x297/Roll Paper 58 x 297 mm: "<</PageSize[141.7 841.8]/ImagingBBox null>>setpagedevice" *CloseUI: *PageRegion *DefaultImageableArea: RP80x297 *ImageableArea RP80x297/Roll Paper 80 x 297 mm: "0 0 204 841.8" *ImageableArea RP58x297/Roll Paper 58 x 297 mm: "0 0 141.7 841.8" *DefaultPaperDimension: RP80x297 *PaperDimension RP80x297/Roll Paper 80 x 297 mm: "204 841.8" *PaperDimension RP58x297/Roll Paper 58 x 297 mm: "141.7 841.8" *%Custom page size settings. *MaxMediaWidth: "204" *MaxMediaHeight: "5669.2" *NonUIOrderDependency: 100 AnySetup *CustomPageSize *CustomPageSize True: "pop pop pop <</PageSize [ 5 -2 roll ]/ImagingBBox null>>setpagedevice" *ParamCustomPageSize Width: 1 points 72 204 *ParamCustomPageSize Height: 2 points 72 5669.2 *ParamCustomPageSize WidthOffset: 3 points 0 0 *ParamCustomPageSize HeightOffset: 4 points 0 0 *ParamCustomPageSize Orientation: 5 int 0 0 *%Resolution settings. *OpenUI *Resolution/Resolution: PickOne *OrderDependency: 10 AnySetup *Resolution *DefaultResolution: 180x180dpi *Resolution 180x180dpi/180 x 180 dpi: "<</HWResolution[180 180]/cupsRowCount 24>>setpagedevice" *CloseUI: *Resolution *%Head speed settings. *TmtSpeedValue 1: "13" *TmtSpeedValue 2: "9" *TmtSpeedValue 3: "5" *TmtSpeedValue 4: "1" *OpenUI *TmtSpeed/Printing Speed: PickOne *OrderDependency: 10 AnySetup *TmtSpeed *DefaultTmtSpeed: Auto *TmtSpeed Auto/Use the printer settings : "" *TmtSpeed 1/1st (Fast): "" *TmtSpeed 2/2nd: "" *TmtSpeed 3/3rd: "" *TmtSpeed 4/4th (Slow): "" *CloseUI: *TmtSpeed *%Exit feed direction settings. *TmtReverseFeedDirection: False *%Paper reduction settings. *OpenUI *TmtPaperReduction/Paper Reduction: PickOne *OrderDependency: 11 AnySetup *TmtPaperReduction *DefaultTmtPaperReduction: Bottom *TmtPaperReduction Off/None: "" *TmtPaperReduction Top/Top margin: "" *TmtPaperReduction Bottom/Bottom margin: "" *TmtPaperReduction Both/Top & Bottom margins: "" *CloseUI: *TmtPaperReduction *%Paper source settings. *OpenUI *TmtPaperSource/Paper Source: PickOne *OrderDependency: 11 AnySetup *TmtPaperSource *DefaultTmtPaperSource: DocFeedCut *TmtPaperSource DocFeedCut/Document [Feed, Cut]: "" *TmtPaperSource DocFeedNoCut/Document [Feed, NoCut]: "" *TmtPaperSource DocNoFeedCut/Document [NoFeed, Cut]: "" *TmtPaperSource DocNoFeedNoCut/Document [NoFeed, NoCut]: "" *TmtPaperSource PageFeedCut/Page [Feed, Cut]: "" *TmtPaperSource PageFeedNoCut/Page [Feed, NoCut]: "" *TmtPaperSource PageNoFeedCut/Page [NoFeed, Cut]: "" *CloseUI: *TmtPaperSource *CloseGroup: General *OpenGroup: Buzzer Control/Buzzer Control *%Buzzer settings. *OpenUI *TmtBuzzerControl/Buzzer: PickOne *OrderDependency: 11 AnySetup *TmtBuzzerControl *DefaultTmtBuzzerControl: Off *TmtBuzzerControl Off/Not used: "" *TmtBuzzerControl Before/Sounds before printing: "" *TmtBuzzerControl After/Sounds after printing: "" *CloseUI: *TmtBuzzerControl *%Sound pattern settings. *OpenUI *TmtSoundPattern/Sound Pattern: PickOne *OrderDependency: 11 AnySetup *TmtSoundPattern *DefaultTmtSoundPattern: Internal *TmtSoundPattern Internal/Internal buzzer: "" *TmtSoundPattern A/Option buzzer (Pattern A): "" *TmtSoundPattern B/Option buzzer (Pattern B): "" *TmtSoundPattern C/Option buzzer (Pattern C): "" *TmtSoundPattern D/Option buzzer (Pattern D): "" *TmtSoundPattern E/Option buzzer (Pattern E): "" *CloseUI: *TmtSoundPattern *%Buzzer repeat settings. *OpenUI *TmtBuzzerRepeat/Buzzer Repeat: PickOne *OrderDependency: 11 AnySetup *TmtBuzzerRepeat *DefaultTmtBuzzerRepeat: 1 *TmtBuzzerRepeat 1/1: "" *TmtBuzzerRepeat 2/2: "" *TmtBuzzerRepeat 3/3: "" *TmtBuzzerRepeat 5/5: "" *CloseUI: *TmtBuzzerRepeat *CloseGroup: Buzzer Control *OpenGroup: Cash Drawer Control/Cash Drawer Control *%Drawer settings. *OpenUI *TmtDrawer1/Cash Drawer #1: PickOne *OrderDependency: 11 AnySetup *TmtDrawer1 *DefaultTmtDrawer1: Off *TmtDrawer1 Off/Does not open: "" *TmtDrawer1 Before/Open before printing: "" *TmtDrawer1 After/Open after printing: "" *CloseUI: *TmtDrawer1 *OpenUI *TmtDrawer2/Cash Drawer #2: PickOne *OrderDependency: 11 AnySetup *TmtDrawer2 *DefaultTmtDrawer2: Off *TmtDrawer2 Off/Does not open: "" *TmtDrawer2 Before/Open before printing: "" *TmtDrawer2 After/Open after printing: "" *CloseUI: *TmtDrawer2 *CloseGroup: Cash Drawer Control *%Drawer pulse settings. *TmtDrawer1Pulse On: 10 *TmtDrawer1Pulse Off: 100 *TmtDrawer2Pulse On: 10 *TmtDrawer2Pulse Off: 100 *%Pitch of feed settings. *TmtFeedPitch: 360 *%Used command set version. *TmtCommandSetVersion OutputRaster: 2 *%Line number of band. *TmtBandLines: 256 *%Message defines. *TmtMessage ParameterError: "Invalid parameter." *% End 

大多数热敏打印机有两种打印方法:

  1. 正常 (2D) – 如从自由办公室打印
  2. 原始 (通用文本/原始PCL命令) – 如直接从控制台打印原始文件。

您提到的打印机,TM88是用于打印收据的流行热敏打印机; 它可以做到这一点; 它是原始的能力,但有正确的软件可以从其他应用程序打印。 TM88使用的原始语言是ESCP2或更常见的ESC/POS 。 爱普生的所有TM系列打印机均具有ESC/POS功能。

您遇到的麻烦是您正在尝试将原始命令发送给期望某些2D内容的驱动程序。 有几种方法来实现这一点。

  1. 将两台打印机(一台连接到2D驱动程序,一台连接到通用/文本驱动程序 – 在CUPS中称为“原始,通用”)打印到一个,然后打印到另一个。
  2. 了解您正在执行的操作的原始命令。 在这种情况下,通常是:十六进制: 0x1B 0x69 (切纸)
  3. 保持驱动程序安装,但强制原始的方式直接发出命令直接发送到杯子在原始模式使用lpr -o raw与平面文件从文件系统。

奖励:需要踢出钱箱吗? 0x10 0x14 0x01 0x00 0x05 (脉冲/现金抽屉)。 警告,请根据您的ESCP编程指南交叉引用所有原始命令。