Table of Contents
Installation and Usage
- Print Control - SpiritWeb
- Label Design - Designer
- Label Printing - SpiritLabel
- Registration Code Authorization
- Membership Authorization
Development Manual
- JS API
- Dynamic Link Library
- REST API
- Third-party Website Integration
- Android Native SDK
- H5 APP
FAQ
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
Print Configuration (Options
Class)
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 IDdata
: 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 errorsDataFormatException
: 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}