Linux Software to print with LabelManager PnP from Dymo
Project description
dymoprint
Linux Software to print with LabelManager PnP from Dymo
- First version from Sebastian Bronner: https://sbronner.com/dymoprint.html
- Cloned to Github and formerly maintained by @computerlyrik: https://github.com/computerlyrik/dymoprint
- Currently maintained by @maresb
Features
- Works on python 3.7 and up
- Supports text printing
- Supports qr code printing
- Supports barcode printing
- Supports image printing
- Supports combined barcode / qrcode and text printing
- GUI Application based on PyQt6 - expanded combinations
HELP WANTED
Test the latest experimental version and report back if it works for you.
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
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
Configuration
For ubuntu based distributions
Use udev and modeswitch configurations to work with the LabelManager PNP. modeswitch changes the mode (and USB Id) from mass storage device to printer device.
sudo cp 91-dymo-labelmanager-pnp.rules /etc/udev/rules.d/
sudo cp dymo-labelmanager-pnp.conf /etc/usb_modeswitch.d/
and restart services with:
sudo systemctl restart udev.service
Finally, physically disconnect and reconnect the LabelManager PnP.
For arch based distributions
(should also work for manjaro, but not tested yet) use udev and modeswitch configurations to work with the LabelManager PNP. modeswitch changes the mode (and USB Id) from mass storage device to printer device.
Install usb_modeswitch at first:
sudo pacman -S usb_modeswitch
if the /etc/usb_modeswitch.d/ folder was not created at installation do:
sudo mkdir /etc/usb_modeswitch.d/
now copy the udev and usb_modswitch configs:
sudo cp 91-dymo-labelmanager-pnp.rules /etc/udev/rules.d/
sudo cp dymo-labelmanager-pnp.conf /etc/usb_modeswitch.d/
and restart services with:
sudo udevadm control --reload
you might need to change the permissions of the hid device (dymoprint will tell if it is the case):
sudo chown your_user:users /dev/hidraw0
Finally, physically disconnect and reconnect the LabelManager PnP.
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
- Text Node:
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
Example 2: two images + text with frame, white on red
Example 3: barcode, text, image
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 GUIfor more options use command line parser frameworkallow selection of font with command line optionsallow font size specification with command line option (points, pixels?)provide an option to show a preview of what the label will look likeread and write a .dymoprint file containing user preferencesprint barcodesprint graphicsplot frame around label- vertical print
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dymoprint-2.0.0b0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15508a900c712ba3a402da598528cad42cfac0e7dbeb1b1f4767a31d8c876b1a |
|
MD5 | a1a9005aea119129f74b27b49b342c6c |
|
BLAKE2b-256 | bfe18fdc51da3e14d329b22afa170c934d4bf41980b6e13e8eb7e2b5ec30b347 |