This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

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.

Release History

Release History

0.4.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
linemode-0.4.0.tar.gz (10.5 kB) Copy SHA256 Checksum SHA256 Source Mar 16, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting