• Stars
    star
    150
  • Rank 247,323 (Top 5 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 10 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Linux Software to print with LabelManager PnP from Dymo

dymoprint

GitHub Actions (Tests) PyPI version

Linux Software to print with LabelManager PnP from Dymo

Features

  • Text printing
  • QR code printing
  • Barcode printing
  • Image printing
  • Combinations of the above
  • GUI Application based on PyQt6

Experimental

  • LabelManager 280
  • LabelManager 420P
  • LabelManager Wireless PnP
  • Windows support by setting the driver to WinUSB using Zadig

For more information about experimental device support, see #44.

Installation

It is recommended to install dymoprint with pipx so that it runs in an isolated virtual environment:

pipx install dymoprint

In case pipx is not already installed, it can be installed on Ubuntu/Debian with

sudo apt-get install pipx

or on Arch with

sudo pacman -S python-pipx

By default, users don't have permission to access generic USB devices, so you will need to add a rule. The first time you run dymoprint, it will give instructions about how to do this:

$ dymoprint "Hello world"
...
You do not have sufficient access to the device. You probably want to add the a udev rule in /etc/udev/rules.d with the following command:

  echo 'ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0922", ATTRS{idProduct}=="1001", MODE="0666"' | sudo tee /etc/udev/rules.d/91-dymo-1001.rules
...

Testing experimental features

To install a test branch, by user ghuser for the branch branchname, run

pipx install --force git+https://github.com/ghuser/dymoprint@branchname

To revert back to the release version, run

pipx install --force dymoprint

To install a particular release version, specify dymoprint==x.y.z instead of dymoprint in the above command.

Development

To install for development, fork and clone this repository, and run (ideally within a venv):

pip install --editable .

This project uses pre-commit to run some checks before committing. After installing the pre-commit executable, please run

pre-commit install

Font management

Fonts are managed via dymoprint.ini. This should be placed in your config folder (normally ~/.config). An example file is provided here.

You may choose any TTF Font you like

You may edit the file to point to your favorite font.

For my Arch-Linux System, fonts are located at e.g.

/usr/share/fonts/TTF/DejaVuSerif.ttf

It is also possible to Download a font from http://font.ubuntu.com/ and use it.

Modes

Print text

dymoprint MyText

Multilines will be generated on whitespace

dymoprint MyLine MySecondLine # Will print two Lines

If you want whitespaces just enclose in " "

dymoprint "prints a single line"

Print QRCodes and Barcodes

dymoprint --help

Print Codes and Text

Just add a text after your qr or barcode text

dymoprint -qr "QR Content" "Cleartext printed"

Picture printing

Any picture with JPEG standard may be printed. Beware it will be downsized to tape.

dymoprint -p mypic.jpg ""

Take care of the trailing "" - you may enter text here which gets printed in front of the image

GUI

Run DymoPrint GUI

dymoprint_gui

Features

  • Live preview
  • margin settings
  • type size selector
  • visualization of tape color schema
  • the ability to freely arrange the content using the "Node" list
    • Text Node:
      • payload text - can be multi-line
      • font selector
      • font scaling - the percentage of line-height
      • frame border width steering
    • Qr Node:
      • payload text
    • BarCode Node:
      • payload text
      • codding selector
    • Image Node:
      • path to file

Nodes can be freely arranged, simply drag&drop rows on the list. To add or delete the node from the label - right-click on the list and select the action from the context menu. To print - click the print button.

Example

Example 1: multiple text + QR code

alt

Example 2: two images + text with frame, white on red

alt

Example 3: barcode, text, image

alt

Development

Besides the travis-ci one should run the following command on a feature implemention or change to ensure the same outcome on a real device:

dymoprint Tst && \
dymoprint -qr Tst && \
dymoprint -c code128 Tst && \
dymoprint -qr qrencoded "qr_txt" && \
dymoprint -c code128 Test "bc_txt"

ToDo

  • (?)support multiple ProductIDs (1001, 1002) -> use usb-modeswitch?
  • put everything in classes that would need to be used by a GUI
  • for more options use command line parser framework
  • allow selection of font with command line options
  • allow font size specification with command line option (points, pixels?)
  • provide an option to show a preview of what the label will look like
  • read and write a .dymoprint file containing user preferences
  • print barcodes
  • print graphics
  • plot frame around label
  • vertical print
  • refactor code with better abstractions
  • pixel fonts
  • web interface

More Repositories

1

openhab2-addon-hs110

OpenHAB Addon for TP-Link HS100/HS110 (Development Project)
Java
7
star
2

chef-prosody

Chef cookbook for prosody | Category: Applications
Ruby
7
star
3

MCP23017-RPi-python

Library for Raspberry interfacing with MCP23017 (e.g. on a shield)
Python
6
star
4

selenium-spring-boot-example

Example of packaging a Selenium Test with HTMLLauncher with use of spring-boot
Java
6
star
5

chef-caddy

Chef cookbook for caddy | Category: Applications
Ruby
5
star
6

ansible-kopano

An ansible role to install kopano enterprise
Python
5
star
7

chef-zarafa

Chef cookbook for setting up zarafa | Category: Applications
Ruby
4
star
8

beem-muc

Fork of beem repository for Multi User Chat integration
Java
4
star
9

chef-bacula

Chef cookbook bacula | Category: Applications
Ruby
3
star
10

chef-liquid-feedback

Chef cookbook for setting up a liquid feedback server | Category: Applications
Ruby
3
star
11

chef-bind9-easy

A easy chef cookbook to configure bind9 | Category: Applications
Ruby
3
star
12

chef-etherpad

Cookbook for etherpad and etherpad-lite | Category: Applications
Ruby
2
star
13

generatedata

Docker packaging of generatedata.com
2
star
14

haqbus-avr-lib

Library for using package based haqbus
C
1
star
15

haqbus-protocol-simulator

script for simulating a message bus in python
Python
1
star
16

chef-mozilla-firefox-sync

Chef cookbook setting up mozilla sync 1.5 server | Category: Applications
Ruby
1
star
17

chef-sparkleshare

Chef cookbook for setting up sparkleshare dashboard | Category: Applications
Ruby
1
star
18

chef-seafile

Chef cookbook for seafile | Category: Applications
Ruby
1
star
19

ansible-bitbucket_backup

Ansible Role for backup Bitbucket Repositories by User
Python
1
star
20

liquid_feedback_webapp

Feature complete liquid_feedback webapp
1
star
21

chef-mozilla-sync

Chef cookbook setting up mozilla sync 1.5 server | Category: Applications
Ruby
1
star
22

haqbus-hardware

shield for pie
1
star