diff --git a/LavissaWoW.html b/LavissaWoW.html index 59f456d2..e702d7c1 100644 --- a/LavissaWoW.html +++ b/LavissaWoW.html @@ -30,11 +30,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Yes, WoW is for World of Warcraft","headline":"Lavissawow","mainEntityOfPage":{"@type":"WebPage","@id":"/LavissaWoW"},"url":"/LavissaWoW"} diff --git a/LavissaWoW/inventree-ipn-generator.html b/LavissaWoW/inventree-ipn-generator.html index 6ec1ca70..bc5c808f 100644 --- a/LavissaWoW/inventree-ipn-generator.html +++ b/LavissaWoW/inventree-ipn-generator.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"LavissaWoW"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Introduction Installing this plugin enables the automatic generation if Internal Part Numbers (IPN) for parts.","headline":"Inventree Ipn Generator","mainEntityOfPage":{"@type":"WebPage","@id":"/LavissaWoW/inventree-ipn-generator"},"url":"/LavissaWoW/inventree-ipn-generator"} @@ -69,7 +69,7 @@

 LavissaWoW

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SchrodingersGat/inventree-brother-plugin.html b/SchrodingersGat/inventree-brother-plugin.html index deef8604..f00b2bb3 100644 --- a/SchrodingersGat/inventree-brother-plugin.html +++ b/SchrodingersGat/inventree-brother-plugin.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SchrodingersGat"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Brother label printer plugin for InvenTree","headline":"Inventree Brother Plugin","mainEntityOfPage":{"@type":"WebPage","@id":"/SchrodingersGat/inventree-brother-plugin"},"url":"/SchrodingersGat/inventree-brother-plugin"} @@ -69,7 +69,7 @@

 SchrodingersGat

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SchrodingersGat/inventree-consolidated-shipping.html b/SchrodingersGat/inventree-consolidated-shipping.html index ca8fe7d4..d7dfa55a 100644 --- a/SchrodingersGat/inventree-consolidated-shipping.html +++ b/SchrodingersGat/inventree-consolidated-shipping.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SchrodingersGat"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"InvenTree Consolidated Shipping Lines","headline":"InvenTree Consolidated Shipping Lines","mainEntityOfPage":{"@type":"WebPage","@id":"/SchrodingersGat/inventree-consolidated-shipping"},"url":"/SchrodingersGat/inventree-consolidated-shipping"} @@ -69,7 +69,7 @@

 SchrodingersGat

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SchrodingersGat/inventree-harmonized-codes.html b/SchrodingersGat/inventree-harmonized-codes.html index 61951955..9c2d8474 100644 --- a/SchrodingersGat/inventree-harmonized-codes.html +++ b/SchrodingersGat/inventree-harmonized-codes.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SchrodingersGat"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Harmonized System Codes for InvenTree","headline":"Inventree Harmonized Codes","mainEntityOfPage":{"@type":"WebPage","@id":"/SchrodingersGat/inventree-harmonized-codes"},"url":"/SchrodingersGat/inventree-harmonized-codes"} @@ -69,7 +69,7 @@

 SchrodingersGat

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SchrodingersGat/inventree-order-history.html b/SchrodingersGat/inventree-order-history.html index d45714b5..350e555d 100644 --- a/SchrodingersGat/inventree-order-history.html +++ b/SchrodingersGat/inventree-order-history.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SchrodingersGat"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Order History for InvenTree","headline":"Inventree Order History","mainEntityOfPage":{"@type":"WebPage","@id":"/SchrodingersGat/inventree-order-history"},"url":"/SchrodingersGat/inventree-order-history"} @@ -69,7 +69,7 @@

 SchrodingersGat

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SchrodingersGat/inventree-rolling-stocktake.html b/SchrodingersGat/inventree-rolling-stocktake.html index 12055cb9..7da9e47f 100644 --- a/SchrodingersGat/inventree-rolling-stocktake.html +++ b/SchrodingersGat/inventree-rolling-stocktake.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SchrodingersGat"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Rolling Stocktake for InvenTree","headline":"Inventree Rolling Stocktake","mainEntityOfPage":{"@type":"WebPage","@id":"/SchrodingersGat/inventree-rolling-stocktake"},"url":"/SchrodingersGat/inventree-rolling-stocktake"} @@ -69,7 +69,7 @@

 SchrodingersGat

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SchrodingersGat/inventree-stock-forecasting.html b/SchrodingersGat/inventree-stock-forecasting.html index 7aef1b55..32c96e47 100644 --- a/SchrodingersGat/inventree-stock-forecasting.html +++ b/SchrodingersGat/inventree-stock-forecasting.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SchrodingersGat"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Stock Forecasting for InvenTree","headline":"Inventree Stock Forecasting","mainEntityOfPage":{"@type":"WebPage","@id":"/SchrodingersGat/inventree-stock-forecasting"},"url":"/SchrodingersGat/inventree-stock-forecasting"} @@ -69,7 +69,7 @@

 SchrodingersGat

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SchrodingersGat/inventree-test-statistics.html b/SchrodingersGat/inventree-test-statistics.html index 4f895a3c..71774d40 100644 --- a/SchrodingersGat/inventree-test-statistics.html +++ b/SchrodingersGat/inventree-test-statistics.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SchrodingersGat"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Test Statistics for InvenTree","headline":"Inventree Test Statistics","mainEntityOfPage":{"@type":"WebPage","@id":"/SchrodingersGat/inventree-test-statistics"},"url":"/SchrodingersGat/inventree-test-statistics"} @@ -69,7 +69,7 @@

 SchrodingersGat

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SchrodingersGat/inventree-wireviz.html b/SchrodingersGat/inventree-wireviz.html index 566281c0..d1ab8536 100644 --- a/SchrodingersGat/inventree-wireviz.html +++ b/SchrodingersGat/inventree-wireviz.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SchrodingersGat"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Wireviz Extension for InvenTree","headline":"Inventree Wireviz","mainEntityOfPage":{"@type":"WebPage","@id":"/SchrodingersGat/inventree-wireviz"},"url":"/SchrodingersGat/inventree-wireviz"} @@ -69,7 +69,7 @@

 SchrodingersGat

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SergeoLacruz.html b/SergeoLacruz.html index 60a7df8f..fdc9718e 100644 --- a/SergeoLacruz.html +++ b/SergeoLacruz.html @@ -30,11 +30,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Hardware engineer in Germany and vintage fan.","headline":"Sergeolacruz","mainEntityOfPage":{"@type":"WebPage","@id":"/SergeoLacruz"},"url":"/SergeoLacruz"} diff --git a/SergeoLacruz/inventree-supplier-panel.html b/SergeoLacruz/inventree-supplier-panel.html index 1ce00653..d46dae34 100644 --- a/SergeoLacruz/inventree-supplier-panel.html +++ b/SergeoLacruz/inventree-supplier-panel.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SergeoLacruz"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"The InvenTree-supplier-panel","headline":"Inventree Supplier Panel","mainEntityOfPage":{"@type":"WebPage","@id":"/SergeoLacruz/inventree-supplier-panel"},"url":"/SergeoLacruz/inventree-supplier-panel"} @@ -69,7 +69,7 @@

 SergeoLacruz

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/SergeoLacruz/inventree-zebra-plugin.html b/SergeoLacruz/inventree-zebra-plugin.html index a3f5efe4..06fa586b 100644 --- a/SergeoLacruz/inventree-zebra-plugin.html +++ b/SergeoLacruz/inventree-zebra-plugin.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"SergeoLacruz"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Zebra Label Printer Plugin for Inventree","headline":"Inventree Zebra Plugin","mainEntityOfPage":{"@type":"WebPage","@id":"/SergeoLacruz/inventree-zebra-plugin"},"url":"/SergeoLacruz/inventree-zebra-plugin"} @@ -69,7 +69,7 @@

 SergeoLacruz

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/afkiwers/inventree-kicad.html b/afkiwers/inventree-kicad.html index 7e1850b4..4906868f 100644 --- a/afkiwers/inventree-kicad.html +++ b/afkiwers/inventree-kicad.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"afkiwers"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"KiCad Integration for InvenTree","headline":"Inventree Kicad","mainEntityOfPage":{"@type":"WebPage","@id":"/afkiwers/inventree-kicad"},"url":"/afkiwers/inventree-kicad"} @@ -69,7 +69,7 @@

 afkiwers

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/afwkiers.html b/afwkiers.html index e0b499f2..92baca69 100644 --- a/afwkiers.html +++ b/afwkiers.html @@ -30,11 +30,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"InvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is at the center of an ecosystem of addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.","headline":"Afwkiers","mainEntityOfPage":{"@type":"WebPage","@id":"/afwkiers"},"url":"/afwkiers"} diff --git a/blog/feed.atom b/blog/feed.atom index 592203ef..596ca985 100644 --- a/blog/feed.atom +++ b/blog/feed.atom @@ -1,4 +1,4 @@ -Jekyll2026-08-13T01:42:37+00:00/blog/feed.atomInvenTreeInvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is at the center of an ecosystem of addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.1.5.0 Release2026-08-09T00:00:00+00:002026-08-09T00:00:00+00:00/blog/2026/08/09/1.5.0InvenTree 1.5.0 has been released! This release includes a number of new features, improvements, and bug fixes. We recommend all users to update to this version as soon as possible.

+Jekyll2026-08-14T01:40:49+00:00/blog/feed.atomInvenTreeInvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is at the center of an ecosystem of addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.1.5.0 Release2026-08-09T00:00:00+00:002026-08-09T00:00:00+00:00/blog/2026/08/09/1.5.0InvenTree 1.5.0 has been released! This release includes a number of new features, improvements, and bug fixes. We recommend all users to update to this version as soon as possible.

Changelog

diff --git a/index.html b/index.html index bff97580..fe99eac0 100644 --- a/index.html +++ b/index.html @@ -177,7 +177,7 @@   - 3.5 million + 3.5 million

Docker pulls

@@ -197,7 +197,7 @@   - 1504 + 1505

Forks

diff --git a/lippoliv.html b/lippoliv.html index e524416a..3e51ca43 100644 --- a/lippoliv.html +++ b/lippoliv.html @@ -30,11 +30,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"With over 15 years of experience and big big passion I learned to take care about the details. They build up to the big picture we have in mind. I’m planning ahead & act early to prevent a big bang.","headline":"Lippoliv","mainEntityOfPage":{"@type":"WebPage","@id":"/lippoliv"},"url":"/lippoliv"} diff --git a/lippoliv/inventree-default-salesorder-items.html b/lippoliv/inventree-default-salesorder-items.html index d5e8d98a..ac6ccfae 100644 --- a/lippoliv/inventree-default-salesorder-items.html +++ b/lippoliv/inventree-default-salesorder-items.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"lippoliv"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Add default parts (configurable) to every newly created sales order automatically.","headline":"Inventree Default Salesorder Items","mainEntityOfPage":{"@type":"WebPage","@id":"/lippoliv/inventree-default-salesorder-items"},"url":"/lippoliv/inventree-default-salesorder-items"} @@ -69,7 +69,7 @@

 lippoliv

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/matmair.html b/matmair.html index 14409b6d..85eaebe5 100644 --- a/matmair.html +++ b/matmair.html @@ -30,11 +30,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"I try to build an ecosystem of reusable plugins and integrations for InvenTree. Code once and KISS!","headline":"Matmair","mainEntityOfPage":{"@type":"WebPage","@id":"/matmair"},"url":"/matmair"} diff --git a/matmair/inventree-apprise.html b/matmair/inventree-apprise.html index 8b9a1690..554adea6 100644 --- a/matmair/inventree-apprise.html +++ b/matmair/inventree-apprise.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"matmair"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Send notifications from InvenTree via Apprise","headline":"Inventree Apprise","mainEntityOfPage":{"@type":"WebPage","@id":"/matmair/inventree-apprise"},"url":"/matmair/inventree-apprise"} @@ -69,7 +69,7 @@

 matmair

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/matmair/inventree-rapidoc.html b/matmair/inventree-rapidoc.html index 06a1c5f4..6c4110b4 100644 --- a/matmair/inventree-rapidoc.html +++ b/matmair/inventree-rapidoc.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"matmair"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Use RapiDoc for Inventree API docs.","headline":"Inventree Rapidoc","mainEntityOfPage":{"@type":"WebPage","@id":"/matmair/inventree-rapidoc"},"url":"/matmair/inventree-rapidoc"} @@ -69,7 +69,7 @@

 matmair

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/matmair/inventree-zapier.html b/matmair/inventree-zapier.html index 5311fa33..8e1e4aee 100644 --- a/matmair/inventree-zapier.html +++ b/matmair/inventree-zapier.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"matmair"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Integrate Zapier into InvenTree","headline":"Inventree Zapier","mainEntityOfPage":{"@type":"WebPage","@id":"/matmair/inventree-zapier"},"url":"/matmair/inventree-zapier"} @@ -69,7 +69,7 @@

 matmair

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
diff --git a/melektron.html b/melektron.html index 93d74eea..e42627dc 100644 --- a/melektron.html +++ b/melektron.html @@ -30,11 +30,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Juggling with bits and bytes for fun and profit ;) (and also electrons if I feel like it)","headline":"Melektron","mainEntityOfPage":{"@type":"WebPage","@id":"/melektron"},"url":"/melektron"} diff --git a/melektron/inventree-adv-sheet-label.html b/melektron/inventree-adv-sheet-label.html index 1982b4b3..489cdc4c 100644 --- a/melektron/inventree-adv-sheet-label.html +++ b/melektron/inventree-adv-sheet-label.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"melektron"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"A label printing plugin for InvenTree which provides support for printing labels on off-the-shelf label sheet layouts and adds some more useful features compared to the sheet label plugin included with InvenTree.","headline":"Inventree Adv Sheet Label","mainEntityOfPage":{"@type":"WebPage","@id":"/melektron/inventree-adv-sheet-label"},"url":"/melektron/inventree-adv-sheet-label"} @@ -69,7 +69,7 @@

 melektron

-last modified: 13 Aug 2026 +last modified: 14 Aug 2026
@@ -96,6 +96,7 @@ Settings
  1. Default sheet layout
  2. +
  3. Printer offset X / Y
  • @@ -115,38 +116,45 @@ The latest version of this plugin currently supports the following InvenTree versions:

    • -1.0.x (tested with version 1.0.5)
    • +1.5.x (tested with version 1.5.0) +
    • +1.3.x (tested with version 1.3.0 and 1.3.2)
    • +
    • +1.2.x (tested with version 1.2.0)
    • 1.1.x (tested with version 1.1.3)
    • +
    • +1.0.x (tested with version 1.0.5)

    For older InvenTree versions, use version 1.2.2, which supports the following InvenTree versions:

      -
    • 0.15.x
    • +
    • +0.17.x (tested with version 0.17.14)
    • 0.16.x (tested with version 0.16.5)
    • -
    • -0.17.x (tested with version 0.17.14) -Some even older or newer versions might also work, but have not been tested.
    • +
    • 0.15.x
    +

    Some even older or newer versions might also work, but have not been tested.

    +

    If you are having trouble installing, see Common Issues for possible solutions or create an issue.

    -

    The simplest way of installing is by using the Install Plugin button on the InvenTree Plugin Settings page and then entering the package name:

    +

    The simplest and recommended way of installing is by using the Install Plugin button above the plugins table on the InvenTree Plugins page in the Admin Center and then entering the package name:

    Plugin installation via UI: The "Install Plugin" modal window

    -

    Alternatively, you can install this plugin manually in the InvenTree container as follows:

    - -
    pip install inventree-adv-sheet-label
    -
    - -

    Or, add the package name to your plugins.txt file (this is automatically done when using the UI method) to install automatically when using the invoke install command:

    +

    Alternatively you can add the package name to your plugins.txt file (this is automatically done when using the UI method) to install automatically when using the invoke install command:

    inventree-adv-sheet-label
     
    +

    Or, you can install this plugin manually in the InvenTree server AND worker container as follows (not recommended for production):

    + +
    pip install inventree-adv-sheet-label
    +
    +

    In any case, after installation, the plugin needs to be enabled in the above mentioned plugin settings page:

    Plugin list with mouse cursor over "Enable Plugin" button

    @@ -157,6 +165,10 @@ Some even older or newer versions might also work, but have not been tested.
  • Printing dialog with plugin selection open

    +

    Printing with this plugin generates a PDF file which will be opened in a new tab in order to subsequently be printed using a regular office printer.

    + +

    Rendering should not take longer than a few seconds, usually less than two.

    +

    Sheet layout

    Unlike the builtin sheet label printing plugin of InvenTree, this plugin presents a selection of preconfigured sheet label layout options corresponding to various kinds of off-the-shelf label printing paper that can be purchased from most office supply shops and easily printed on any standard 2D printer.

    @@ -294,6 +306,27 @@ Some even older or newer versions might also work, but have not been tested.4 columns x 17 rows round + + 8698 + A4 + 52.5mm x 29.7mm + 4 columns x 10 rows + sharp + + + HERMA 4336 / Avery 4732 + A4 + 35.6mm x 16.9mm + 5 columns x 16 rows + round + + + Avery L7163 / J8163 + A4 + 99.1mm x 38.1mm + 2 columns x 7 rows + sharp + @@ -408,6 +441,14 @@ Some even older or newer versions might also work, but have not been tested.This setting allows you to specify which sheet layout is selected by default when opening the printing dialog. It makes sense to set this either to some Auto option or to the layout you are using the most. The default is Auto (round), which is probably fine for most use-cases.

    +

    Printer offset X / Y

    + +

    Most office printers do not place the page exactly where the PDF says, so a sheet that is geometrically correct can still print a millimeter or two off the die. These two settings shift the whole label grid to compensate, in mm: positive X moves labels right, positive Y moves them down. Both default to 0.

    + +

    This is a property of your printer, not of the label sheet, which is why it is a global setting rather than part of a layout definition — the same correction applies whichever sheet layout you print.

    + +

    To calibrate, print one sheet on plain paper at 100% scaling (scaling must be off, or the measurement is meaningless), hold it against a real label sheet, and measure the offset. If the labels land 2mm too high, set Printer offset Y to 2.

    +

    Common Issues

    “No matching distributionfound” / “Could not find a version that satisfies the requirement”

    diff --git a/news/feed.atom b/news/feed.atom index 6db39f53..0543b655 100644 --- a/news/feed.atom +++ b/news/feed.atom @@ -1,4 +1,4 @@ -Jekyll2026-08-13T01:42:37+00:00/news/feed.atomInvenTree | NewsInvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is at the center of an ecosystem of addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.1.5.0 Release2026-08-09T00:00:00+00:002026-08-09T00:00:00+00:00/news/2026/08/09/1.5.01.5.0 Release +Jekyll2026-08-14T01:40:49+00:00/news/feed.atomInvenTree | NewsInvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is at the center of an ecosystem of addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.1.5.0 Release2026-08-09T00:00:00+00:002026-08-09T00:00:00+00:00/news/2026/08/09/1.5.01.5.0 Release

    The InvenTree team is excited to announce the release of version 1.5.0! This update brings a host of new features, improvements, and bug fixes to enhance your experience.

    diff --git a/piramja.html b/piramja.html index 72d7fb03..6c633cad 100644 --- a/piramja.html +++ b/piramja.html @@ -30,11 +30,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"And in the end, we have no choice but to embrace the chaos and laugh about it.","headline":"Piramja","mainEntityOfPage":{"@type":"WebPage","@id":"/piramja"},"url":"/piramja"} diff --git a/piramja/inventree-niimbot-plugin.html b/piramja/inventree-niimbot-plugin.html index 986a6aa1..4a74dada 100644 --- a/piramja/inventree-niimbot-plugin.html +++ b/piramja/inventree-niimbot-plugin.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"piramja"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Introduction A label printing plugin for InvenTree, which provides support for the Niimbot Label Printers. This plugin is based on the amazing work from labbots/NiimPrintX and modifications from LorisPolenz/NiimPrintX.","headline":"Inventree Niimbot Plugin","mainEntityOfPage":{"@type":"WebPage","@id":"/piramja/inventree-niimbot-plugin"},"url":"/piramja/inventree-niimbot-plugin"} @@ -69,7 +69,7 @@

     piramja

    -last modified: 13 Aug 2026 +last modified: 14 Aug 2026
    diff --git a/plugins.json b/plugins.json index fcfff1be..211389b3 100644 --- a/plugins.json +++ b/plugins.json @@ -3,7 +3,7 @@ "/melektron/inventree-adv-sheet-label": { "name": "InvenTree Advanced Sheet Label", "author": "melektron", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -19,13 +19,13 @@ }, "categories": ["Label","Settings"], "tags": ["Sheet layout","Office","Printing","Label"], - "content_txt" : "A label printing plugin for InvenTree which provides support for printing labels on off-the-shelf label sheet layouts and adds some more useful features compared to the sheet label plugin included with InvenTree.\n\nIndex\n\n\n Installation\n Usage and Features\n \n Sheet layout\n Number of labels\n Skip label positions\n Ignore label size mismatch\n Print border\n Label fill color\n \n \n Errors\n Settings\n \n Default sheet layout\n \n \n Contribution\n \n Reporting and fixing bugs\n Adding new layouts\n \n \n Plugin development setup\n\n\nInstallation\n\n\n [!NOTE]\nThe latest version of this plugin currently supports the following InvenTree versions:\n \n 1.0.x (tested with version 1.0.5)\n 1.1.x (tested with version 1.1.3)\n \n\n For older InvenTree versions, use version 1.2.2, which supports the following InvenTree versions:\n \n 0.15.x\n 0.16.x (tested with version 0.16.5)\n 0.17.x (tested with version 0.17.14)\nSome even older or newer versions might also work, but have not been tested.\n \n\n If you are having trouble installing, see Common Issues for possible solutions or create an issue.\n\n\nThe simplest way of installing is by using the Install Plugin button on the InvenTree Plugin Settings page and then entering the package name:\n\n\n\nAlternatively, you can install this plugin manually in the InvenTree container as follows:\n\npip install inventree-adv-sheet-label\n\n\nOr, add the package name to your plugins.txt file (this is automatically done when using the UI method) to install automatically when using the invoke install command:\n\ninventree-adv-sheet-label\n\n\nIn any case, after installation, the plugin needs to be enabled in the above mentioned plugin settings page:\n\n\n\nUsage and Features\n\nThis plugin adds the “AdvancedLabelSheet” printing option to the label printing dialog:\n\n\n\nSheet layout\n\nUnlike the builtin sheet label printing plugin of InvenTree, this plugin presents a selection of preconfigured sheet label layout options corresponding to various kinds of off-the-shelf label printing paper that can be purchased from most office supply shops and easily printed on any standard 2D printer.\n\nYou can select the layout corresponding your paper in the Sheet layout dropdown:\n\n\n\nThese layouts are identified by a several digit number written on the paper packaging, which (as far as I can tell) is unique to the layout independent of the manufacturer (at least where I live). The identifier is however just a string, so any other scheme can also be used in the future.\n\nThe dropdown list also shows some additional information about the layout for orientation:\n\n\n Paper size (e.g. A4)\n Dimensions of the individual labels\n How many rows and columns are on one page\n Whether the labels have rounded corners\n\n\nCurrently supported layouts:\n\n\n \n \n Layout Identifier\n Paper size\n Label dimensions\n Label layout\n Corner style\n \n \n \n \n 8160\n US Letter\n 66.7mm x 25.4mm\n 3 columns x 10 rows\n round\n \n \n 22805\n US Letter\n 37.0mm x 37.0mm\n 4 columns x 6 rows\n sharp\n \n \n 4780\n A4\n 48.5mm x 25.4mm\n 4 columns x 10 rows\n sharp\n \n \n 4737\n A4\n 63.5mm x 29.6mm\n 3 columns x 9 rows\n round\n \n \n 4201\n A4\n 45.7mm x 16.9mm\n 4 columns x 16 rows\n round\n \n \n 7120-25\n A4\n 35.0mm x 35.0mm\n 5 columns x 7 rows\n sharp\n \n \n 7160-10\n A4\n 63.5mm x 38.1mm\n 3 columns x 7 rows\n round\n \n \n 4360\n A4\n 70.0mm x 36.0mm\n 3 columns x 8 rows\n sharp\n \n \n 1367853\n A4\n 48.5mm x 16.9mm\n 4 columns x 16 rows\n sharp\n \n \n 4210\n A4\n 38.1mm x 12.7mm\n 5 columns x 22 rows\n sharp\n \n \n 1367586\n A4\n 70.0mm x 36.0mm\n 3 columns x 8 rows\n sharp\n \n \n 8724\n A4\n 46.0mm x 11.1mm\n 4 columns x 21 rows\n round\n \n \n Avery 50x25-R\n A4\n 50.0mm x 25.0mm\n 3 columns x 8 rows\n round\n \n \n Avery 105x42-R\n A4\n 105.0mm x 42.0mm\n 2 columns x 7 rows\n sharp\n \n \n Avery 40x12-R\n A4\n 40.0mm x 12.0mm\n 4 columns x 17 rows\n round\n \n \n\n\nThis selection is limited to whatever users of this plugin have contributed. If the paper layout you need is not included, please file an Issue with the “Sheet Layout” template or - even better - contribute it yourself. See the Adding new layouts section for details.\n\nYou can also select one of the two Auto sheet layout presets. These will automatically select the correct sheet layout for the label template you are printing. This is done in one of three ways:\n\n If you have a specific layout that’s always used for a specific template, you can add the {\"sheet_layout\": \"...\"} metadata key to your label template configuration (replace … with the identifier of the layout. This might not be the same as the display name, see here what the identifier is). This is the cleanest way configure the correct layout for your templates, but it is no longer easily available as of InvenTree version 1.0.0 due to the Django admin UI being removed.\n If the selected template template has no such metadata, the plugin will attempt to find a layout with exactly the required label size and use that one. If multiple matches are found, the first one is selected while preferring ones with round or sharp corners depending on your selection.\n If no exact matches are found, the closest layout that can fit your label template will be selected and shown to the user in an error message. The user can then decide to use this option by selecting the ‘Ignore label size mismatch’ switch.\n\n\nNumber of labels\n\nThe Number of labels field lets you print multiple of the same label in one go. By default, the number of labels printed is 1, resulting in an output like this:\n\n\n(The label template is only an example and this is only part of a page)\n\nLet’s say you want to print two of the same label. By entering the desired amount in the field, multiple of the same label will be printed at once, of course arranged according to the selected layout:\n\n\n\nIf you are printing labels for multiple items at once, such as for an entire selection of parts, this amount is applied to all items. For example, lets print two labels for each of those four capacitors:\n\n\n\n\nThis results in a printout looking like this:\n\n\n\nYou can also specify to print zero labels. This is useful in combination with the “Skip label positions” and “Debug: Print border” options to print an empty grid of cells for testing.\n\nSkip label positions\n\nWhen printing on label sheets, it is likely that you don’t use up the entire sheet of labels at once. Maybe you only want to print a single label and then another one later. To do so, you can enter the number of labels on a sheet that are already used up in the Skip label positions fields (counting from top left to bottom right). These positions are then skipped and labels will start to print at the next unused position. This also works when printing multiple labels.\n\nFor example, let’s assume the first two labels are already used up and we want to start printing at the third one:\n\n\n\nThis results in the following output:\n\n\n\nWhen printing small labels with many of them on a single sheet, it can be confusing and annoying to keep track of the amount of labels skipped. Since this is such a common task, the plugin automatically remembers how many labels have been used up already and populates the Skip label positions field with the correct number of labels to skip after the previous printing operations. For example, after the above shown printing operation, the plugin automatically remembers that next time, it needs to skip four labels and pre-populates the field with that value:\n\n\n\nWhen an entire page or more is used up, this counter automatically wraps around to the correct value for the next page.\n\nOf course, this feature only makes sense when printing a lot of labels on the same label sheet (and therefore label sheet layout) back-to-back. Since this value is stored only once globally, when switching between different label sheets (for example because multiple users are printing on different sheets at once) the value is probably not accurate and needs to be manually checked and possibly adjusted each time.\n\nIgnore label size mismatch\n\nTo ensure the desired result, the plugin automatically check whether the size of the label according to the selected template matches the size of the labels on the selected sheet layout.\n\nIf that is not the case, the user is presented with an error message. This can happen in a few different scenarios:\n\n Manually selecting a sheet layout that doesn’t match the label template: \n When automatic layout selection is enabled and the label template specifies a sheet layout but its label size does not match that of the template (no longer relevant as of InvenTree 1.0.0): \n When automatic layout selection is enabled but the label template doesn’t specify any layout in the metadata and no exact size match was found: \n\n\nIn any of these cases, you might want to continue anyway, e.g. because you may not have the correct sheet at hand. To do so, you can enable the Ignore label size mismatch switch to override these safety checks and print anyway. If the label template doesn’t fit exactly, it is aligned at the top left corner of the physical label. The result might look something like this:\n\n\n\nPrint border\n\nWhen debugging or testing your sheet layouts and templates, it might be useful to see the shape of the physical label (e.g. for the previous image). For this purpose, you can enable the Debug: Print border switch, to print a 0.25mm border around the label. This border is aligned on the INSIDE of the label, so it doesn’t overlap other labels but will cover up a tiny bit of area on the edge of your label. The scale and position of the label content are not affected by the border.\n\nWhen skipping labels, the skipped positions also have a border.\n\nThe result looks something like this:\n\n\n\nLabel fill color\n\nSimilarly to the border, you might want to fill the background of the labels with a color to debug your template and see what is covered. This can be achieved by entering the desired color in the Debug: Label fill color field. Any CSS color string is valid. To have no fill color, use the value “unset”, which is also the default. Leaving the field empty doesn’t work unfortunately since I wasn’t able to get the form to accept an empty field.\n\nThe result might look something like this with color “lightgreen”:\n\n\n(White lines between rows are just rendering defects of my browser)\n\nYou can also combine this option with the border.\n\nErrors\n\nIn addition to the errors covered in section Ignore label size mismatch you might encounter the following error messages when printing:\n\n\n Sheet layout ‘[sheet_layout_code]’ does not exist.: This means that an API request was received with an invalid sheet layout in the selection. During normal operation, this should never happen because the dropdown list is automatically populated with all valid options. If you are using the API from a 3rd party application, this could mean that the application has requested to print using a sheet layout which is either not supported by this plugin or the application has a typo in the sheet layout code.\n No labels were generated: This means that you are not printing any labels (Number of labels = 0) and are not generating any empty fields either (Skip label positions = 0). This would result in a blank page and is likely not what you want.\n Error printing label: This error along with another error box containing a Python exception string means that something has gone wrong in the plugin code that is not an intentional error message. Example: If you see this, feel free to file a bug report. See Reporting and fixing bugs on how to do so.\n\n\nSettings\n\nThis section describes the settings available in the plugins settings page.\n\nDefault sheet layout\n\nThis setting allows you to specify which sheet layout is selected by default when opening the printing dialog. It makes sense to set this either to some Auto option or to the layout you are using the most. The default is Auto (round), which is probably fine for most use-cases.\n\nCommon Issues\n\n“No matching distributionfound” / “Could not find a version that satisfies the requirement”\n\nThis means that the Python version installed on the InvenTree host is too old for the plugin. This error may occur when trying to install plugin versions up to 1.2.2 on an InvenTree instance installed bare-metal or via the package installer on a system with Python 3.9. This is because the plugin used to require Python >= 3.11, which is the version used in the containers, therefore working for most setups. As of plugin version 1.3.0, the version requirement has been reduced, and this should no longer occur.\n\nContribution\n\nIf you have ideas for new features, found typos, have encountered a bug or want to add more sheet layouts, feel free to contribute to this plugin by filing an Issue or creating a Pull Request. See Plugin development setup to learn how you can set up your development environment to test your modifications.\n\nSee the below information and instructions for common contribution types.\n\nReporting and fixing bugs\n\nIf you have encountered a problem or a bug with the plugin, please file an Issue with the Bug Report template.\n\nThe template requires you to provide a screenshot of your label template configuration. You can get this by going to https://your.inventree.url/web/settings/admin/labels and Editing the template in question. You need administrator privileges to do this. If you don’t have them, ask your administrator. This page might look something like this:\n\n\n\nIn addition to this screenshot, you will be asked to attach the label template file which can be downloaded by clicking on the Template in the list and copying the code. Please make sure this file doesn’t contain any confidential data and remove it if it does.\n\nYou will also be asked to provide some other information about when and how the bug ocurred which is described in the template.\n\nPRs\n\nIf you know how to fix a bug, feel free to create a Pull Request with the solution.\n\nAdding new layouts\n\nIf you have a label paper layout that is not yet supported by this plugin, please file an Issue with the Sheet Layout template\n\nIn the template you will be asked to provide some basic information about the sheet layout such as possible manufacturers/suppliers and where the product can be purchased.\n\nThen, you will be presented with a code template of a layout configuration which you must fill out with your values. The options are commented and mostly self-explanatory.\n\nIf your layout uses a page size that has never been used before, you will also be asked to define the paper format with a name and its dimensions. Otherwise you can simply reference an existing format and omit that part of the issue template.\n\nAdding sheet layouts yourself\n\nWe will review your layout and add it to the main plugin distribution as soon as possible. However, if you need the layout immediately and cannot wait for it to be added officially, you can fork the repository and include it yourself.\n\nTo do so, you can edit the advanced_sheet_label/layouts.py file. In there you will find a dictionary of all defined paper sizes and a dictionary of all defined sheet layouts. After filling out the code in the Issue template, you can simply append the new definitions at the end of the dictionaries.\n\n# ... more file content\n\nPAPER_SIZES = {\n \"A4\": PaperSize(\"A4\", 210, 297)\n # ... possibly more paper sizes\n # add your new paper size here if required\n}\n\nLAYOUTS = {\n \"4780\": SheetLayout(\n display_name=\"4780\",\n page_size=PAPER_SIZES[\"A4\"],\n label_width=48.5,\n label_height=25.4,\n columns=4,\n rows=10,\n column_spacing=0,\n row_spacing=0,\n corner_radius=0\n ),\n # ... more sheet layouts\n # add your new sheet layout here\n}\n\n# ... more file content\n\n\nMake sure that the layout codes (the strings before the colon) are UNIQUE, otherwise the plugin will not work.\n\nTo install the modified plugin in your InvenTree instance, simply enter YOUR repository link instead of the package name in the installation modal. Example with this repository:\n\n\n\n\n Make sure to uninstall the official plugin before you install your fork, otherwise they will conflict!\n\n\n\n Plugins installed in this way seem to not be added to plugins.txt file properly in InvenTree version 1.0.5+. For me, I have been able to install the plugin directly from GitHub by stopping the InvenTree server, adding the URL to the plugins.txt file and then running invoke plugins.\nAlternatively, you can install it directly using pip:\n pip uninstall inventree-adv-sheet-label # uninstall normal package\npip install git+https://github.com/melektron/inventree-adv-sheet-label.git\n \n You have to adjust the link to your repo.\n\n\nIf you have added a sheet layout yourself, you are still encouraged to create a Pull Request with your changes so the changes can be added to the mainline plugin for everyone to benefit.\n\nPlugin development setup\n\nWhen making bigger changes than just adding layouts, it is recommended to set up a proper development environment.\n\nTo develop the plugin, setup an InvenTree development instance using devcontainers according to this this official documentation. It is also recommended to setup the example dataset for experimenting.\n\nThen clone this repo (or your fork) separately on your host computer and link it to the devserver according to the documentation.\n\nIt is also recommended to save the workspace as a file (maybe somewhere in inventree repo but don’t commit it) and include the intellisenseconfig as well as editor layout there.\n\nThe InvenTree intellisense path might be something like /home/inventree/src/backend/InvenTree instead of the path from the documentation.\n\nAfter that, start the InvenTree server with the debugger and the plugin should now be usable and debugable.\n", - "content": "

    A label printing plugin for InvenTree which provides support for printing labels on off-the-shelf label sheet layouts and adds some more useful features compared to the sheet label plugin included with InvenTree.

    \n\n

    Index

    \n\n
      \n
    1. Installation
    2. \n
    3. Usage and Features\n
        \n
      1. Sheet layout
      2. \n
      3. Number of labels
      4. \n
      5. Skip label positions
      6. \n
      7. Ignore label size mismatch
      8. \n
      9. Print border
      10. \n
      11. Label fill color
      12. \n
      \n
    4. \n
    5. Errors
    6. \n
    7. Settings\n
        \n
      1. Default sheet layout
      2. \n
      \n
    8. \n
    9. Contribution\n
        \n
      1. Reporting and fixing bugs
      2. \n
      3. Adding new layouts
      4. \n
      \n
    10. \n
    11. Plugin development setup
    12. \n
    \n\n

    Installation

    \n\n
    \n

    [!NOTE]\nThe latest version of this plugin currently supports the following InvenTree versions:

    \n
      \n
    • 1.0.x (tested with version 1.0.5)
    • \n
    • 1.1.x (tested with version 1.1.3)
    • \n
    \n\n

    For older InvenTree versions, use version 1.2.2, which supports the following InvenTree versions:

    \n
      \n
    • 0.15.x
    • \n
    • 0.16.x (tested with version 0.16.5)
    • \n
    • 0.17.x (tested with version 0.17.14)\nSome even older or newer versions might also work, but have not been tested.
    • \n
    \n\n

    If you are having trouble installing, see Common Issues for possible solutions or create an issue.

    \n
    \n\n

    The simplest way of installing is by using the Install Plugin button on the InvenTree Plugin Settings page and then entering the package name:

    \n\n

    \"Plugin

    \n\n

    Alternatively, you can install this plugin manually in the InvenTree container as follows:

    \n\n
    pip install inventree-adv-sheet-label\n
    \n\n

    Or, add the package name to your plugins.txt file (this is automatically done when using the UI method) to install automatically when using the invoke install command:

    \n\n
    inventree-adv-sheet-label\n
    \n\n

    In any case, after installation, the plugin needs to be enabled in the above mentioned plugin settings page:

    \n\n

    \"Plugin

    \n\n

    Usage and Features

    \n\n

    This plugin adds the “AdvancedLabelSheet” printing option to the label printing dialog:

    \n\n

    \"Printing

    \n\n

    Sheet layout

    \n\n

    Unlike the builtin sheet label printing plugin of InvenTree, this plugin presents a selection of preconfigured sheet label layout options corresponding to various kinds of off-the-shelf label printing paper that can be purchased from most office supply shops and easily printed on any standard 2D printer.

    \n\n

    You can select the layout corresponding your paper in the Sheet layout dropdown:

    \n\n

    \""Sheet

    \n\n

    These layouts are identified by a several digit number written on the paper packaging, which (as far as I can tell) is unique to the layout independent of the manufacturer (at least where I live). The identifier is however just a string, so any other scheme can also be used in the future.

    \n\n

    The dropdown list also shows some additional information about the layout for orientation:

    \n\n
      \n
    • Paper size (e.g. A4)
    • \n
    • Dimensions of the individual labels
    • \n
    • How many rows and columns are on one page
    • \n
    • Whether the labels have rounded corners
    • \n
    \n\n

    Currently supported layouts:

    \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Layout IdentifierPaper sizeLabel dimensionsLabel layoutCorner style
    8160US Letter66.7mm x 25.4mm3 columns x 10 rowsround
    22805US Letter37.0mm x 37.0mm4 columns x 6 rowssharp
    4780A448.5mm x 25.4mm4 columns x 10 rowssharp
    4737A463.5mm x 29.6mm3 columns x 9 rowsround
    4201A445.7mm x 16.9mm4 columns x 16 rowsround
    7120-25A435.0mm x 35.0mm5 columns x 7 rowssharp
    7160-10A463.5mm x 38.1mm3 columns x 7 rowsround
    4360A470.0mm x 36.0mm3 columns x 8 rowssharp
    1367853A448.5mm x 16.9mm4 columns x 16 rowssharp
    4210A438.1mm x 12.7mm5 columns x 22 rowssharp
    1367586A470.0mm x 36.0mm3 columns x 8 rowssharp
    8724A446.0mm x 11.1mm4 columns x 21 rowsround
    Avery 50x25-RA450.0mm x 25.0mm3 columns x 8 rowsround
    Avery 105x42-RA4105.0mm x 42.0mm2 columns x 7 rowssharp
    Avery 40x12-RA440.0mm x 12.0mm4 columns x 17 rowsround
    \n\n

    This selection is limited to whatever users of this plugin have contributed. If the paper layout you need is not included, please file an Issue with the “Sheet Layout” template or - even better - contribute it yourself. See the Adding new layouts section for details.

    \n\n

    You can also select one of the two Auto sheet layout presets. These will automatically select the correct sheet layout for the label template you are printing. This is done in one of three ways:

    \n
      \n
    • If you have a specific layout that’s always used for a specific template, you can add the {\"sheet_layout\": \"...\"} metadata key to your label template configuration (replace … with the identifier of the layout. This might not be the same as the display name, see here what the identifier is). This is the cleanest way configure the correct layout for your templates, but it is no longer easily available as of InvenTree version 1.0.0 due to the Django admin UI being removed.
    • \n
    • If the selected template template has no such metadata, the plugin will attempt to find a layout with exactly the required label size and use that one. If multiple matches are found, the first one is selected while preferring ones with round or sharp corners depending on your selection.
    • \n
    • If no exact matches are found, the closest layout that can fit your label template will be selected and shown to the user in an error message. The user can then decide to use this option by selecting the ‘Ignore label size mismatch’ switch.
    • \n
    \n\n

    Number of labels

    \n\n

    The Number of labels field lets you print multiple of the same label in one go. By default, the number of labels printed is 1, resulting in an output like this:

    \n\n

    \"Top\n(The label template is only an example and this is only part of a page)

    \n\n

    Let’s say you want to print two of the same label. By entering the desired amount in the field, multiple of the same label will be printed at once, of course arranged according to the selected layout:

    \n\n

    \"Top

    \n\n

    If you are printing labels for multiple items at once, such as for an entire selection of parts, this amount is applied to all items. For example, lets print two labels for each of those four capacitors:

    \n\n

    \"Selection\n\"Configuration

    \n\n

    This results in a printout looking like this:

    \n\n

    \"Top

    \n\n

    You can also specify to print zero labels. This is useful in combination with the “Skip label positions” and “Debug: Print border” options to print an empty grid of cells for testing.

    \n\n

    Skip label positions

    \n\n

    When printing on label sheets, it is likely that you don’t use up the entire sheet of labels at once. Maybe you only want to print a single label and then another one later. To do so, you can enter the number of labels on a sheet that are already used up in the Skip label positions fields (counting from top left to bottom right). These positions are then skipped and labels will start to print at the next unused position. This also works when printing multiple labels.

    \n\n

    For example, let’s assume the first two labels are already used up and we want to start printing at the third one:

    \n\n

    \"Settings

    \n\n

    This results in the following output:

    \n\n

    \"Page

    \n\n

    When printing small labels with many of them on a single sheet, it can be confusing and annoying to keep track of the amount of labels skipped. Since this is such a common task, the plugin automatically remembers how many labels have been used up already and populates the Skip label positions field with the correct number of labels to skip after the previous printing operations. For example, after the above shown printing operation, the plugin automatically remembers that next time, it needs to skip four labels and pre-populates the field with that value:

    \n\n

    \"Skip

    \n\n

    When an entire page or more is used up, this counter automatically wraps around to the correct value for the next page.

    \n\n

    Of course, this feature only makes sense when printing a lot of labels on the same label sheet (and therefore label sheet layout) back-to-back. Since this value is stored only once globally, when switching between different label sheets (for example because multiple users are printing on different sheets at once) the value is probably not accurate and needs to be manually checked and possibly adjusted each time.

    \n\n

    Ignore label size mismatch

    \n\n

    To ensure the desired result, the plugin automatically check whether the size of the label according to the selected template matches the size of the labels on the selected sheet layout.

    \n\n

    If that is not the case, the user is presented with an error message. This can happen in a few different scenarios:

    \n
      \n
    • Manually selecting a sheet layout that doesn’t match the label template: \"Error
    • \n
    • When automatic layout selection is enabled and the label template specifies a sheet layout but its label size does not match that of the template (no longer relevant as of InvenTree 1.0.0): \"Error
    • \n
    • When automatic layout selection is enabled but the label template doesn’t specify any layout in the metadata and no exact size match was found: \"Error
    • \n
    \n\n

    In any of these cases, you might want to continue anyway, e.g. because you may not have the correct sheet at hand. To do so, you can enable the Ignore label size mismatch switch to override these safety checks and print anyway. If the label template doesn’t fit exactly, it is aligned at the top left corner of the physical label. The result might look something like this:

    \n\n

    \"Label

    \n\n

    Print border

    \n\n

    When debugging or testing your sheet layouts and templates, it might be useful to see the shape of the physical label (e.g. for the previous image). For this purpose, you can enable the Debug: Print border switch, to print a 0.25mm border around the label. This border is aligned on the INSIDE of the label, so it doesn’t overlap other labels but will cover up a tiny bit of area on the edge of your label. The scale and position of the label content are not affected by the border.

    \n\n

    When skipping labels, the skipped positions also have a border.

    \n\n

    The result looks something like this:

    \n\n

    \"Label

    \n\n

    Label fill color

    \n\n

    Similarly to the border, you might want to fill the background of the labels with a color to debug your template and see what is covered. This can be achieved by entering the desired color in the Debug: Label fill color field. Any CSS color string is valid. To have no fill color, use the value “unset”, which is also the default. Leaving the field empty doesn’t work unfortunately since I wasn’t able to get the form to accept an empty field.

    \n\n

    The result might look something like this with color “lightgreen”:

    \n\n

    \"Labels\n(White lines between rows are just rendering defects of my browser)

    \n\n

    You can also combine this option with the border.

    \n\n

    Errors

    \n\n

    In addition to the errors covered in section Ignore label size mismatch you might encounter the following error messages when printing:

    \n\n
      \n
    • Sheet layout ‘[sheet_layout_code]’ does not exist.: This means that an API request was received with an invalid sheet layout in the selection. During normal operation, this should never happen because the dropdown list is automatically populated with all valid options. If you are using the API from a 3rd party application, this could mean that the application has requested to print using a sheet layout which is either not supported by this plugin or the application has a typo in the sheet layout code.
    • \n
    • No labels were generated: This means that you are not printing any labels (Number of labels = 0) and are not generating any empty fields either (Skip label positions = 0). This would result in a blank page and is likely not what you want.
    • \n
    • Error printing label: This error along with another error box containing a Python exception string means that something has gone wrong in the plugin code that is not an intentional error message. Example: \"UnintentionalIf you see this, feel free to file a bug report. See Reporting and fixing bugs on how to do so.
    • \n
    \n\n

    Settings

    \n\n

    This section describes the settings available in the plugins settings page.

    \n\n

    Default sheet layout

    \n\n

    This setting allows you to specify which sheet layout is selected by default when opening the printing dialog. It makes sense to set this either to some Auto option or to the layout you are using the most. The default is Auto (round), which is probably fine for most use-cases.

    \n\n

    Common Issues

    \n\n

    “No matching distributionfound” / “Could not find a version that satisfies the requirement”

    \n\n

    This means that the Python version installed on the InvenTree host is too old for the plugin. This error may occur when trying to install plugin versions up to 1.2.2 on an InvenTree instance installed bare-metal or via the package installer on a system with Python 3.9. This is because the plugin used to require Python >= 3.11, which is the version used in the containers, therefore working for most setups. As of plugin version 1.3.0, the version requirement has been reduced, and this should no longer occur.

    \n\n

    Contribution

    \n\n

    If you have ideas for new features, found typos, have encountered a bug or want to add more sheet layouts, feel free to contribute to this plugin by filing an Issue or creating a Pull Request. See Plugin development setup to learn how you can set up your development environment to test your modifications.

    \n\n

    See the below information and instructions for common contribution types.

    \n\n

    Reporting and fixing bugs

    \n\n

    If you have encountered a problem or a bug with the plugin, please file an Issue with the Bug Report template.

    \n\n

    The template requires you to provide a screenshot of your label template configuration. You can get this by going to https://your.inventree.url/web/settings/admin/labels and Editing the template in question. You need administrator privileges to do this. If you don’t have them, ask your administrator. This page might look something like this:

    \n\n

    \"Example

    \n\n

    In addition to this screenshot, you will be asked to attach the label template file which can be downloaded by clicking on the Template in the list and copying the code. Please make sure this file doesn’t contain any confidential data and remove it if it does.

    \n\n

    You will also be asked to provide some other information about when and how the bug ocurred which is described in the template.

    \n\n

    PRs

    \n\n

    If you know how to fix a bug, feel free to create a Pull Request with the solution.

    \n\n

    Adding new layouts

    \n\n

    If you have a label paper layout that is not yet supported by this plugin, please file an Issue with the Sheet Layout template

    \n\n

    In the template you will be asked to provide some basic information about the sheet layout such as possible manufacturers/suppliers and where the product can be purchased.

    \n\n

    Then, you will be presented with a code template of a layout configuration which you must fill out with your values. The options are commented and mostly self-explanatory.

    \n\n

    If your layout uses a page size that has never been used before, you will also be asked to define the paper format with a name and its dimensions. Otherwise you can simply reference an existing format and omit that part of the issue template.

    \n\n

    Adding sheet layouts yourself

    \n\n

    We will review your layout and add it to the main plugin distribution as soon as possible. However, if you need the layout immediately and cannot wait for it to be added officially, you can fork the repository and include it yourself.

    \n\n

    To do so, you can edit the advanced_sheet_label/layouts.py file. In there you will find a dictionary of all defined paper sizes and a dictionary of all defined sheet layouts. After filling out the code in the Issue template, you can simply append the new definitions at the end of the dictionaries.

    \n\n
    # ... more file content\n\nPAPER_SIZES = {\n    \"A4\": PaperSize(\"A4\", 210, 297)\n    # ... possibly more paper sizes\n    # add your new paper size here if required\n}\n\nLAYOUTS = {\n    \"4780\": SheetLayout(\n        display_name=\"4780\",\n        page_size=PAPER_SIZES[\"A4\"],\n        label_width=48.5,\n        label_height=25.4,\n        columns=4,\n        rows=10,\n        column_spacing=0,\n        row_spacing=0,\n        corner_radius=0\n    ),\n    # ... more sheet layouts\n    # add your new sheet layout here\n}\n\n# ... more file content\n
    \n\n

    Make sure that the layout codes (the strings before the colon) are UNIQUE, otherwise the plugin will not work.

    \n\n

    To install the modified plugin in your InvenTree instance, simply enter YOUR repository link instead of the package name in the installation modal. Example with this repository:

    \n\n

    \"Install

    \n\n
    \n

    Make sure to uninstall the official plugin before you install your fork, otherwise they will conflict!

    \n
    \n\n
    \n

    Plugins installed in this way seem to not be added to plugins.txt file properly in InvenTree version 1.0.5+. For me, I have been able to install the plugin directly from GitHub by stopping the InvenTree server, adding the URL to the plugins.txt file and then running invoke plugins.\nAlternatively, you can install it directly using pip:

    \n
    pip uninstall inventree-adv-sheet-label # uninstall normal package\npip install git+https://github.com/melektron/inventree-adv-sheet-label.git\n
    \n

    You have to adjust the link to your repo.

    \n
    \n\n

    If you have added a sheet layout yourself, you are still encouraged to create a Pull Request with your changes so the changes can be added to the mainline plugin for everyone to benefit.

    \n\n

    Plugin development setup

    \n\n

    When making bigger changes than just adding layouts, it is recommended to set up a proper development environment.

    \n\n

    To develop the plugin, setup an InvenTree development instance using devcontainers according to this this official documentation. It is also recommended to setup the example dataset for experimenting.

    \n\n

    Then clone this repo (or your fork) separately on your host computer and link it to the devserver according to the documentation.

    \n\n

    It is also recommended to save the workspace as a file (maybe somewhere in inventree repo but don’t commit it) and include the intellisenseconfig as well as editor layout there.

    \n\n

    The InvenTree intellisense path might be something like /home/inventree/src/backend/InvenTree instead of the path from the documentation.

    \n\n

    After that, start the InvenTree server with the debugger and the plugin should now be usable and debugable.

    \n" + "content_txt" : "A label printing plugin for InvenTree which provides support for printing labels on off-the-shelf label sheet layouts and adds some more useful features compared to the sheet label plugin included with InvenTree.\n\nIndex\n\n\n Installation\n Usage and Features\n \n Sheet layout\n Number of labels\n Skip label positions\n Ignore label size mismatch\n Print border\n Label fill color\n \n \n Errors\n Settings\n \n Default sheet layout\n Printer offset X / Y\n \n \n Contribution\n \n Reporting and fixing bugs\n Adding new layouts\n \n \n Plugin development setup\n\n\nInstallation\n\n\n [!NOTE]\nThe latest version of this plugin currently supports the following InvenTree versions:\n \n 1.5.x (tested with version 1.5.0)\n 1.3.x (tested with version 1.3.0 and 1.3.2)\n 1.2.x (tested with version 1.2.0)\n 1.1.x (tested with version 1.1.3)\n 1.0.x (tested with version 1.0.5)\n \n\n For older InvenTree versions, use version 1.2.2, which supports the following InvenTree versions:\n \n 0.17.x (tested with version 0.17.14)\n 0.16.x (tested with version 0.16.5)\n 0.15.x\n \n\n Some even older or newer versions might also work, but have not been tested.\n\n If you are having trouble installing, see Common Issues for possible solutions or create an issue.\n\n\nThe simplest and recommended way of installing is by using the Install Plugin button above the plugins table on the InvenTree Plugins page in the Admin Center and then entering the package name:\n\n\n\nAlternatively you can add the package name to your plugins.txt file (this is automatically done when using the UI method) to install automatically when using the invoke install command:\n\ninventree-adv-sheet-label\n\n\nOr, you can install this plugin manually in the InvenTree server AND worker container as follows (not recommended for production):\n\npip install inventree-adv-sheet-label\n\n\nIn any case, after installation, the plugin needs to be enabled in the above mentioned plugin settings page:\n\n\n\nUsage and Features\n\nThis plugin adds the “AdvancedLabelSheet” printing option to the label printing dialog:\n\n\n\nPrinting with this plugin generates a PDF file which will be opened in a new tab in order to subsequently be printed using a regular office printer.\n\nRendering should not take longer than a few seconds, usually less than two.\n\nSheet layout\n\nUnlike the builtin sheet label printing plugin of InvenTree, this plugin presents a selection of preconfigured sheet label layout options corresponding to various kinds of off-the-shelf label printing paper that can be purchased from most office supply shops and easily printed on any standard 2D printer.\n\nYou can select the layout corresponding your paper in the Sheet layout dropdown:\n\n\n\nThese layouts are identified by a several digit number written on the paper packaging, which (as far as I can tell) is unique to the layout independent of the manufacturer (at least where I live). The identifier is however just a string, so any other scheme can also be used in the future.\n\nThe dropdown list also shows some additional information about the layout for orientation:\n\n\n Paper size (e.g. A4)\n Dimensions of the individual labels\n How many rows and columns are on one page\n Whether the labels have rounded corners\n\n\nCurrently supported layouts:\n\n\n \n \n Layout Identifier\n Paper size\n Label dimensions\n Label layout\n Corner style\n \n \n \n \n 8160\n US Letter\n 66.7mm x 25.4mm\n 3 columns x 10 rows\n round\n \n \n 22805\n US Letter\n 37.0mm x 37.0mm\n 4 columns x 6 rows\n sharp\n \n \n 4780\n A4\n 48.5mm x 25.4mm\n 4 columns x 10 rows\n sharp\n \n \n 4737\n A4\n 63.5mm x 29.6mm\n 3 columns x 9 rows\n round\n \n \n 4201\n A4\n 45.7mm x 16.9mm\n 4 columns x 16 rows\n round\n \n \n 7120-25\n A4\n 35.0mm x 35.0mm\n 5 columns x 7 rows\n sharp\n \n \n 7160-10\n A4\n 63.5mm x 38.1mm\n 3 columns x 7 rows\n round\n \n \n 4360\n A4\n 70.0mm x 36.0mm\n 3 columns x 8 rows\n sharp\n \n \n 1367853\n A4\n 48.5mm x 16.9mm\n 4 columns x 16 rows\n sharp\n \n \n 4210\n A4\n 38.1mm x 12.7mm\n 5 columns x 22 rows\n sharp\n \n \n 1367586\n A4\n 70.0mm x 36.0mm\n 3 columns x 8 rows\n sharp\n \n \n 8724\n A4\n 46.0mm x 11.1mm\n 4 columns x 21 rows\n round\n \n \n Avery 50x25-R\n A4\n 50.0mm x 25.0mm\n 3 columns x 8 rows\n round\n \n \n Avery 105x42-R\n A4\n 105.0mm x 42.0mm\n 2 columns x 7 rows\n sharp\n \n \n Avery 40x12-R\n A4\n 40.0mm x 12.0mm\n 4 columns x 17 rows\n round\n \n \n 8698\n A4\n 52.5mm x 29.7mm\n 4 columns x 10 rows\n sharp\n \n \n HERMA 4336 / Avery 4732\n A4\n 35.6mm x 16.9mm\n 5 columns x 16 rows\n round\n \n \n Avery L7163 / J8163\n A4\n 99.1mm x 38.1mm\n 2 columns x 7 rows\n sharp\n \n \n\n\nThis selection is limited to whatever users of this plugin have contributed. If the paper layout you need is not included, please file an Issue with the “Sheet Layout” template or - even better - contribute it yourself. See the Adding new layouts section for details.\n\nYou can also select one of the two Auto sheet layout presets. These will automatically select the correct sheet layout for the label template you are printing. This is done in one of three ways:\n\n If you have a specific layout that’s always used for a specific template, you can add the {\"sheet_layout\": \"...\"} metadata key to your label template configuration (replace … with the identifier of the layout. This might not be the same as the display name, see here what the identifier is). This is the cleanest way configure the correct layout for your templates, but it is no longer easily available as of InvenTree version 1.0.0 due to the Django admin UI being removed.\n If the selected template template has no such metadata, the plugin will attempt to find a layout with exactly the required label size and use that one. If multiple matches are found, the first one is selected while preferring ones with round or sharp corners depending on your selection.\n If no exact matches are found, the closest layout that can fit your label template will be selected and shown to the user in an error message. The user can then decide to use this option by selecting the ‘Ignore label size mismatch’ switch.\n\n\nNumber of labels\n\nThe Number of labels field lets you print multiple of the same label in one go. By default, the number of labels printed is 1, resulting in an output like this:\n\n\n(The label template is only an example and this is only part of a page)\n\nLet’s say you want to print two of the same label. By entering the desired amount in the field, multiple of the same label will be printed at once, of course arranged according to the selected layout:\n\n\n\nIf you are printing labels for multiple items at once, such as for an entire selection of parts, this amount is applied to all items. For example, lets print two labels for each of those four capacitors:\n\n\n\n\nThis results in a printout looking like this:\n\n\n\nYou can also specify to print zero labels. This is useful in combination with the “Skip label positions” and “Debug: Print border” options to print an empty grid of cells for testing.\n\nSkip label positions\n\nWhen printing on label sheets, it is likely that you don’t use up the entire sheet of labels at once. Maybe you only want to print a single label and then another one later. To do so, you can enter the number of labels on a sheet that are already used up in the Skip label positions fields (counting from top left to bottom right). These positions are then skipped and labels will start to print at the next unused position. This also works when printing multiple labels.\n\nFor example, let’s assume the first two labels are already used up and we want to start printing at the third one:\n\n\n\nThis results in the following output:\n\n\n\nWhen printing small labels with many of them on a single sheet, it can be confusing and annoying to keep track of the amount of labels skipped. Since this is such a common task, the plugin automatically remembers how many labels have been used up already and populates the Skip label positions field with the correct number of labels to skip after the previous printing operations. For example, after the above shown printing operation, the plugin automatically remembers that next time, it needs to skip four labels and pre-populates the field with that value:\n\n\n\nWhen an entire page or more is used up, this counter automatically wraps around to the correct value for the next page.\n\nOf course, this feature only makes sense when printing a lot of labels on the same label sheet (and therefore label sheet layout) back-to-back. Since this value is stored only once globally, when switching between different label sheets (for example because multiple users are printing on different sheets at once) the value is probably not accurate and needs to be manually checked and possibly adjusted each time.\n\nIgnore label size mismatch\n\nTo ensure the desired result, the plugin automatically check whether the size of the label according to the selected template matches the size of the labels on the selected sheet layout.\n\nIf that is not the case, the user is presented with an error message. This can happen in a few different scenarios:\n\n Manually selecting a sheet layout that doesn’t match the label template: \n When automatic layout selection is enabled and the label template specifies a sheet layout but its label size does not match that of the template (no longer relevant as of InvenTree 1.0.0): \n When automatic layout selection is enabled but the label template doesn’t specify any layout in the metadata and no exact size match was found: \n\n\nIn any of these cases, you might want to continue anyway, e.g. because you may not have the correct sheet at hand. To do so, you can enable the Ignore label size mismatch switch to override these safety checks and print anyway. If the label template doesn’t fit exactly, it is aligned at the top left corner of the physical label. The result might look something like this:\n\n\n\nPrint border\n\nWhen debugging or testing your sheet layouts and templates, it might be useful to see the shape of the physical label (e.g. for the previous image). For this purpose, you can enable the Debug: Print border switch, to print a 0.25mm border around the label. This border is aligned on the INSIDE of the label, so it doesn’t overlap other labels but will cover up a tiny bit of area on the edge of your label. The scale and position of the label content are not affected by the border.\n\nWhen skipping labels, the skipped positions also have a border.\n\nThe result looks something like this:\n\n\n\nLabel fill color\n\nSimilarly to the border, you might want to fill the background of the labels with a color to debug your template and see what is covered. This can be achieved by entering the desired color in the Debug: Label fill color field. Any CSS color string is valid. To have no fill color, use the value “unset”, which is also the default. Leaving the field empty doesn’t work unfortunately since I wasn’t able to get the form to accept an empty field.\n\nThe result might look something like this with color “lightgreen”:\n\n\n(White lines between rows are just rendering defects of my browser)\n\nYou can also combine this option with the border.\n\nErrors\n\nIn addition to the errors covered in section Ignore label size mismatch you might encounter the following error messages when printing:\n\n\n Sheet layout ‘[sheet_layout_code]’ does not exist.: This means that an API request was received with an invalid sheet layout in the selection. During normal operation, this should never happen because the dropdown list is automatically populated with all valid options. If you are using the API from a 3rd party application, this could mean that the application has requested to print using a sheet layout which is either not supported by this plugin or the application has a typo in the sheet layout code.\n No labels were generated: This means that you are not printing any labels (Number of labels = 0) and are not generating any empty fields either (Skip label positions = 0). This would result in a blank page and is likely not what you want.\n Error printing label: This error along with another error box containing a Python exception string means that something has gone wrong in the plugin code that is not an intentional error message. Example: If you see this, feel free to file a bug report. See Reporting and fixing bugs on how to do so.\n\n\nSettings\n\nThis section describes the settings available in the plugins settings page.\n\nDefault sheet layout\n\nThis setting allows you to specify which sheet layout is selected by default when opening the printing dialog. It makes sense to set this either to some Auto option or to the layout you are using the most. The default is Auto (round), which is probably fine for most use-cases.\n\nPrinter offset X / Y\n\nMost office printers do not place the page exactly where the PDF says, so a sheet that is geometrically correct can still print a millimeter or two off the die. These two settings shift the whole label grid to compensate, in mm: positive X moves labels right, positive Y moves them down. Both default to 0.\n\nThis is a property of your printer, not of the label sheet, which is why it is a global setting rather than part of a layout definition — the same correction applies whichever sheet layout you print.\n\nTo calibrate, print one sheet on plain paper at 100% scaling (scaling must be off, or the measurement is meaningless), hold it against a real label sheet, and measure the offset. If the labels land 2mm too high, set Printer offset Y to 2.\n\nCommon Issues\n\n“No matching distributionfound” / “Could not find a version that satisfies the requirement”\n\nThis means that the Python version installed on the InvenTree host is too old for the plugin. This error may occur when trying to install plugin versions up to 1.2.2 on an InvenTree instance installed bare-metal or via the package installer on a system with Python 3.9. This is because the plugin used to require Python >= 3.11, which is the version used in the containers, therefore working for most setups. As of plugin version 1.3.0, the version requirement has been reduced, and this should no longer occur.\n\nContribution\n\nIf you have ideas for new features, found typos, have encountered a bug or want to add more sheet layouts, feel free to contribute to this plugin by filing an Issue or creating a Pull Request. See Plugin development setup to learn how you can set up your development environment to test your modifications.\n\nSee the below information and instructions for common contribution types.\n\nReporting and fixing bugs\n\nIf you have encountered a problem or a bug with the plugin, please file an Issue with the Bug Report template.\n\nThe template requires you to provide a screenshot of your label template configuration. You can get this by going to https://your.inventree.url/web/settings/admin/labels and Editing the template in question. You need administrator privileges to do this. If you don’t have them, ask your administrator. This page might look something like this:\n\n\n\nIn addition to this screenshot, you will be asked to attach the label template file which can be downloaded by clicking on the Template in the list and copying the code. Please make sure this file doesn’t contain any confidential data and remove it if it does.\n\nYou will also be asked to provide some other information about when and how the bug ocurred which is described in the template.\n\nPRs\n\nIf you know how to fix a bug, feel free to create a Pull Request with the solution.\n\nAdding new layouts\n\nIf you have a label paper layout that is not yet supported by this plugin, please file an Issue with the Sheet Layout template\n\nIn the template you will be asked to provide some basic information about the sheet layout such as possible manufacturers/suppliers and where the product can be purchased.\n\nThen, you will be presented with a code template of a layout configuration which you must fill out with your values. The options are commented and mostly self-explanatory.\n\nIf your layout uses a page size that has never been used before, you will also be asked to define the paper format with a name and its dimensions. Otherwise you can simply reference an existing format and omit that part of the issue template.\n\nAdding sheet layouts yourself\n\nWe will review your layout and add it to the main plugin distribution as soon as possible. However, if you need the layout immediately and cannot wait for it to be added officially, you can fork the repository and include it yourself.\n\nTo do so, you can edit the advanced_sheet_label/layouts.py file. In there you will find a dictionary of all defined paper sizes and a dictionary of all defined sheet layouts. After filling out the code in the Issue template, you can simply append the new definitions at the end of the dictionaries.\n\n# ... more file content\n\nPAPER_SIZES = {\n \"A4\": PaperSize(\"A4\", 210, 297)\n # ... possibly more paper sizes\n # add your new paper size here if required\n}\n\nLAYOUTS = {\n \"4780\": SheetLayout(\n display_name=\"4780\",\n page_size=PAPER_SIZES[\"A4\"],\n label_width=48.5,\n label_height=25.4,\n columns=4,\n rows=10,\n column_spacing=0,\n row_spacing=0,\n corner_radius=0\n ),\n # ... more sheet layouts\n # add your new sheet layout here\n}\n\n# ... more file content\n\n\nMake sure that the layout codes (the strings before the colon) are UNIQUE, otherwise the plugin will not work.\n\nTo install the modified plugin in your InvenTree instance, simply enter YOUR repository link instead of the package name in the installation modal. Example with this repository:\n\n\n\n\n Make sure to uninstall the official plugin before you install your fork, otherwise they will conflict!\n\n\n\n Plugins installed in this way seem to not be added to plugins.txt file properly in InvenTree version 1.0.5+. For me, I have been able to install the plugin directly from GitHub by stopping the InvenTree server, adding the URL to the plugins.txt file and then running invoke plugins.\nAlternatively, you can install it directly using pip:\n pip uninstall inventree-adv-sheet-label # uninstall normal package\npip install git+https://github.com/melektron/inventree-adv-sheet-label.git\n \n You have to adjust the link to your repo.\n\n\nIf you have added a sheet layout yourself, you are still encouraged to create a Pull Request with your changes so the changes can be added to the mainline plugin for everyone to benefit.\n\nPlugin development setup\n\nWhen making bigger changes than just adding layouts, it is recommended to set up a proper development environment.\n\nTo develop the plugin, setup an InvenTree development instance using devcontainers according to this this official documentation. It is also recommended to setup the example dataset for experimenting.\n\nThen clone this repo (or your fork) separately on your host computer and link it to the devserver according to the documentation.\n\nIt is also recommended to save the workspace as a file (maybe somewhere in inventree repo but don’t commit it) and include the intellisenseconfig as well as editor layout there.\n\nThe InvenTree intellisense path might be something like /home/inventree/src/backend/InvenTree instead of the path from the documentation.\n\nAfter that, start the InvenTree server with the debugger and the plugin should now be usable and debugable.\n", + "content": "

    A label printing plugin for InvenTree which provides support for printing labels on off-the-shelf label sheet layouts and adds some more useful features compared to the sheet label plugin included with InvenTree.

    \n\n

    Index

    \n\n
      \n
    1. Installation
    2. \n
    3. Usage and Features\n
        \n
      1. Sheet layout
      2. \n
      3. Number of labels
      4. \n
      5. Skip label positions
      6. \n
      7. Ignore label size mismatch
      8. \n
      9. Print border
      10. \n
      11. Label fill color
      12. \n
      \n
    4. \n
    5. Errors
    6. \n
    7. Settings\n
        \n
      1. Default sheet layout
      2. \n
      3. Printer offset X / Y
      4. \n
      \n
    8. \n
    9. Contribution\n
        \n
      1. Reporting and fixing bugs
      2. \n
      3. Adding new layouts
      4. \n
      \n
    10. \n
    11. Plugin development setup
    12. \n
    \n\n

    Installation

    \n\n
    \n

    [!NOTE]\nThe latest version of this plugin currently supports the following InvenTree versions:

    \n
      \n
    • 1.5.x (tested with version 1.5.0)
    • \n
    • 1.3.x (tested with version 1.3.0 and 1.3.2)
    • \n
    • 1.2.x (tested with version 1.2.0)
    • \n
    • 1.1.x (tested with version 1.1.3)
    • \n
    • 1.0.x (tested with version 1.0.5)
    • \n
    \n\n

    For older InvenTree versions, use version 1.2.2, which supports the following InvenTree versions:

    \n
      \n
    • 0.17.x (tested with version 0.17.14)
    • \n
    • 0.16.x (tested with version 0.16.5)
    • \n
    • 0.15.x
    • \n
    \n\n

    Some even older or newer versions might also work, but have not been tested.

    \n\n

    If you are having trouble installing, see Common Issues for possible solutions or create an issue.

    \n
    \n\n

    The simplest and recommended way of installing is by using the Install Plugin button above the plugins table on the InvenTree Plugins page in the Admin Center and then entering the package name:

    \n\n

    \"Plugin

    \n\n

    Alternatively you can add the package name to your plugins.txt file (this is automatically done when using the UI method) to install automatically when using the invoke install command:

    \n\n
    inventree-adv-sheet-label\n
    \n\n

    Or, you can install this plugin manually in the InvenTree server AND worker container as follows (not recommended for production):

    \n\n
    pip install inventree-adv-sheet-label\n
    \n\n

    In any case, after installation, the plugin needs to be enabled in the above mentioned plugin settings page:

    \n\n

    \"Plugin

    \n\n

    Usage and Features

    \n\n

    This plugin adds the “AdvancedLabelSheet” printing option to the label printing dialog:

    \n\n

    \"Printing

    \n\n

    Printing with this plugin generates a PDF file which will be opened in a new tab in order to subsequently be printed using a regular office printer.

    \n\n

    Rendering should not take longer than a few seconds, usually less than two.

    \n\n

    Sheet layout

    \n\n

    Unlike the builtin sheet label printing plugin of InvenTree, this plugin presents a selection of preconfigured sheet label layout options corresponding to various kinds of off-the-shelf label printing paper that can be purchased from most office supply shops and easily printed on any standard 2D printer.

    \n\n

    You can select the layout corresponding your paper in the Sheet layout dropdown:

    \n\n

    \""Sheet

    \n\n

    These layouts are identified by a several digit number written on the paper packaging, which (as far as I can tell) is unique to the layout independent of the manufacturer (at least where I live). The identifier is however just a string, so any other scheme can also be used in the future.

    \n\n

    The dropdown list also shows some additional information about the layout for orientation:

    \n\n
      \n
    • Paper size (e.g. A4)
    • \n
    • Dimensions of the individual labels
    • \n
    • How many rows and columns are on one page
    • \n
    • Whether the labels have rounded corners
    • \n
    \n\n

    Currently supported layouts:

    \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Layout IdentifierPaper sizeLabel dimensionsLabel layoutCorner style
    8160US Letter66.7mm x 25.4mm3 columns x 10 rowsround
    22805US Letter37.0mm x 37.0mm4 columns x 6 rowssharp
    4780A448.5mm x 25.4mm4 columns x 10 rowssharp
    4737A463.5mm x 29.6mm3 columns x 9 rowsround
    4201A445.7mm x 16.9mm4 columns x 16 rowsround
    7120-25A435.0mm x 35.0mm5 columns x 7 rowssharp
    7160-10A463.5mm x 38.1mm3 columns x 7 rowsround
    4360A470.0mm x 36.0mm3 columns x 8 rowssharp
    1367853A448.5mm x 16.9mm4 columns x 16 rowssharp
    4210A438.1mm x 12.7mm5 columns x 22 rowssharp
    1367586A470.0mm x 36.0mm3 columns x 8 rowssharp
    8724A446.0mm x 11.1mm4 columns x 21 rowsround
    Avery 50x25-RA450.0mm x 25.0mm3 columns x 8 rowsround
    Avery 105x42-RA4105.0mm x 42.0mm2 columns x 7 rowssharp
    Avery 40x12-RA440.0mm x 12.0mm4 columns x 17 rowsround
    8698A452.5mm x 29.7mm4 columns x 10 rowssharp
    HERMA 4336 / Avery 4732A435.6mm x 16.9mm5 columns x 16 rowsround
    Avery L7163 / J8163A499.1mm x 38.1mm2 columns x 7 rowssharp
    \n\n

    This selection is limited to whatever users of this plugin have contributed. If the paper layout you need is not included, please file an Issue with the “Sheet Layout” template or - even better - contribute it yourself. See the Adding new layouts section for details.

    \n\n

    You can also select one of the two Auto sheet layout presets. These will automatically select the correct sheet layout for the label template you are printing. This is done in one of three ways:

    \n
      \n
    • If you have a specific layout that’s always used for a specific template, you can add the {\"sheet_layout\": \"...\"} metadata key to your label template configuration (replace … with the identifier of the layout. This might not be the same as the display name, see here what the identifier is). This is the cleanest way configure the correct layout for your templates, but it is no longer easily available as of InvenTree version 1.0.0 due to the Django admin UI being removed.
    • \n
    • If the selected template template has no such metadata, the plugin will attempt to find a layout with exactly the required label size and use that one. If multiple matches are found, the first one is selected while preferring ones with round or sharp corners depending on your selection.
    • \n
    • If no exact matches are found, the closest layout that can fit your label template will be selected and shown to the user in an error message. The user can then decide to use this option by selecting the ‘Ignore label size mismatch’ switch.
    • \n
    \n\n

    Number of labels

    \n\n

    The Number of labels field lets you print multiple of the same label in one go. By default, the number of labels printed is 1, resulting in an output like this:

    \n\n

    \"Top\n(The label template is only an example and this is only part of a page)

    \n\n

    Let’s say you want to print two of the same label. By entering the desired amount in the field, multiple of the same label will be printed at once, of course arranged according to the selected layout:

    \n\n

    \"Top

    \n\n

    If you are printing labels for multiple items at once, such as for an entire selection of parts, this amount is applied to all items. For example, lets print two labels for each of those four capacitors:

    \n\n

    \"Selection\n\"Configuration

    \n\n

    This results in a printout looking like this:

    \n\n

    \"Top

    \n\n

    You can also specify to print zero labels. This is useful in combination with the “Skip label positions” and “Debug: Print border” options to print an empty grid of cells for testing.

    \n\n

    Skip label positions

    \n\n

    When printing on label sheets, it is likely that you don’t use up the entire sheet of labels at once. Maybe you only want to print a single label and then another one later. To do so, you can enter the number of labels on a sheet that are already used up in the Skip label positions fields (counting from top left to bottom right). These positions are then skipped and labels will start to print at the next unused position. This also works when printing multiple labels.

    \n\n

    For example, let’s assume the first two labels are already used up and we want to start printing at the third one:

    \n\n

    \"Settings

    \n\n

    This results in the following output:

    \n\n

    \"Page

    \n\n

    When printing small labels with many of them on a single sheet, it can be confusing and annoying to keep track of the amount of labels skipped. Since this is such a common task, the plugin automatically remembers how many labels have been used up already and populates the Skip label positions field with the correct number of labels to skip after the previous printing operations. For example, after the above shown printing operation, the plugin automatically remembers that next time, it needs to skip four labels and pre-populates the field with that value:

    \n\n

    \"Skip

    \n\n

    When an entire page or more is used up, this counter automatically wraps around to the correct value for the next page.

    \n\n

    Of course, this feature only makes sense when printing a lot of labels on the same label sheet (and therefore label sheet layout) back-to-back. Since this value is stored only once globally, when switching between different label sheets (for example because multiple users are printing on different sheets at once) the value is probably not accurate and needs to be manually checked and possibly adjusted each time.

    \n\n

    Ignore label size mismatch

    \n\n

    To ensure the desired result, the plugin automatically check whether the size of the label according to the selected template matches the size of the labels on the selected sheet layout.

    \n\n

    If that is not the case, the user is presented with an error message. This can happen in a few different scenarios:

    \n
      \n
    • Manually selecting a sheet layout that doesn’t match the label template: \"Error
    • \n
    • When automatic layout selection is enabled and the label template specifies a sheet layout but its label size does not match that of the template (no longer relevant as of InvenTree 1.0.0): \"Error
    • \n
    • When automatic layout selection is enabled but the label template doesn’t specify any layout in the metadata and no exact size match was found: \"Error
    • \n
    \n\n

    In any of these cases, you might want to continue anyway, e.g. because you may not have the correct sheet at hand. To do so, you can enable the Ignore label size mismatch switch to override these safety checks and print anyway. If the label template doesn’t fit exactly, it is aligned at the top left corner of the physical label. The result might look something like this:

    \n\n

    \"Label

    \n\n

    Print border

    \n\n

    When debugging or testing your sheet layouts and templates, it might be useful to see the shape of the physical label (e.g. for the previous image). For this purpose, you can enable the Debug: Print border switch, to print a 0.25mm border around the label. This border is aligned on the INSIDE of the label, so it doesn’t overlap other labels but will cover up a tiny bit of area on the edge of your label. The scale and position of the label content are not affected by the border.

    \n\n

    When skipping labels, the skipped positions also have a border.

    \n\n

    The result looks something like this:

    \n\n

    \"Label

    \n\n

    Label fill color

    \n\n

    Similarly to the border, you might want to fill the background of the labels with a color to debug your template and see what is covered. This can be achieved by entering the desired color in the Debug: Label fill color field. Any CSS color string is valid. To have no fill color, use the value “unset”, which is also the default. Leaving the field empty doesn’t work unfortunately since I wasn’t able to get the form to accept an empty field.

    \n\n

    The result might look something like this with color “lightgreen”:

    \n\n

    \"Labels\n(White lines between rows are just rendering defects of my browser)

    \n\n

    You can also combine this option with the border.

    \n\n

    Errors

    \n\n

    In addition to the errors covered in section Ignore label size mismatch you might encounter the following error messages when printing:

    \n\n
      \n
    • Sheet layout ‘[sheet_layout_code]’ does not exist.: This means that an API request was received with an invalid sheet layout in the selection. During normal operation, this should never happen because the dropdown list is automatically populated with all valid options. If you are using the API from a 3rd party application, this could mean that the application has requested to print using a sheet layout which is either not supported by this plugin or the application has a typo in the sheet layout code.
    • \n
    • No labels were generated: This means that you are not printing any labels (Number of labels = 0) and are not generating any empty fields either (Skip label positions = 0). This would result in a blank page and is likely not what you want.
    • \n
    • Error printing label: This error along with another error box containing a Python exception string means that something has gone wrong in the plugin code that is not an intentional error message. Example: \"UnintentionalIf you see this, feel free to file a bug report. See Reporting and fixing bugs on how to do so.
    • \n
    \n\n

    Settings

    \n\n

    This section describes the settings available in the plugins settings page.

    \n\n

    Default sheet layout

    \n\n

    This setting allows you to specify which sheet layout is selected by default when opening the printing dialog. It makes sense to set this either to some Auto option or to the layout you are using the most. The default is Auto (round), which is probably fine for most use-cases.

    \n\n

    Printer offset X / Y

    \n\n

    Most office printers do not place the page exactly where the PDF says, so a sheet that is geometrically correct can still print a millimeter or two off the die. These two settings shift the whole label grid to compensate, in mm: positive X moves labels right, positive Y moves them down. Both default to 0.

    \n\n

    This is a property of your printer, not of the label sheet, which is why it is a global setting rather than part of a layout definition — the same correction applies whichever sheet layout you print.

    \n\n

    To calibrate, print one sheet on plain paper at 100% scaling (scaling must be off, or the measurement is meaningless), hold it against a real label sheet, and measure the offset. If the labels land 2mm too high, set Printer offset Y to 2.

    \n\n

    Common Issues

    \n\n

    “No matching distributionfound” / “Could not find a version that satisfies the requirement”

    \n\n

    This means that the Python version installed on the InvenTree host is too old for the plugin. This error may occur when trying to install plugin versions up to 1.2.2 on an InvenTree instance installed bare-metal or via the package installer on a system with Python 3.9. This is because the plugin used to require Python >= 3.11, which is the version used in the containers, therefore working for most setups. As of plugin version 1.3.0, the version requirement has been reduced, and this should no longer occur.

    \n\n

    Contribution

    \n\n

    If you have ideas for new features, found typos, have encountered a bug or want to add more sheet layouts, feel free to contribute to this plugin by filing an Issue or creating a Pull Request. See Plugin development setup to learn how you can set up your development environment to test your modifications.

    \n\n

    See the below information and instructions for common contribution types.

    \n\n

    Reporting and fixing bugs

    \n\n

    If you have encountered a problem or a bug with the plugin, please file an Issue with the Bug Report template.

    \n\n

    The template requires you to provide a screenshot of your label template configuration. You can get this by going to https://your.inventree.url/web/settings/admin/labels and Editing the template in question. You need administrator privileges to do this. If you don’t have them, ask your administrator. This page might look something like this:

    \n\n

    \"Example

    \n\n

    In addition to this screenshot, you will be asked to attach the label template file which can be downloaded by clicking on the Template in the list and copying the code. Please make sure this file doesn’t contain any confidential data and remove it if it does.

    \n\n

    You will also be asked to provide some other information about when and how the bug ocurred which is described in the template.

    \n\n

    PRs

    \n\n

    If you know how to fix a bug, feel free to create a Pull Request with the solution.

    \n\n

    Adding new layouts

    \n\n

    If you have a label paper layout that is not yet supported by this plugin, please file an Issue with the Sheet Layout template

    \n\n

    In the template you will be asked to provide some basic information about the sheet layout such as possible manufacturers/suppliers and where the product can be purchased.

    \n\n

    Then, you will be presented with a code template of a layout configuration which you must fill out with your values. The options are commented and mostly self-explanatory.

    \n\n

    If your layout uses a page size that has never been used before, you will also be asked to define the paper format with a name and its dimensions. Otherwise you can simply reference an existing format and omit that part of the issue template.

    \n\n

    Adding sheet layouts yourself

    \n\n

    We will review your layout and add it to the main plugin distribution as soon as possible. However, if you need the layout immediately and cannot wait for it to be added officially, you can fork the repository and include it yourself.

    \n\n

    To do so, you can edit the advanced_sheet_label/layouts.py file. In there you will find a dictionary of all defined paper sizes and a dictionary of all defined sheet layouts. After filling out the code in the Issue template, you can simply append the new definitions at the end of the dictionaries.

    \n\n
    # ... more file content\n\nPAPER_SIZES = {\n    \"A4\": PaperSize(\"A4\", 210, 297)\n    # ... possibly more paper sizes\n    # add your new paper size here if required\n}\n\nLAYOUTS = {\n    \"4780\": SheetLayout(\n        display_name=\"4780\",\n        page_size=PAPER_SIZES[\"A4\"],\n        label_width=48.5,\n        label_height=25.4,\n        columns=4,\n        rows=10,\n        column_spacing=0,\n        row_spacing=0,\n        corner_radius=0\n    ),\n    # ... more sheet layouts\n    # add your new sheet layout here\n}\n\n# ... more file content\n
    \n\n

    Make sure that the layout codes (the strings before the colon) are UNIQUE, otherwise the plugin will not work.

    \n\n

    To install the modified plugin in your InvenTree instance, simply enter YOUR repository link instead of the package name in the installation modal. Example with this repository:

    \n\n

    \"Install

    \n\n
    \n

    Make sure to uninstall the official plugin before you install your fork, otherwise they will conflict!

    \n
    \n\n
    \n

    Plugins installed in this way seem to not be added to plugins.txt file properly in InvenTree version 1.0.5+. For me, I have been able to install the plugin directly from GitHub by stopping the InvenTree server, adding the URL to the plugins.txt file and then running invoke plugins.\nAlternatively, you can install it directly using pip:

    \n
    pip uninstall inventree-adv-sheet-label # uninstall normal package\npip install git+https://github.com/melektron/inventree-adv-sheet-label.git\n
    \n

    You have to adjust the link to your repo.

    \n
    \n\n

    If you have added a sheet layout yourself, you are still encouraged to create a Pull Request with your changes so the changes can be added to the mainline plugin for everyone to benefit.

    \n\n

    Plugin development setup

    \n\n

    When making bigger changes than just adding layouts, it is recommended to set up a proper development environment.

    \n\n

    To develop the plugin, setup an InvenTree development instance using devcontainers according to this this official documentation. It is also recommended to setup the example dataset for experimenting.

    \n\n

    Then clone this repo (or your fork) separately on your host computer and link it to the devserver according to the documentation.

    \n\n

    It is also recommended to save the workspace as a file (maybe somewhere in inventree repo but don’t commit it) and include the intellisenseconfig as well as editor layout there.

    \n\n

    The InvenTree intellisense path might be something like /home/inventree/src/backend/InvenTree instead of the path from the documentation.

    \n\n

    After that, start the InvenTree server with the debugger and the plugin should now be usable and debugable.

    \n" }, "/matmair/inventree-apprise": { "name": "InvenTree Apprise", "author": "matmair", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -47,7 +47,7 @@ "/SchrodingersGat/inventree-brother-plugin": { "name": "inventree-brother-plugin", "author": "SchrodingersGat", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": false, @@ -69,7 +69,7 @@ "/wolflu05/inventree-bulk-plugin": { "name": "inventree-bulk-plugin", "author": "wolflu05", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -91,7 +91,7 @@ "/SchrodingersGat/inventree-consolidated-shipping": { "name": "inventree-consolidated-shipment-lines", "author": "SchrodingersGat", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -113,7 +113,7 @@ "/wolflu05/inventree-cups-plugin": { "name": "inventree-cups-plugin", "author": "wolflu05", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -135,7 +135,7 @@ "/lippoliv/inventree-default-salesorder-items": { "name": "Default sales order items", "author": "lippoliv", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -157,7 +157,7 @@ "/wolflu05/inventree-dymo-plugin": { "name": "inventree-dymo-plugin", "author": "wolflu05", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "GPL-3.0+", "stable": true, @@ -179,7 +179,7 @@ "/SchrodingersGat/inventree-harmonized-codes": { "name": "inventree-harmonized-codes", "author": "SchrodingersGat", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -201,7 +201,7 @@ "/LavissaWoW/inventree-ipn-generator": { "name": "inventree-ipn-generator", "author": "LavissaWoW", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -223,7 +223,7 @@ "/afkiwers/inventree-kicad": { "name": "inventree-kicad-plugin", "author": "afkiwers", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -245,7 +245,7 @@ "/piramja/inventree-niimbot-plugin": { "name": "inventree-niimbot-plugin", "author": "piramja", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -267,7 +267,7 @@ "/SchrodingersGat/inventree-order-history": { "name": "inventree-order-history", "author": "SchrodingersGat", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -289,7 +289,7 @@ "/matmair/inventree-rapidoc": { "name": "Inventree RapiDoc", "author": "matmair", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT license", "stable": true, @@ -311,7 +311,7 @@ "/wolflu05/inventree-report-lsp-plugin": { "name": "inventree-report-lsp-plugin", "author": "wolflu05", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "GPL-3.0+", "stable": true, @@ -333,7 +333,7 @@ "/SchrodingersGat/inventree-rolling-stocktake": { "name": "inventree-rolling-stocktake", "author": "SchrodingersGat", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -355,7 +355,7 @@ "/SchrodingersGat/inventree-stock-forecasting": { "name": "inventree-stock-forecasting", "author": "SchrodingersGat", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -377,7 +377,7 @@ "/SergeoLacruz/inventree-supplier-panel": { "name": "inventree-supplier-panel", "author": "SergeoLacruz", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -399,7 +399,7 @@ "/SchrodingersGat/inventree-test-statistics": { "name": "inventree-test-statistics", "author": "SchrodingersGat", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -421,7 +421,7 @@ "/SchrodingersGat/inventree-wireviz": { "name": "inventree-wireviz-plugin", "author": "SchrodingersGat", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -443,7 +443,7 @@ "/matmair/inventree-zapier": { "name": "inventree-zapier", "author": "matmair", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": false, @@ -465,7 +465,7 @@ "/SergeoLacruz/inventree-zebra-plugin": { "name": "inventree-zebra-plugin", "author": "SergeoLacruz", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "MIT", "stable": true, @@ -487,7 +487,7 @@ "/wolflu05/inventree-zebra": { "name": "inventree-zebra", "author": "wolflu05", - "last_modified": "2026-08-13 01:42:22 +0000", + "last_modified": "2026-08-14 01:40:31 +0000", "open_source": null, "license": "GPL-3.0+", "stable": true, diff --git a/schrodingersgat.html b/schrodingersgat.html index a9a881e7..bf0b8710 100644 --- a/schrodingersgat.html +++ b/schrodingersgat.html @@ -30,11 +30,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Maintainer of InvenTree.","headline":"Schrodingersgat","mainEntityOfPage":{"@type":"WebPage","@id":"/schrodingersgat"},"url":"/schrodingersgat"} diff --git a/sitemap.xml b/sitemap.xml index e4a0feed..5c9c67fd 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -274,131 +274,131 @@ /LavissaWoW -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SergeoLacruz -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /afwkiers -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /lippoliv -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /matmair -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /melektron -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /piramja -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /schrodingersgat -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /wolflu05 -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /melektron/inventree-adv-sheet-label -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /matmair/inventree-apprise -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SchrodingersGat/inventree-brother-plugin -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /wolflu05/inventree-bulk-plugin -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SchrodingersGat/inventree-consolidated-shipping -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /wolflu05/inventree-cups-plugin -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /lippoliv/inventree-default-salesorder-items -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /wolflu05/inventree-dymo-plugin -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SchrodingersGat/inventree-harmonized-codes -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /LavissaWoW/inventree-ipn-generator -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /afkiwers/inventree-kicad -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /piramja/inventree-niimbot-plugin -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SchrodingersGat/inventree-order-history -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /matmair/inventree-rapidoc -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /wolflu05/inventree-report-lsp-plugin -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SchrodingersGat/inventree-rolling-stocktake -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SchrodingersGat/inventree-stock-forecasting -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SergeoLacruz/inventree-supplier-panel -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SchrodingersGat/inventree-test-statistics -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SchrodingersGat/inventree-wireviz -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /matmair/inventree-zapier -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /SergeoLacruz/inventree-zebra-plugin -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /wolflu05/inventree-zebra -2026-08-13T01:42:37+00:00 +2026-08-14T01:40:49+00:00 /404 @@ -440,19 +440,19 @@ /fund.html -/alternatives/ - - -/about/ +/extend/plugin/ /extend/integrate/ -/extend/plugin/ +/extend/ -/extend/ +/about/ + + +/alternatives/ / diff --git a/wolflu05.html b/wolflu05.html index 9c865630..55f50d0d 100644 --- a/wolflu05.html +++ b/wolflu05.html @@ -30,11 +30,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"InvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is at the center of an ecosystem of addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.","headline":"Wolflu05","mainEntityOfPage":{"@type":"WebPage","@id":"/wolflu05"},"url":"/wolflu05"} diff --git a/wolflu05/inventree-bulk-plugin.html b/wolflu05/inventree-bulk-plugin.html index 14661a50..a8008963 100644 --- a/wolflu05/inventree-bulk-plugin.html +++ b/wolflu05/inventree-bulk-plugin.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"wolflu05"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Bulk creation plugin for InvenTree","headline":"Inventree Bulk Plugin","mainEntityOfPage":{"@type":"WebPage","@id":"/wolflu05/inventree-bulk-plugin"},"url":"/wolflu05/inventree-bulk-plugin"} @@ -69,7 +69,7 @@

     wolflu05

    -last modified: 13 Aug 2026 +last modified: 14 Aug 2026
    diff --git a/wolflu05/inventree-cups-plugin.html b/wolflu05/inventree-cups-plugin.html index dc1740e1..09c2210b 100644 --- a/wolflu05/inventree-cups-plugin.html +++ b/wolflu05/inventree-cups-plugin.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"wolflu05"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Label printing plugin for generic cups printers","headline":"Inventree Cups Plugin","mainEntityOfPage":{"@type":"WebPage","@id":"/wolflu05/inventree-cups-plugin"},"url":"/wolflu05/inventree-cups-plugin"} @@ -69,7 +69,7 @@

     wolflu05

    -last modified: 13 Aug 2026 +last modified: 14 Aug 2026
    diff --git a/wolflu05/inventree-dymo-plugin.html b/wolflu05/inventree-dymo-plugin.html index 9fd6d686..f2dcae92 100644 --- a/wolflu05/inventree-dymo-plugin.html +++ b/wolflu05/inventree-dymo-plugin.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"wolflu05"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Dymo label printer driver plugin for InvenTree","headline":"Inventree Dymo Plugin","mainEntityOfPage":{"@type":"WebPage","@id":"/wolflu05/inventree-dymo-plugin"},"url":"/wolflu05/inventree-dymo-plugin"} @@ -69,7 +69,7 @@

     wolflu05

    -last modified: 13 Aug 2026 +last modified: 14 Aug 2026
    diff --git a/wolflu05/inventree-report-lsp-plugin.html b/wolflu05/inventree-report-lsp-plugin.html index 55332fe0..3cf5418c 100644 --- a/wolflu05/inventree-report-lsp-plugin.html +++ b/wolflu05/inventree-report-lsp-plugin.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"wolflu05"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"A report editor with auto completion, diagnostic messages and many more capabilities to help with creating custom templates, powered by django-template-lsp.","headline":"Inventree Report Lsp Plugin","mainEntityOfPage":{"@type":"WebPage","@id":"/wolflu05/inventree-report-lsp-plugin"},"url":"/wolflu05/inventree-report-lsp-plugin"} @@ -69,7 +69,7 @@

     wolflu05

    -last modified: 13 Aug 2026 +last modified: 14 Aug 2026
    diff --git a/wolflu05/inventree-zebra.html b/wolflu05/inventree-zebra.html index cec36f3f..c091a613 100644 --- a/wolflu05/inventree-zebra.html +++ b/wolflu05/inventree-zebra.html @@ -31,11 +31,11 @@ - + +{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"wolflu05"},"dateModified":"2026-08-14T01:40:49+00:00","datePublished":"2026-08-14T01:40:49+00:00","description":"Zebra label printer driver plugin for InvenTree","headline":"Inventree Zebra","mainEntityOfPage":{"@type":"WebPage","@id":"/wolflu05/inventree-zebra"},"url":"/wolflu05/inventree-zebra"} @@ -69,7 +69,7 @@

     wolflu05

    -last modified: 13 Aug 2026 +last modified: 14 Aug 2026