mirror of
				https://github.com/inventree/inventree-docs.git
				synced 2025-11-04 06:25:39 +00:00 
			
		
		
		
	Adds a simple example of a LabelPrintingMixin plugin
This commit is contained in:
		@@ -4,12 +4,49 @@ title: Label Mixin
 | 
			
		||||
 | 
			
		||||
## LabelPrintingMixin
 | 
			
		||||
 | 
			
		||||
The `LabelPrintingMixin` class enables plugins to print labels directly to a connected printer.
 | 
			
		||||
The `LabelPrintingMixin` class enables plugins to print labels directly to a connected printer. Custom plugins can be written to support any printer backend.
 | 
			
		||||
 | 
			
		||||
An example of this is the [inventree-brother-plugin](https://github.com/inventree/inventree-brother-plugin) which provides native support for the Brother QL and PT series of networked label printers.
 | 
			
		||||
 | 
			
		||||
### Web Integration
 | 
			
		||||
 | 
			
		||||
If label printing plugins are enabled, they are able to be used directly from the InvenTree web interface:
 | 
			
		||||
 | 
			
		||||
{% with id="label_print", url="plugin/print_label_select_plugin.png", description="Print label via plugin" %}
 | 
			
		||||
{% include 'img.html' %}
 | 
			
		||||
{% endwith %}
 | 
			
		||||
{% endwith %}
 | 
			
		||||
 | 
			
		||||
### App Integration
 | 
			
		||||
 | 
			
		||||
Label printing plugins also allow direct printing of labels via the [mobile app](../../app/stock.md#print-label)
 | 
			
		||||
 | 
			
		||||
## Implementation
 | 
			
		||||
 | 
			
		||||
Plugins which implement the `LabelPrintingMixin` mixin class must provide a `print_label` function:
 | 
			
		||||
 | 
			
		||||
```python
 | 
			
		||||
from dummy_printer import printer_backend
 | 
			
		||||
 | 
			
		||||
class MyLabelPrinter(LabelPrintingMixin, IntegrationPluginBase):
 | 
			
		||||
    """
 | 
			
		||||
    A simple example plugin which provides support for a dummy printer.
 | 
			
		||||
 | 
			
		||||
    A more complex plugin would communicate with an actual printer!
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    PLUGIN_NAME = "MyLabelPrinter"
 | 
			
		||||
    PLUGIN_SLUG = "mylabel"
 | 
			
		||||
    PLUGIN_TITLE = "A dummy printer"
 | 
			
		||||
 | 
			
		||||
    def print_label(self, label):
 | 
			
		||||
        """
 | 
			
		||||
        Send the label to the printer
 | 
			
		||||
        
 | 
			
		||||
        Arguments:
 | 
			
		||||
            label: A PIL (pillow) Image file
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        printer_backend.print(label)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user