summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst162
1 files changed, 162 insertions, 0 deletions
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..906ac66
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,162 @@
+Bruder: Print pictures as collages with label tape printers
+===========================================================
+
+``bruder`` is a tool that helps you create collages out of label tape printed with a label printer such as Brother's
+P-touch devices.
+
+``bruder dither`` takes an SVG file with your design and some lines representing the labels' locations, and
+outputs a list of dithered PNG files, one for each label, ready for printing. Optionally, ``bruder print`` can also directly
+print these rendered images for you using the ``ptouch-print`` tool.
+
+For creating and tweaking your design, ``bruder`` has several helper utilities built-in. ``bruder template`` will generate a
+template with a label tape layout you give it that you can use to base your design off of. ``bruder preview`` will render
+a preview that approximates how the printed labels will look when you lay them out. ``bruder assembly`` will render an
+assembly diagram with labels indicating each label tape's number in the order output by ``bruder dither`` or `bruder
+print`.
+
+Quick start
+-----------
+
+1. Install ``bruder`` from PyPI using `pip install bruder`, and install ``usvg``, ``resvg``, ``didder`` and ``ptouch-print`` as
+ shown below under Dependencies_.
+2. Run ``bruder template template.svg`` to create a template with pre-generated label tape areas. The default tape width
+ is 24mm, but you can adjust this as you wish.
+3. Create a new SVG document and design your artwork in it.
+4. Copy the label tape areas from the template into your artwork SVG and save the resulting SVG. ``bruder`` will later
+ identify these areas by their color. You can copy or delete these, change the length of them, and move and rotate
+ them as you wish. Just make sure you don't skew or shear them and that you don't change their width so that they
+ still match the width of the tape that's physically in the printer you're using.
+5. Run ``bruder preview artwork_with_label_areas.svg`` on this SVG to render a preview image. By default, ``bruder`` will
+ open this preview image in your browser. If that doesn't work, run ``bruder preview [input].svg preview_out.svg`` to
+ write it to `preview_out.svg` and open that file with an SVG viewer of your choice. Adjust the content of your design
+ as necessary.
+6. Run ``bruder print artwork_with_label_areas.svg`` to print your artwork to a brother P-touch label printer connected
+ via USB.
+
+Dependencies
+------------
+
+usvg
+ ``usvg`` can be installed using ``cargo install usvg``.
+
+ ``usvg`` is used by ``bruder`` to simplify the input SVG file before processing it.
+
+resvg
+ ``resvg`` can be installed using ``cargo install resvg``.
+
+ ``bruder`` uses ``resvg`` to rasterize the SVG file.
+
+didder
+ ``didder`` can be installed from source at `https://github.com/makew0rld/didder <https://github.com/makew0rld/didder>`__.
+
+ ``bruder`` uses ``didder`` to dither the rasterized input, because these thermal label printers can only print two
+ colors and do not support grayscale.
+
+ptouch-print (optional)
+ ``ptouch-print`` can be installed from source at `https://git.familie-radermacher.ch/linux/ptouch-print.git <https://git.familie-radermacher.ch/linux/ptouch-print.git>`__.
+
+ ``bruder`` uses ``ptouch-print`` when you ask it to print the generated labels using ``bruder print``. You can also use
+ ``bruder dither`` to just generate a pile of PNGs, and use something else to print them.
+
+Command-Line Interface Usage
+----------------------------
+
+You can override where ``bruder`` looks for ``usvg``, ``resvg``, ``didder`` and ``ptouch-print`` by passing the full path to a
+binary through the environment variables ``USVG``, ``RESVG``, ``DIDDER`` and ``PTOUCH_PRINT``.
+
+You can override didder's dithering settings by passing the environment variable `DIDDER_ARGS`. The default value used
+when this variable is not set is `edm --serpentine FloydSteinberg`.
+
+.. code-block:: shell
+
+ bigdata~/p/bruder <3 python -m bruder --help
+ Usage: python -m bruder [OPTIONS] COMMAND [ARGS]...
+
+ Options:
+ --help Show this message and exit.
+
+ Commands:
+ assembly
+ dither
+ preview
+ print
+ template
+
+``bruder template``
+~~~~~~~~~~~~~~~~~~~
+
+.. code-block:: shell
+
+ bigdata~/p/bruder <3 python -m bruder template --help
+ Usage: python -m bruder template [OPTIONS] [OUTPUT_SVG]
+
+ Options:
+ --num-rows INTEGER Number of tapes
+ --tape-width FLOAT Width of tape
+ --tape-border FLOAT Width of empty border at the edges of the tape in mm
+ --tape-spacing FLOAT Space between tapes
+ --tape-length FLOAT Length of tape segments
+ --magic-color TEXT SVG color of tape
+ --help Show this message and exit.
+
+``bruder preview``
+~~~~~~~~~~~~~~~~~~
+
+.. code-block:: shell
+
+ bigdata~/p/bruder <3 python -m bruder preview --help
+ Usage: python -m bruder preview [OPTIONS] [INPUT_SVG] [OUTPUT_SVG]
+
+ Options:
+ --magic-color TEXT SVG color of tape
+ --dpi FLOAT Printer bitmap resolution in DPI
+ --pixel-height INTEGER Printer tape vertical pixel height
+ --help Show this message and exit.
+
+``bruder dither``
+~~~~~~~~~~~~~~~~~
+
+.. code-block:: shell
+
+ bigdata~/p/bruder <3 python -m bruder dither --help
+ Usage: python -m bruder dither [OPTIONS] [INPUT_SVG] OUTPUT_DIR
+
+ Options:
+ --magic-color TEXT SVG color of tape
+ --dpi FLOAT Printer bitmap resolution in DPI
+ --pixel-height INTEGER Printer tape vertical pixel height
+ --help Show this message and exit.
+
+``bruder print``
+~~~~~~~~~~~~~~~~
+
+.. code-block:: shell
+
+ bigdata~/p/bruder <3 python -m bruder print --help
+ Usage: python -m bruder print [OPTIONS] [INPUT_SVG]
+
+ Options:
+ --magic-color TEXT SVG color of tape
+ --dpi FLOAT Printer bitmap resolution in DPI
+ --pixel-height INTEGER Printer tape vertical pixel height
+ --confirm / --no-confirm Ask for confirmation before printing each tape
+ --tape TEXT The index numbers of which tapes to print. Comma-
+ separate list, each entry is either a single
+ number or a "3-5" style range where both ends are
+ included.
+ --help Show this message and exit.
+
+``bruder assembly``
+~~~~~~~~~~~~~~~~~~~
+
+.. code-block:: shell
+
+ bigdata~/p/bruder <3 python -m bruder assembly --help
+ Usage: python -m bruder assembly [OPTIONS] [INPUT_SVG] [OUTPUT_SVG]
+
+ Options:
+ --magic-color TEXT SVG color of tape
+ --dpi FLOAT Printer bitmap resolution in DPI
+ --pixel-height INTEGER Printer tape vertical pixel height
+ --help Show this message and exit.
+