ptprint

command module
v0.0.0-...-a083912 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 3, 2023 License: MIT Imports: 15 Imported by: 0

README

ptprint

A Go server for printing labels on a Brother P-touch label printers (at least the PT-2430PC and PT-P700).

Prerequisites

  • A compatible Brother printer connected by USB to some Linux/Unix machine. ImageMagick's convert utility. (apt-get install imagemagick on Debian)

Usage

go build
./ptprint.go --dev=/dev/usb/lp1 --port=40404 --convert=/usr/bin/convert   # All flags optional, these are the defaults

Then visit http://your-machine:40404, enter text, click Preview, once happy, click Print.

udev

This bit is entirely optional, but I've done the following to make the printer accessible by a normal user. First, I created /etc/udev/rules.d/99-printer.rules, then I added this content:

SUBSYSTEM=="usbmisc", ATTRS{manufacturer}=="Brother", ATTRS{product}=="PT-2430PC", MODE="0666"

Swap the value of ATTRS for your model. This will make the printer's device world-writeable, meaning any user can access it.

Auto-start

Want to get really fancy? Use the included ptprint.sh and start_ptprint.sh. To use them, add RUN+="sudo -u <user> /path/to/ptprint/ptprint.sh" to the previously-created 99-printer.rules. When the printer is connected or turned on, ptprint will start automatically.

Weaknesses

  • Much of this is guesswork. As far as I can tell, Brother doesn't produce a reference for this printer.
  • The (hacky) HTML production is currently one big XSS vulnerability. This isn't a problem for me, but might be for you.

Disclaimer

I am not associated in any way with Brother.

Author

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL