如何在热敏打印机纸上打印水平线?
在HTML5中,我们用<hr>
标签来画一条横线。现在,我想通过Javascript
把数据发送到一个Python项目,以便在热敏打印机上打印出来:
let data = "Prestation : steak \n";
data += "Quantite : 3 \n";
data += // here I want to draw a horizontal line
data += "Prestation : coca \n";
data += "Quantite : 1";
$.post("localhost:5000/print", JSON.stringify({"printer": "some_printer_name", "payload": data}), function(response) {
...
});
下面是Python的代码:
文件 printing.py:
import logging
import win32print
import win32ui
import win32con
class Printing(object):
printer = None
# Constructor
def __init__(self, printer):
self.printer = printer
@staticmethod
def print(printer_name, text):
try:
printer_handle = win32print.OpenPrinter(printer_name)
dc = win32ui.CreateDC()
dc.CreatePrinterDC(printer_name)
dc.StartDoc(text)
dc.StartPage()
dc.TextOut(10, 10, text)
dc.EndPage()
dc.EndDoc()
win32print.ClosePrinter(printer_handle)
return True
except:
logging.info('Error occured during printing')
return False
finally:
pass
文件 app.py 在后台运行,等待来自Javascript的调用:
import logging
from flask import Flask, request, jsonify, make_response
from printing import Printing
app = Flask(__name__)
@app.route('/')
def index():
return 'If you see this, it means the printer service is up and running !'
@app.route('/print', methods=["POST"])
def print():
printer_name = request.json['printer']
data = request.json['payload']
result = Printing.print(printer_name, data)
if result:
response = make_response(
jsonify(
{"message": str("Printing success")}
),
200,
)
response.headers["Content-Type"] = "application/json"
return response
else:
response = make_response(
jsonify(
{"message": str("Printing failed"), "severity": "error"}
),
500,
)
response.headers["Content-Type"] = "application/json"
return response
if __name__ == '__main__':
app.run(debug=True)
那么,如何编写横线的代码呢?
1 个回答
0
请看下面修改过的JavaScript代码,它包含了一串短横线字符("-"
),用来表示一条线。这串字符是通过POST请求发送到Python后台的数据。Python代码使用win32print
库来接收这些数据,并将其发送到指定的打印机。希望这对你有帮助。
let data = "Prestation : steak \n";
data += "Quantite : 3 \n";
data += "--------------------------------\n"; // This will be your horizontal line
data += "Prestation : coca \n";
data += "Quantite : 1";
$.post("http://localhost:5000/print", JSON.stringify({"printer": "some_printer_name", "payload": data}), function(response) {
// Handle response
});