zebra_printer 0.1.1 copy "zebra_printer: ^0.1.1" to clipboard
zebra_printer: ^0.1.1 copied to clipboard

Zebra yazıcılar için Flutter yönetim paketi. Bluetooth bağlantısı ve ZPL gönderimi için Zebra Link-OS SDK kullanır.

Zebra Printer #

pub package License: MIT

Zebra yazıcılar için Flutter paketi. Bluetooth bağlantısı ve ZPL gönderimi için kullanılır. Zebra Link-OS SDK'sını kullanarak Zebra yazıcılarla iletişim kurmanızı sağlar.

Özellikler #

  • Bluetooth cihazlarını tarama ve keşfetme
  • Bluetooth cihazlarıyla eşleşme ve eşleşmeyi kaldırma
  • Zebra yazıcılara bağlanma ve bağlantıyı kesme
  • ZPL kodunu yazıcıya gönderme
  • Yazıcı durumunu kontrol etme
  • Yazıcı hakkında bilgi alma

Kurulum #

pubspec.yaml dosyanıza paketi ekleyin:

dependencies:
  zebra_printer: ^0.1.0

Android Kurulumu #

Android için gerekli izinleri android/app/src/main/AndroidManifest.xml dosyasına ekleyin:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Android 12 ve üzeri için ek izinler gerekebilir. Detaylı bilgi için Flutter Bluetooth Permissions sayfasına bakabilirsiniz.

Kullanım #

Temel Kullanım #

import 'package:zebra_printer/zebra_printer.dart';

// Bluetooth yöneticisini başlat
final bluetoothManager = BluetoothManager();

// Yazıcı yöneticisini başlat
final printerManager = PrinterManager();

// Bluetooth'un açık olup olmadığını kontrol et
bool isEnabled = await bluetoothManager.isBluetoothEnabled();

// Eşleştirilmiş cihazları al
List<BluetoothDevice> bondedDevices = await bluetoothManager.getBondedDevices();

// Cihaz keşfini başlat
await bluetoothManager.startDiscovery();

// Cihaz keşfini durdur
await bluetoothManager.stopDiscovery();

// Cihaza bağlan
await bluetoothManager.connect('00:11:22:33:44:55');

// Bağlantıyı kes
await bluetoothManager.disconnect();

// ZPL kodu gönder
try {
  String result = await printerManager.sendZplToPrinter('00:11:22:33:44:55', '^XA^FO50,50^A0N,50,50^FDHello, World!^FS^XZ');
  print('Baskı başarılı: $result');
} catch (e) {
  print('Baskı hatası: $e');
}

// Test etiketi yazdır
try {
  String result = await printerManager.printTestLabel('00:11:22:33:44:55');
  print('Test baskısı başarılı: $result');
} catch (e) {
  print('Test baskısı hatası: $e');
}

// Yazıcı durumunu kontrol et
try {
  PrinterStatus status = await printerManager.checkPrinterStatus('00:11:22:33:44:55');
  print('Yazıcı durumu: $status');
} catch (e) {
  print('Durum kontrolü hatası: $e');
}

Bluetooth Cihaz Keşfi ve Bağlantı Yönetimi #

// Bluetooth Manager örneği oluştur
final bluetoothManager = BluetoothManager();

// Bluetooth durumunu dinle
bluetoothManager.onConnectionStateChanged.listen((state) {
  print('Bağlantı durumu değişti: $state');
  
  if (state == BluetoothConnectionState.connected) {
    print('Cihaza bağlandı: ${bluetoothManager.connectedDevice?.name}');
  }
});

// Tarama durumunu dinle
bluetoothManager.onScanStateChanged.listen((state) {
  print('Tarama durumu değişti: $state');
});

// Cihaz bulunduğunda bildirim al
bluetoothManager.onDeviceFound.listen((device) {
  print('Cihaz bulundu: ${device.name} (${device.address})');
});

// Tarama tamamlandığında bildirim al
bluetoothManager.onDiscoveryFinished.listen((_) {
  print('Tarama tamamlandı');
  print('Bulunan cihazlar: ${bluetoothManager.devices.length}');
});

// Taramayı başlat
await bluetoothManager.startDiscovery();

// Bir süre sonra taramayı durdur
await Future.delayed(Duration(seconds: 10));
await bluetoothManager.stopDiscovery();

// Bulunan cihazları listele
for (var device in bluetoothManager.devices) {
  print('${device.name} (${device.address}) - Tür: ${device.type}');
}

// Eşleştirilmiş cihazları listele
final bondedDevices = await bluetoothManager.getBondedDevices();
for (var device in bondedDevices) {
  print('Eşleştirilmiş: ${device.name} (${device.address})');
}

// Cihaza bağlan
final targetDevice = bluetoothManager.devices.firstWhere(
  (d) => d.name?.contains('Zebra') ?? false,
  orElse: () => null,
);

if (targetDevice != null) {
  await bluetoothManager.connect(targetDevice.address);
}

// Kaynakları temizle
bluetoothManager.dispose();

Enum Kullanımı #

Bu paket, daha okunabilir ve tip güvenli kod için integer değerler yerine enum'ları kullanır:

BluetoothDeviceType #

enum BluetoothDeviceType {
  unknown,  // 0
  classic,  // 1
  le,       // 2
  dual      // 3
}

BluetoothBondState #

enum BluetoothBondState {
  none,     // 10
  bonding,  // 11
  bonded    // 12
}

BluetoothConnectionState #

enum BluetoothConnectionState {
  disconnected,
  connecting,
  connected,
  disconnecting,
  error
}

BluetoothScanState #

enum BluetoothScanState {
  idle,
  starting,
  scanning,
  stopping
}

PrinterConnectionState, PaperState, HeadState, PauseState #

enum PrinterConnectionState {
  connected,
  disconnected
}

enum PaperState {
  present,
  out
}

enum HeadState {
  closed,
  open
}

enum PauseState {
  running,
  paused
}

ZPL Örnekleri #

Basit ZPL Örnekleri #

// Basit bir etiket oluşturma
String createSimpleLabel(String text) {
  return """
^XA
^FO50,50
^A0N,50,50
^FD$text^FS
^XZ
""";
}

// Barkod içeren bir etiket oluşturma
String createBarcodeLabel(String barcode) {
  return """
^XA
^FO50,50
^A0N,30,30
^FDBarkod:^FS
^FO50,100
^BY3
^BCN,100,Y,N,N
^FD$barcode^FS
^XZ
""";
}

// QR kod içeren bir etiket oluşturma
String createQRCodeLabel(String data) {
  return """
^XA
^FO50,50
^A0N,30,30
^FDQR Kod:^FS
^FO50,100
^BQN,2,10
^FDMA,$data^FS
^XZ
""";
}

Bu paket, Zebra Link-OS SDK'yı kullanır. Daha detaylı bilgi için Zebra'nın resmi dokümantasyonuna bakabilirsiniz.

Lisans #

Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakabilirsiniz.

0
likes
0
points
48
downloads

Publisher

unverified uploader

Weekly Downloads

Zebra yazıcılar için Flutter yönetim paketi. Bluetooth bağlantısı ve ZPL gönderimi için Zebra Link-OS SDK kullanır.

Repository (GitHub)
View/report issues

Topics

#zebra #printer #bluetooth #zpl #label-printing

Documentation

Documentation

License

unknown (license)

Dependencies

flutter

More

Packages that depend on zebra_printer

Packages that implement zebra_printer