dymoprint


Namedymoprint JSON
Version 2.3.0 PyPI version JSON
download
home_page
SummaryLinux Software to print with LabelManager PnP from Dymo
upload_time2023-11-19 16:48:33
maintainer
docs_urlNone
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"
}
        
Elapsed time: 0.13938s