rowLabel method

void rowLabel(
  1. String label,
  2. String value, {
  3. FontSize size = FontSize.normal,
  4. bool bold = false,
})

Smart row dengan alignment otomatis untuk tanda ":"

Format: Label : Value dengan tanda : selaras vertikal Contoh:

receipt.rowLabel('Nama Penerima', 'John Doe');
receipt.rowLabel('No. Referensi', '123456789');
receipt.rowLabel('Tanggal', '2026-02-03');

Akan menghasilkan:

Nama Penerima : John Doe
No. Referensi : 123456789
Tanggal       : 2026-02-03

Tanda ":" akan selaras berdasarkan label terpanjang

Implementation

void rowLabel(
  String label,
  String value, {
  FontSize size = FontSize.normal,
  bool bold = false,
}) {
  // Hitung jumlah karakter yang tersedia
  final charsPerLine = size.getCharsPerLine58mm(); // Default 58mm, bisa disesuaikan

  // Format: label (dengan padding) + " : " + value
  // Minimum padding adalah 1 karakter
  final colonText = ' : ';
  final maxLabelWidth = (charsPerLine * 0.4).floor(); // 40% untuk label

  // Jika label lebih panjang dari maksimal, gunakan apa adanya
  final paddedLabel = label.length <= maxLabelWidth
      ? label.padRight(maxLabelWidth)
      : label;

  final fullText = '$paddedLabel$colonText$value';

  // Cetak sebagai text biasa dengan alignment left
  text(fullText, size: size, bold: bold, center: false);
}