0 purchases
zsdk
zsdk #
Zebra Link OS SDK Flutter plugin. #
This is a flutter plugin for the Link-OS Multiplatform SDK for Zebra
Features #
Feature
iOS
Android
Print ZPL from String
✅
✅
Print ZPL from file
✅
✅
Print PDF from byte array
☑️
☑️
Print PDF from file
✅
✅
Get printer settings
✅
✅
Set printer settings
✅
✅
Check printer status
✅
✅
Print configuration label
✅
✅
Run calibration
✅
✅
Reboot printer
✅
✅
Currently this plugin only supports TCP/IP connection to the Printer.
Note: #
Since v3.1.0+1 the plugin supports PDF direct printing on both iOS and Android, before this version, the PDF printing was only available on Android, and it was by using some kind of workaround converting the PDF to image and printing it as image, which was not reliable and caused some issues depending on the document dimensions, etc.
Now the PDF Direct printing is the right way and according to the manufacturer, you just need to be sure your printing OS is >= Link-OS v6.3 and you have installed the Virtual Device for PDF Direct.
Steps:
Upgrade Zebra Printer Firmware
Install and Enable Virtual Device for PDF Direct
iOS Setup #
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
copied to clipboard
Android Setup #
No setup required
How to use #
Add dependency #
# Add this line to your flutter project dependencies
zsdk: ^2.0.0+11
copied to clipboard
and run flutter pub get to download the library sources to your pub-cache.
Initialize a ZSDK object #
final zsdk = ZSDK();
copied to clipboard
Start the printer calibration #
zsdk.doManualCalibrationOverTCPIP(
address: '10.0.0.100',
port: 9100 //optional
)
copied to clipboard
Get printer settings #
zsdk.getPrinterSettingsOverTCPIP(
address: '10.0.0.100',
port: 9100 //optional
).then(value) {
final printerSettings = PrinterResponse.fromMap(value).settings;
};
copied to clipboard
Set printer settings #
zsdk.setPrinterSettingsOverTCPIP(
address: '10.0.0.100',
port: 9100, //optional
settings: PrinterSettings(
darkness: 10,
printSpeed: 6,
tearOff: 0,
mediaType: MediaType.MARK,
printMethod: PrintMethod.DIRECT_THERMAL,
printWidth: 568,
labelLength: 1202,
labelLengthMax: 39,
zplMode: ZPLMode.ZPL_II,
powerUpAction: PowerUpAction.NO_MOTION,
headCloseAction: HeadCloseAction.NO_MOTION,
labelTop: 0,
leftPosition: 0,
printMode: PrintMode.TEAR_OFF,
reprintMode: ReprintMode.OFF,
)
).then(value) {
final printerResponse = PrinterResponse.fromMap(value);
if(printerResponse.errorCode == ErrorCode.SUCCESS) {
//Do something
} else {
Status status = printerResponse.statusInfo.status;
Cause cause = printerResponse.statusInfo.cause;
//Do something
}
}
copied to clipboard
Reset printer settings #
zsdk.setPrinterSettingsOverTCPIP(
address: '10.0.0.100',
port: 9100, //optional
settings: PrinterSettings.defaultSettings()
).then(value) {
final printerResponse = PrinterResponse.fromMap(value);
if(printerResponse.errorCode == ErrorCode.SUCCESS) {
//Do something
} else {
Status status = printerResponse.statusInfo.status;
Cause cause = printerResponse.statusInfo.cause;
//Do something
}
}
copied to clipboard
Check printer status #
zsdk.checkPrinterStatusOverTCPIP(
address: '10.0.0.100',
port: 9100, //optional
).then(value) {
final printerResponse = PrinterResponse.fromMap(value);
Status status = printerResponse.statusInfo.status;
print(status);
if(printerResponse.errorCode == ErrorCode.SUCCESS) {
//Do something
} else {
Cause cause = printerResponse.statusInfo.cause;
print(cause);
}
}
copied to clipboard
Reboot printer #
zsdk.rebootPrinter(
address: '10.0.0.100',
port: 9100, //optional
).then(value) {
final printerResponse = PrinterResponse.fromMap(value);
Status status = printerResponse.statusInfo.status;
print(status);
if(printerResponse.errorCode == ErrorCode.SUCCESS) {
//Do something
} else {
Cause cause = printerResponse.statusInfo.cause;
print(cause);
}
}
copied to clipboard
Print zpl file #
zsdk.printZplFileOverTCPIP(
filePath: '/path/to/file.pdf',
address: '10.0.0.100',
port: 9100, //optional
).then(value) {
final printerResponse = PrinterResponse.fromMap(value);
Status status = printerResponse.statusInfo.status;
print(status);
if(printerResponse.errorCode == ErrorCode.SUCCESS) {
//Do something
} else {
Cause cause = printerResponse.statusInfo.cause;
print(cause);
}
}
copied to clipboard
Print zpl data #
zsdk.printZplDataOverTCPIP(
data: '^XA^FO17,16^GB379,371,8^FS^FT65,255^A0N,135,134^FDTEST^FS^XZ',
address: '10.0.0.100',
port: 9100, //optional
).then(value) {
final printerResponse = PrinterResponse.fromMap(value);
Status status = printerResponse.statusInfo.status;
print(status);
if(printerResponse.errorCode == ErrorCode.SUCCESS) {
//Do something
} else {
Cause cause = printerResponse.statusInfo.cause;
print(cause);
}
}
copied to clipboard
Print pdf file #
zsdk.printPdfFileOverTCPIP(
filePath: '/path/to/file.pdf',
address: '10.0.0.100',
port: 9100, //optional
).then(value) {
final printerResponse = PrinterResponse.fromMap(value);
Status status = printerResponse.statusInfo.status;
print(status);
if(printerResponse.errorCode == ErrorCode.SUCCESS) {
//Do something
} else {
Cause cause = printerResponse.statusInfo.cause;
print(cause);
}
}
copied to clipboard
Check the example code for more details
Tested Zebra Devices #
Zebra ZT411
Zebra ZD500 Series
ZD620
ZQ620
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.