Python library for communicating with line-mode thermal printers. Currently works only with printers that support the star line mode protocol but adding support for other similar printers should be possible.
Also provides a module for compiling an xml description of a page to a list of commands.
Developed at Newman Online Ltd and open sourced with permission.
Examples
Basic, without template system:
from linemode import open_printer
printer = open_printer('star+lpt:///dev/usb/lp0')
printer.run_commands([
('fontsize-large'),
('select-bold'),
('write', "Hello world\n"),
('cut-through'),
])
Running templates:
from linemode import open_printer
from linemode.renderers import xml
printer = open_printer('star+lpt:///dev/usb/lp0')
printer.run_commands(xml.render("""
<document>
<line>
<bold>Hello world</bold>
</line>
</document>
"""))
With jinja:
from jinja2 import Template
from linemode import open_printer
from linemode.renderers import xml
printer = open_printer('star+lpt:///dev/usb/lp0')
# jinja2 template
template = """
<document>
{% for potatoes in [1, 2, 3, 4] %}
<line>
{{ potatoes }} potato
</line>
{% endfor %}
</document>
"""
# line mode printer document
document = Template(template).render()
# iterator of generic printer instructions
commands = xml.render(document)
# printer specific compiled representation
program = printer.compile(commands)
printer.execute(program)
Command Language
Printer drivers accept an iterable of command tuples. Tuples should contain a command name followed by any number of primitive arguments. For convenience, a tuple containing just a command name can be replaced with the command name.
The following commands are supported:
- reset
Reset everything to it’s initial state.
- select-bold/cancel-bold
Toggle printing bold text.
- select-highlight/cancel-highlight
Toggle printing white on black instead of black on white.
- fontsize-small/fontsize-medium/fontsize-large
Set the line height for the current line and all following lines. If not sent at the beginning of a new line then behaviour is undefined. Characters should remain the same width.
Default: fontsize-small
- write <string>
Print the contents of a unicode string. If any characters are unsupported, they will be replaced with ‘?’.
- barcode <style> <data>
TODO
- newline
Flush the line buffer and start a new line.
- cut-through
Create a cut at the next mark
- cut-partial
Create a perforated cut at the next mark
- cut-through-immediate
Create a cut at the current cursor position
- cut-partial-immediate
Create a perforated cut at the current cursor position
Bugs
Please post any problems or feature requests using the issue tracker. Pull requests welcome. New drivers would be greatly appreciated.
Metadata
Release files for linemode 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| linemode-0.4.0.tar.gz | 10.5 kB | Details |
Release files / linemode-0.4.0.tar.gz
| Download URL | linemode-0.4.0.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a8375c8694fa96f919b32b33029d22f98ba1685cc64310e85b771fa1dfce8084
|
|
BLAKE2b-256 checksum How to use checksums |
1ddb5b4e327cbeee1d6c91b1763306912a2cb7995c370d39cf6c9dc6f72aec02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |