<img style="width:200px" src="http://www.dynamicsmobile.com/wp-content/themes/dynamics-mobile/images/logo-color.svg">

<img src="https://blobscdn.gitbook.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-LwVUDxedYwpip_L1blO%2F-LwVUcgZYMj2-eYnSgcR%2F-LwVXETcT4VHe8sLj0bE%2Fappdevpreview.gif?generation=1576798873911893&alt=media">

[Guides](https://guides.dynamicsmobile.com) • [Website](https://www.dynamicsmobile.com)  • [Contact](https://www.dynamicsmobile.com/contacts) • [Login](https://portal.dynamicsmobile.com/login.html) • 

# dynamicsmobile-print
A comprehensive library for generating and printing receipts using various printer languages.

# Overview
The dynamicsmobile-print library provides functionality for generating printable output in multiple printer languages including ZPL (Zebra), CPCL, ESC/P2, HTML, and plain text. It enables seamless integration with various printer types for receipt generation in mobile and desktop applications.

# Features
## Multi-language Support:

ZebraZPL (for Zebra printers)
BrotherZPL (for Brother printers with ZPL support)
CPCL (beta support for CPCL compatible printers)
Text (plain text output)
HTML (for web display or native printing)
ESC/P2 (for Epson and compatible printers)
Flexible Receipt Generation:

Template-based generation using Handlebars
Direct programmatic generation
Rich Content Support:

Text formatting with multiple styles
Image printing capabilities
QR codes and barcodes
Tables and structured layouts
Horizontal rulers and dividers
Customization Options:

Page width configuration
Font size and style options
Text alignment and formatting

## Installation
```bash
npm install dynamicsmobile-print
```

## Basic Usage

```typescript
 
import { 
  PrinterLanguageFactory, 
  PrinterTypes, 
  ReceiptTemplateGenerator 
} from 'dynamicsmobile-print';

// Create a printer language instance
const printerLanguage = PrinterLanguageFactory.getPrinterLanguage(PrinterTypes.ZebraZPL);
const receiptTemplate = '....';

// Configure the printer (optional)
printerLanguage.init({ width: 70 });

// Generate content using templates
const templateGenerator = new ReceiptTemplateGenerator();
const receipt = await templateGenerator.generate(
  {templateType: 'receipt',userName:'someone',template:receiptTemplate,settings:{},translations:{},model:{},printerLanguage: new HtmlPrinterLanguage(),appVersion:'1.0',config:{width:40,currency:'EUR',ruler:'-'} }
);

/
// Get the final output
console.log(receipt); // in html format
```

## Templates
The library supports Handlebars templates for creating receipts. 
Example:
```html
{{#title}}SALES RECEIPT{{/title}}
{{#bold}}Store: {{storeName}}{{/bold}}
{{#normal}}Date: {{date}}{{/normal}}
{{#ruler}}-{{/ruler}}

{{#items}}
  {{#normal}}{{name}} x{{quantity}}{{/normal}}
  {{#alignRight}}${{price}}{{/alignRight}}
{{/items}}

{{#ruler}}={{/ruler}}
{{#bold}}TOTAL: ${{total}}{{/bold}}

{{#qrcode}}{{receiptUrl}}{{/qrcode}}
```

## Supported Printer Types
The library provides implementations for these printer types:

Html - HTML output for web display
Text - Plain text output
ZebraZPL - Zebra ZPL language
BrotherZPL - Brother printers with ZPL support
CPCL - CPCL language (beta)
EscP2 - ESC/P2 language

## Documentation
For detailed API documentation and examples, refer to the source code and included examples.

## License
Proprietary - All rights reserved by Dynamics Mobile

## 📦 Changelog

<!-- changelog:start -->

## [2.8.0](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.7.0...v2.8.0) (2026-04-15)


### Features

* hav-0 add enum for printer encoding ([f9182b8](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/f9182b829eefd47df8efab5cbe6419cf0739c9ed))


### Bug Fixes

* ars-6 issue witn qr printing ([726f8f2](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/726f8f2463f441d06d4c7979c6e58db7ee1ce076))
* hav-0 update ruler positioning ([2e5f380](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/2e5f380d3bdd47b0a09dc34f283afb70a2dd460d))

## [2.7.0](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.6.4...v2.7.0) (2026-01-06)


### Features

*  USBAKERYIMPL-529 updated batch generation with new parameter ([dcea4f5](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/dcea4f55746d1423faa4c7eceaf1b4fc00a61ee3))

### [2.6.4](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.6.3...v2.6.4) (2025-12-01)


### Bug Fixes

* hav-0 issue with configuration change ([d7693a2](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/d7693a2551c961f479fbf37a36c635212ae89abd))

### [2.6.3](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.6.1...v2.6.3) (2025-11-19)

### [2.6.2](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.6.1...v2.6.2) (2025-11-19)

### [2.6.1](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.6.0...v2.6.1) (2025-11-19)


### Bug Fixes

* usbakeryimpl-220 issue with label height ([e968378](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/e968378893034e07faf183ab96ead6e55f215c04))

## [2.6.0](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.7...v2.6.0) (2025-11-18)


### Features

* usbakeryimpl-220 create batch printing ([02d1642](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/02d16426faabe73d8f09e97ffbc119e3084b4693))

## [2.5.0](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.31...v2.5.0) (2025-11-18)


### Features

* usbakeryimpl-220 create batch printing ([02d1642](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/02d16426faabe73d8f09e97ffbc119e3084b4693))

### [2.3.7](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.6...v2.3.7) (2025-10-29)

### [2.3.32](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.7...v2.3.32) (2025-11-17)

### [2.3.31](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.30...v2.3.31) (2025-11-13)

### [2.3.30](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.29...v2.3.30) (2025-11-13)

### [2.3.29](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.28...v2.3.29) (2025-11-13)

### [2.3.28](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.27...v2.3.28) (2025-11-13)

### [2.3.27](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.26...v2.3.27) (2025-11-13)

### [2.3.26](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.25...v2.3.26) (2025-11-13)

### [2.3.25](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.24...v2.3.25) (2025-11-13)

### [2.3.24](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.23...v2.3.24) (2025-11-13)

### [2.3.23](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.21...v2.3.23) (2025-10-31)

### [2.3.21](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.19...v2.3.21) (2025-10-30)

### [2.3.19](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.18...v2.3.19) (2025-10-29)

### [2.3.18](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.17...v2.3.18) (2025-10-29)

### [2.3.17](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.16...v2.3.17) (2025-10-29)

### [2.3.16](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.15...v2.3.16) (2025-10-29)

### [2.3.15](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.14...v2.3.15) (2025-10-29)

### [2.3.14](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.13...v2.3.14) (2025-10-29)

### [2.3.13](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.12...v2.3.13) (2025-10-29)

### [2.3.12](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.11...v2.3.12) (2025-10-29)

### [2.3.11](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.10...v2.3.11) (2025-10-29)

### [2.3.10](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.9...v2.3.10) (2025-10-29)

### [2.3.9](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.8...v2.3.9) (2025-10-29)

### [2.3.8](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.7...v2.3.8) (2025-10-29)

### [2.3.7](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.6...v2.3.7) (2025-10-29)

### [2.3.6](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.5...v2.3.6) (2025-10-29)

### [2.3.5](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.4...v2.3.5) (2025-10-29)

### [2.3.4](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.3...v2.3.4) (2025-10-29)

### [2.3.3](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.2...v2.3.3) (2025-10-29)

### [2.3.2](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.1...v2.3.2) (2025-09-25)


### Bug Fixes

* dietwatsup-112 printLine was not using alignmetn ([eff8679](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/eff86792fba61d5006351e8a32a5464e6154dbdb))
* dietwatsup-112 restore previous printImage logic ([d2d4a5c](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/d2d4a5c1967d963984ef4cf1ffa5302c2d6b95b9))

### [2.3.1](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.3.0...v2.3.1) (2025-09-25)

## [2.3.0](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.2.1...v2.3.0) (2025-09-25)


### Features

* dietwatsup-112 added support for imageRow in zpl ([bdb7146](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/commit/bdb71463b55c93e025c58d0bb2338150d44b53fc))

### [2.2.1](https://github.com/MobileAffairsLTD/dynamicsmobile-print-npm/compare/v2.2.0...v2.2.1) (2025-09-17)

<!-- changelog:end -->
