flexprint 0.0.1+c copy "flexprint: ^0.0.1+c" to clipboard
flexprint: ^0.0.1+c copied to clipboard

Printing tabular reports is made easier using this library. Print Headings, horizontal lines. Print to console or StringBuffer.

example/flexprint_example.dart

import 'dart:convert';

import '../lib/flexprint.dart';

void main() {
  final fp = FlexPrint();
  fp.horizontalLine(doubleLine: true);
  fp.write('Customer Name', flex: 3);
  fp.write('Amount Due', flex: 2, alignment: Alignment.end);
  fp.write('Invoice Details', flex: 3);
  fp.write('Status', flex: 2, alignment: Alignment.center);
  fp.write('\n');
  fp.horizontalLine(doubleLine: true);
  invoices.forEach((row) {
    fp.write(row.name, flex: 3);
    fp.write(row.amountDue.toString(), flex: 2, alignment: Alignment.end);
    fp.write(row.invoiceDetail, flex: 3);
    fp.write(row.status, flex: 2, alignment: Alignment.center);
    fp.write('\n');
  });
  fp.horizontalLine(char: '_');
}

final invoices = [
  Invoice(
      name: 'John Doe & Co',
      amountDue: 6789.12,
      invoiceDetail: "Inv No 66987 of 06/15/2020",
      status: "Due"),
  Invoice(
      name: 'M D Rao & Co',
      amountDue: 16789.12,
      invoiceDetail: "Inv No 66989-92 of 08/12/2020",
      status: "Paid 10/05"),
];

class Invoice {
  String name;
  double amountDue;
  String invoiceDetail;
  String status;
  Invoice({
    this.name,
    this.amountDue,
    this.invoiceDetail,
    this.status,
  });

  Map<String, dynamic> toMap() {
    return {
      'name': name,
      'amountDue': amountDue,
      'invoiceDetail': invoiceDetail,
      'status': status,
    };
  }

  factory Invoice.fromMap(Map<String, dynamic> map) {
    if (map == null) return null;

    return Invoice(
      name: map['name'],
      amountDue: map['amountDue'],
      invoiceDetail: map['invoiceDetail'],
      status: map['status'],
    );
  }

  String toJson() => json.encode(toMap());

  factory Invoice.fromJson(String source) =>
      Invoice.fromMap(json.decode(source));
}
0
likes
30
pub points
0%
popularity

Publisher

unverified uploader

Printing tabular reports is made easier using this library. Print Headings, horizontal lines. Print to console or StringBuffer.

Repository (GitHub)
View/report issues

License

Unlicense (LICENSE)

More

Packages that depend on flexprint