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
40
points
7
downloads

Publisher

unverified uploader

Weekly Downloads

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

Homepage

License

Unlicense (license)

More

Packages that depend on flexprint