Name | dymoprint JSON |
Version |
2.3.0
JSON |
| download |
home_page | |
Summary | Linux Software to print with LabelManager PnP from Dymo |
upload_time | 2023-11-19 16:48:33 |
maintainer | |
docs_url | None |
author | |
requires_python | <4,>=3.7 |
license | |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# dymoprint
[![GitHub Actions (Tests)](https://github.com/computerlyrik/dymoprint/workflows/Tests/badge.svg)](https://github.com/computerlyrik/dymoprint)
[![PyPI version](https://img.shields.io/pypi/v/dymoprint.svg)](https://pypi.org/project/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
* Text printing
* QR code printing
* Barcode printing
* Image printing
* Combinations of the above
* GUI Application based on PyQt6
### Experimental
* LabelManager PC
* LabelPoint 350
* LabelManager 280
* LabelManager 420P
* LabelManager Wireless PnP
* Windows support by setting the driver to WinUSB using [Zadig](https://zadig.akeo.ie/)
For more information about experimental device support, see [#44](https://github.com/computerlyrik/dymoprint/issues/44).
## Installation
It is recommended to install dymoprint with [pipx](https://pypa.github.io/pipx/) so that it runs in an isolated virtual environment:
```bash
pipx install dymoprint
```
In case pipx is not already installed, it can be installed on Ubuntu/Debian with
```bash
sudo apt-get install pipx
```
or on Arch with
```bash
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:
```bash
$ 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
```bash
pipx install --force git+https://github.com/ghuser/dymoprint@branchname
```
To revert back to the release version, run
```bash
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):
```bash
pip install --editable .
```
This project uses [pre-commit](https://pre-commit.com/) to run some checks before committing.
After installing the `pre-commit` executable, please run
```bash
pre-commit install
```
## Font management
Fonts are managed via [dymoprint.ini](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.
```bash
/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](doc/DymoPrint_example_1.png)
Example 2: two images + text with frame, white on red
![alt](doc/DymoPrint_example_2.png)
Example 3: barcode, text, image
![alt](doc/DymoPrint_example_3.png)
## 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:
```bash
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
Raw data
{
"_id": null,
"home_page": "",
"name": "dymoprint",
"maintainer": "",
"docs_url": null,
"requires_python": "<4,>=3.7",
"maintainer_email": "Ben Mares <services-dymoprint@tensorial.com>",
"keywords": "",
"author": "",
"author_email": "\"Sebastian J. Bronner\" <waschtl@sbronner.com>",
"download_url": "https://files.pythonhosted.org/packages/18/18/fd3f6cd6cf6bb178638cb93e2dd5bb2562c1ea6381ab187f9e0ab8dce9c7/dymoprint-2.3.0.tar.gz",
"platform": null,
"description": "# dymoprint\n\n[![GitHub Actions (Tests)](https://github.com/computerlyrik/dymoprint/workflows/Tests/badge.svg)](https://github.com/computerlyrik/dymoprint)\n[![PyPI version](https://img.shields.io/pypi/v/dymoprint.svg)](https://pypi.org/project/dymoprint/)\n\nLinux Software to print with LabelManager PnP from Dymo\n\n* First version from Sebastian Bronner: <https://sbronner.com/dymoprint.html>\n* Cloned to Github and formerly maintained by @computerlyrik: <https://github.com/computerlyrik/dymoprint>\n* Currently maintained by @maresb\n\n## Features\n\n* Text printing\n* QR code printing\n* Barcode printing\n* Image printing\n* Combinations of the above\n* GUI Application based on PyQt6\n\n### Experimental\n\n* LabelManager PC\n* LabelPoint 350\n* LabelManager 280\n* LabelManager 420P\n* LabelManager Wireless PnP\n* Windows support by setting the driver to WinUSB using [Zadig](https://zadig.akeo.ie/)\n\nFor more information about experimental device support, see [#44](https://github.com/computerlyrik/dymoprint/issues/44).\n\n## Installation\n\nIt is recommended to install dymoprint with [pipx](https://pypa.github.io/pipx/) so that it runs in an isolated virtual environment:\n\n```bash\npipx install dymoprint\n```\n\nIn case pipx is not already installed, it can be installed on Ubuntu/Debian with\n\n```bash\nsudo apt-get install pipx\n```\n\nor on Arch with\n\n```bash\nsudo pacman -S python-pipx\n```\n\nBy default, users don't have permission to access generic USB devices, so you will\nneed to add a rule. The first time you run `dymoprint`, it will give instructions\nabout how to do this:\n\n```bash\n$ dymoprint \"Hello world\"\n...\nYou 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:\n\n echo 'ACTION==\"add\", SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"0922\", ATTRS{idProduct}==\"1001\", MODE=\"0666\"' | sudo tee /etc/udev/rules.d/91-dymo-1001.rules\n...\n```\n\n## Testing experimental features\n\nTo install a test branch, by user `ghuser` for the branch `branchname`, run\n\n```bash\npipx install --force git+https://github.com/ghuser/dymoprint@branchname\n```\n\nTo revert back to the release version, run\n\n```bash\npipx install --force dymoprint\n```\n\nTo install a particular release version, specify `dymoprint==x.y.z` instead of `dymoprint` in the above command.\n\n## Development\n\nTo install for development, fork and clone this repository, and run (ideally within a venv):\n\n```bash\npip install --editable .\n```\n\nThis project uses [pre-commit](https://pre-commit.com/) to run some checks before committing.\nAfter installing the `pre-commit` executable, please run\n\n```bash\npre-commit install\n```\n\n## Font management\n\nFonts are managed via [dymoprint.ini](dymoprint.ini). This should be placed in your\nconfig folder (normally `~/.config`). An example file is provided here.\n\nYou may choose any TTF Font you like\n\nYou may edit the file to point to your favorite font.\n\nFor my Arch-Linux System, fonts are located at e.g.\n\n```bash\n/usr/share/fonts/TTF/DejaVuSerif.ttf\n```\n\nIt is also possible to Download a font from\n<http://font.ubuntu.com/> and use it.\n\n## Modes\n\n### Print text\n\n```dymoprint MyText```\n\nMultilines will be generated on whitespace\n\n```dymoprint MyLine MySecondLine # Will print two Lines```\n\nIf you want whitespaces just enclose in \" \"\n\n```dymoprint \"prints a single line\"```\n\n### Print QRCodes and Barcodes\n\n```dymoprint --help```\n\n### Print Codes and Text\n\nJust add a text after your qr or barcode text\n\n```dymoprint -qr \"QR Content\" \"Cleartext printed\"```\n\n### Picture printing\n\nAny picture with JPEG standard may be printed. Beware it will be downsized to tape.\n\n```dymoprint -p mypic.jpg \"\"```\n\nTake care of the trailing \"\" - you may enter text here which gets printed in front of the image\n\n## GUI\n\n### Run DymoPrint GUI\n\n```dymoprint_gui```\n\n\n### Features\n* Live preview\n* margin settings\n* type size selector\n* visualization of tape color schema\n* the ability to freely arrange the content using the \"Node\" list\n * Text Node:\n * payload text - can be multi-line\n * font selector\n * font scaling - the percentage of line-height\n * frame border width steering\n * Qr Node:\n * payload text\n * BarCode Node:\n * payload text\n * codding selector\n * Image Node:\n * path to file\n\nNodes can be freely arranged, simply drag&drop rows on the list.\nTo add or delete the node from the label - right-click on the list and select the action from the context menu.\nTo print - click the print button.\n\n### Example\n\nExample 1: multiple text + QR code\n\n![alt](doc/DymoPrint_example_1.png)\n\nExample 2: two images + text with frame, white on red\n\n![alt](doc/DymoPrint_example_2.png)\n\nExample 3: barcode, text, image\n\n![alt](doc/DymoPrint_example_3.png)\n\n\n\n## Development\n\nBesides the travis-ci one should run the following command on a feature implemention or change to ensure the same outcome on a real device:\n\n```bash\ndymoprint Tst && \\\ndymoprint -qr Tst && \\\ndymoprint -c code128 Tst && \\\ndymoprint -qr qrencoded \"qr_txt\" && \\\ndymoprint -c code128 Test \"bc_txt\"\n```\n\n### ToDo\n\n* ~~(?)support multiple ProductIDs (1001, 1002) -> use usb-modeswitch?~~\n* ~~put everything in classes that would need to be used by a GUI~~\n* ~~for more options use command line parser framework~~\n* ~~allow selection of font with command line options~~\n* ~~allow font size specification with command line option (points, pixels?)~~\n* ~~provide an option to show a preview of what the label will look like~~\n* ~~read and write a .dymoprint file containing user preferences~~\n* ~~print barcodes~~\n* ~~print graphics~~\n* ~~plot frame around label~~\n* vertical print\n* refactor code with better abstractions\n* pixel fonts\n* web interface\n",
"bugtrack_url": null,
"license": "",
"summary": "Linux Software to print with LabelManager PnP from Dymo",
"version": "2.3.0",
"project_urls": {
"Homepage": "https://github.com/computerlyrik/dymoprint",
"source": "https://github.com/computerlyrik/dymoprint",
"tracker": "https://github.com/computerlyrik/dymoprint/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b6ab4f63e728c9f64fb62ff3d1b16cc91e7a4cfffe7376043f357b0ccfe6f8be",
"md5": "4f7965b7f3206c3b8cb02449d9930801",
"sha256": "00ab1de605957ad5a979277a67f8acd1921f6d99e1b599c799f4f57c9164ee76"
},
"downloads": -1,
"filename": "dymoprint-2.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4f7965b7f3206c3b8cb02449d9930801",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.7",
"size": 1215649,
"upload_time": "2023-11-19T16:48:30",
"upload_time_iso_8601": "2023-11-19T16:48:30.818678Z",
"url": "https://files.pythonhosted.org/packages/b6/ab/4f63e728c9f64fb62ff3d1b16cc91e7a4cfffe7376043f357b0ccfe6f8be/dymoprint-2.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1818fd3f6cd6cf6bb178638cb93e2dd5bb2562c1ea6381ab187f9e0ab8dce9c7",
"md5": "39e70ef3c5ae41bc33dd0929232baf4a",
"sha256": "b9495c349bd0d526407600b5a23a8332a3e78b167a618bfc1ba2f4b7a532a083"
},
"downloads": -1,
"filename": "dymoprint-2.3.0.tar.gz",
"has_sig": false,
"md5_digest": "39e70ef3c5ae41bc33dd0929232baf4a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.7",
"size": 1319649,
"upload_time": "2023-11-19T16:48:33",
"upload_time_iso_8601": "2023-11-19T16:48:33.117718Z",
"url": "https://files.pythonhosted.org/packages/18/18/fd3f6cd6cf6bb178638cb93e2dd5bb2562c1ea6381ab187f9e0ab8dce9c7/dymoprint-2.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-19 16:48:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "computerlyrik",
"github_project": "dymoprint",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "dymoprint"
}