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

outdated

Dart library allowing flex layout to console print. Console Printing tabular reports is made easier using this library. Flexprint allows great flexibilty to specify the table's appearance.

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

Dart library allowing flex layout to console print. Console Printing tabular reports is made easier using this library. Flexprint allows great flexibilty to specify the table's appearance.

Repository (GitHub)
View/report issues

License

Unlicense (LICENSE)

More

Packages that depend on flexprint