PrintSpirit REST API Java Client SDK Documentation

Overview

This client facilitates interaction with PrintSpirit services, supporting label printing, printer management, and related functionalities. Core capabilities include label printing, printer reset, cache cleanup, virtual printer registration, and more.


Client Initialization

Constructors

1public Client(String ip, int port)
2public Client(String ip) // Default port 9011

Examples:

1Client client = new Client("192.168.1.100", 9011);
2Client client = new Client("192.168.1.100"); // Using default port 9011

Initialization

1Options opts = new Options("Printer Name", PrinterType.ZPL);
2// Or with default type
3Options opts = new Options("Printer Name");

Configuration Methods

Method Description Example
.row(int r) Set print rows opts.row(2)
.col(int c) Set print columns opts.col(3)
.size(int size) Set single-value size opts.size(50)
.size(int w, int h) Set width/height dimensions opts.size(100, 200)
.gap(int gapX, int gapY) Set gap spacing opts.gap(5, 10)
.quality(Qty q) Set print quality opts.quality(Options.Qty.Hight)
.flush(boolean f) Immediate print flush opts.flush(false)

Enumerations

1enum PrinterType { ZPL, CPCL, TSPL, ESCPOS }
2enum Qty { Fast, Middle, Hight }

Core API Methods

1. Print Label

1public Result Print(..., String label_id, List data)

Supports multiple overloads:

Form 1 - Using Options

1Result Print(Options opts, String label_id, List data)

Form 2 - Using Map Configuration

1Result Print(Map<String, Object> opts, String label_id, List data)

Parameters:

  • label_id: Template ID
  • data: Variable data list (supports List or Map formats)
  • opts: Printer configuration (Options class recommended)

Example:

1Options opts = new Options("Zebra_123")
2    .row(2)
3    .quality(Options.Qty.Hight);
4
5Map<String, Object> data = new HashMap<>();
6data.put("barcode", "ABC123");
7
8Result res = client.Print(opts, "label_template_1", data);

2. Reset Printer

1public Result ResetPrinter(String prnname)

Clears printer queue and cache.

Example:

1Result res = client.ResetPrinter("Zebra_123");

3. Clear Cache

1public void ClearCache()

Clears server-side cache.

Example:

1client.ClearCache();

4. Register Virtual Printer

1public String RegisterVirtualPrinter(Options opts)

Returns token for retrieving rendered data.

Example:

1Options opts = new Options("Virtual_Printer", PrinterType.ZPL);
2String token = client.RegisterVirtualPrinter(opts);

5. Data Decoding

1public static byte[] decode(String data)

Decodes BASE64 + ZLIB compressed data (for virtual printer output).

Example:

1byte[] decoded = Client.decode(base64Data);

Result Handling (Result Class)

1public class Result {
2    public String rc;  // Return code ("OK" indicates success)
3    public int cnt;    // Print count
4    public String msg; // Additional message/error info
5}

Exception Handling

Custom Exception

1public class RegisterErrorException extends RuntimeException

Common Exceptions

  • IOException: Network communication errors
  • DataFormatException: Data decoding failures

Usage Examples

Complete Printing Workflow

 1Client client = new Client("192.168.1.100");
 2
 3Options opts = new Options("Zebra_123", PrinterType.ZPL)
 4    .row(2)
 5    .quality(Options.Qty.Hight);
 6
 7Map<String, Object> data = new HashMap<>();
 8data.put("productCode", "P12345");
 9data.put("batchNo", "B67890");
10
11try {
12    Result res = client.Print(opts, "product_label", data);
13    if ("OK".equals(res.rc)) {
14        System.out.println("Print success, quantity: " + res.cnt);
15    } else {
16        System.out.println("Print failed: " + res.msg);
17    }
18} catch (IOException e) {
19    e.printStackTrace();
20}

Leave Your Message

login