# Citizen ZPL Printer for Odoo This module allows direct ZPL printing from Odoo to Citizen Label Printers (e.g., CL-S621, CL-S631) via a network connection (socket). It provides a wizard to select lots and quantities before printing. ## Features * **Direct Printing**: Sends ZPL commands directly to the printer's IP address. * **Print Wizard**: Select specific lots and quantity of labels to print from a Stock Picking. * **Customizable Layout**: Configure label size, margins, and content size in dots. * **Image Support**: Print Company Logo and a Custom Image (e.g., "Fragile" icon). * **Barcode Support**: Prints Code128 and Datamatrix/GS1 barcodes. ## Configuration Go to **Settings > Inventory > Citizen ZPL Printer**. ### 1. Connection * **IP Address**: The IP address of your printer. * **Port**: Port number (default is 9100). ### 2. Label Dimensions (Dots) Configure the physical size of your label. * **Formula (203 DPI)**: `1 mm ≈ 8 dots` * **Example (60mm x 30mm)**: * Width: 480 dots * Height: 240 dots ### 3. Content Settings * **Font Size**: Height of the text in dots (30 dots ≈ 3.75mm). * **Barcode Height**: Height of the barcode in dots. * **Module Width**: Density of the barcode (Default 2). ### 4. Images * **Print Company Logo**: Prints the company logo at the bottom center. * **Custom Image**: Upload an additional image to print at the bottom right. ## Usage 1. Open a **Stock Picking** (Transfer) in "Done" state. 2. Click the **Print ZPL Barcode** button. 3. A wizard will open listing all lots in the picking. 4. Adjust the **Copies** (Quantity) for each lot if needed. 5. Click **Print**. ## Technical Details * **DPI**: This module is optimized for 203 DPI printers. For 300 DPI, multiply dot values by ~1.5. * **ZPL Template**: The ZPL code is generated using QWeb view `citizen_zpl_printer.label_citizen_template_view`.