爱普生TM-T88V格式化

2023-12-14

我设置了一台运行 Ubuntu Server 12.04 的小机器,并直接插入 Epson TM-T88V。起初我能够很好地打印(使用 lp),但自动切纸器无法工作。我意识到它只是没有使用驱动程序中包含的正确 PPD 文件,因此一旦我将打印机设置为使用该切割就开始正常工作。

然而,一旦我使用正确的 PPD 文件得到它,文本打印得太浅,几乎难以阅读。当我尝试将 ESC/POS 命令直接传递给它时,基本上就像我回到了原始情况(深色文本,无剪切)。

这确实是我第一次涉足热敏打印机,所以如果我错过了一些简单的东西,我很抱歉。我是否以完全错误的方式处理这个问题?任何建议将不胜感激。

我最初将其发布在 SuperUser 上,但我想由于打印机物理工作正常,这显然是我在编程方面犯的错误。

这是我用来打印的命令(它是 Node.js)。我不知道是否值得注意的是,当我编写此应用程序并让它在我的 MBP 上运行时,我使用的是lpr not lp。无论出于何种原因,lpr不做anything在服务器上。

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. Normal(2D) - 例如从 Libre Office 打印
  2. Raw(通用文本/原始 PCL 命令)- 例如直接从控制台打印原始文件。

您提到的打印机,TM-T88是流行的热敏打印机,用于打印收据;它可以同时做到这两点;它具有原始功能,但使用正确的软件可以从其他应用程序进行打印。 TM-T88 使用的原始语言是ESC/POS。 Epson 的所有 TM 系列打印机均ESC/POS有能力的。

您遇到的麻烦是您试图将原始命令发送到需要一些 2D 内容的驱动程序。有几种方法可以实现这一目标。

  1. 映射两台打印机(一台映射到 2D 驱动程序,一台映射到通用/文本驱动程序——这在 CUPS 中称为“原始、通用”)先打印到一台,然后再映射到另一台。
  2. 了解您正在执行的操作的原始命令。在这种情况下,它通常是: 十六进制:0x1B 0x69(剪纸)
  3. 保持安装驱动程序,但无论如何通过在原始模式下直接向 cups 发出命令来强制原始lpr -o raw使用文件系统中的平面文件。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爱普生TM-T88V格式化 的相关文章

随机推荐

  • iOS 等宽自定义字体

    我的 Xcode 7 iOS 9 目标项目中包含自定义字体 我想让字体变成等宽字体 我尝试了这个 但没有成功 let originalFont UIFont name My Custom Font size 18 let originalF
  • 健康损失的迷宫中的最短路径

    假设您有一个由 2D 矩阵表示的地下城 您有一个起点 S x1 y1 和一个终点 E x2 y2 在此过程中 一些细胞中会有一个数字 这些数字会从您的健康得分中减去 其他细胞是你无法跨越的障碍 你一开始有 5 点生命值 你需要找到从 S 到
  • 处理带有空格的名称

    我的 Puppet 代理是 Windows Server 2012 我正在尝试向 AD 用户授予数据库权限 如果我尝试将权限分配给名称中不包含任何空格的 AD 用户 则该脚本可以正常工作 早些时候 不带空格的用户名也不起作用 但是当我添加额
  • 如何将highcharts中的毫秒级json数据格式化为日期格式?

    我从json获取日期数组为1420185600000 1420531200000 1420617600000 1420704000000 1420790400000 1420876800000 如何格式化它以在高图表的 X 轴标签中显示正确
  • 无法在android的服务中启动计时器

    我不知道发生了什么问题 我无法在我的服务中启动计时器 遵循代码 public class BkgService extends Service private Timer ServUpdTimer new Timer private sta
  • 使用 eclipse 插件将修改后的 AST 保存在新文件中

    我有一个 Eclipse 插件代码来操作项目 工作空间中的类 smcho Hello 我可以创建一个 CompilationUnit 并对其进行一些修改 但我需要将结果保存在不同的文件中以检查两个版本之间的差异 这是我获取 Compilat
  • 表格布局固定渲染如何?

    表格布局固定渲染如何 根据 17 5 2 1 固定表格布局 来自 W3 在固定表格布局算法中 每列的宽度确定如下 1 width 属性的值不是 auto 的列元素设置该列的宽度 2 否则 第一行中 width 属性的值不是 auto 的单元
  • Guava 前提条件 checkNull、checkArgument

    我想检查基类的先决条件 以便我知道子类型将始终使用有效的构造函数参数 让我们以一个构造函数为例 需要 2 个或更多参数 接受不同类型的参数 对于一个参数 它执行多次检查 例如 String 不为 nulland不是空的 在这种情况下 如何最
  • 文件签名验证

    我使用了 Mark Russinovich 编写的实用程序 它用于验证文件签名 任何人都知道如何做到这一点 我知道这不是一个简单的代码 但我只需要一些提示 API 步骤 指南图 只是为了朝着正确的方向前进 我读了太多关于 cryptAPI
  • Object.ReferenceEquals 从未命中

    谁能告诉我为什么以下条件不成立 List
  • Ruby 中方法名称末尾的问号是什么意思?

    Ruby 中问号运算符的用途是什么 有时会出现这样的情况 assert product valid 有时它在一个if构造 它是一种代码风格约定 它指示方法返回布尔值 true 或 false 或指示 true 值 或 truthy 值 的对
  • 错误膨胀类片段 |片段没有创建视图

    我遇到这个问题 android view InflateException 二进制 XML 文件行 31 膨胀类片段时出错 片段 com myapp mgm QueryFragment 未创建视图 此问题仅在平板电脑模式下发生 如果应用程序
  • 创建类对象时,抛出错误

    class A constructor this name A M1 return M1 class B extends A constructor this id B M2 return M2 var b new B output Ref
  • 具有 Passport-local 策略的 Composer-rest-server

    我无法找到一个有效的解决方案来在composer rest server 中使用本地策略进行身份验证 事实上 只有一种可行的解决方案是使用 github 我尝试将 COMPOSER PROVIDERS 设置为 export COMPOSER
  • Pandas read_html 导致 TypeError

    我正在使用 bs4 解析 html 页面并提取表格 下面给出示例表格 我试图将其加载到 pandas 中 但是当我调用pddataframe pd read html LOTable skiprows 2 flavor bs4 我收到下面列
  • SQL Server 全文搜索转义字符?

    我正在执行 MS SQL Server 全文搜索查询 我需要转义特殊字符 以便可以搜索包含特殊字符的特定术语 是否有内置函数可以转义全文搜索字符串 如果没有 你会怎么做 坏消息 没有办法 好消息 您不需要它 因为无论如何它都没有帮助 我在我
  • Android 无法实例化活动:在路径上找不到类

    我已经将项目导入到 Eclipse 中 当我尝试运行它时 会抛出以下异常 java lang RuntimeException Unable to instantiate activity ComponentInfo com polygra
  • WSO2 API 管理器 - 向公众公开发布者和商店 URL

    我在用着WSO2 API 管理器用于创建和管理开发者社区 据我所知 API 管理器是在 WSO2 Carbon Server 上驱动的 该服务器又在 Apache Tomcat 上运行 到目前为止 我可以毫无问题地运行 WSO2 API 管
  • 如何在我的应用程序中包含 64 位和 32 位本机代码

    我无法将我的应用程序上传到 Playstore 并出现此错误 我还构建了 Android App Bundle 来上传应用程序 但再次出现此错误 此版本不符合 Google Play 64 位要求 以下 APK 或 App Bundle 可
  • 爱普生TM-T88V格式化

    我设置了一台运行 Ubuntu Server 12 04 的小机器 并直接插入 Epson TM T88V 起初我能够很好地打印 使用 lp 但自动切纸器无法工作 我意识到它只是没有使用驱动程序中包含的正确 PPD 文件 因此一旦我将打印机