1 #ifndef SIMPLEINVOICEPRINTER_H
2 #define SIMPLEINVOICEPRINTER_H
3
4 #include <string>
5 #include <vector>
6
7 using namespace std;
8
9 #include "invoiceprinter.h"
10
11 /**
12 Prints an invoice in a monospaced font, using spaces to
13 align the columns.
14 */
15 class SimpleInvoicePrinter : public InvoicePrinter
16 {
17 public:
18 /**
19 Constructs a simple invoice printer and sets the colum widths.
20 @param widths an array of column widths
21 */
22 SimpleInvoicePrinter(vector<int> widths);
23 virtual void print_header(string s);
24 virtual void print_string(string value, bool pad_right);
25 virtual void print_number(double value, int precision);
26 virtual void print_footer(string s, double total);
27 private:
28 void next_column();
29 int column;
30 vector<int> column_widths;
31 };
32
33 #endif