From 332e373583f3d83704a98b50d5af72e653efe3a0 Mon Sep 17 00:00:00 2001 From: "luke@maurits.id.au" Date: Mon, 7 Oct 2013 22:04:12 +0000 Subject: First implementation of paginate method. git-svn-id: http://prettytable.googlecode.com/svn/trunk@143 0f58610c-415a-11de-9c03-5d6cfad8e937 --- CHANGELOG | 2 ++ prettytable.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index b68925b..7a4bfaa 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,7 @@ ########## PrettyTable 0.8 - Oct XX, 2013 ########### +* New "paginate" method can be used to produce strings suitable + for piping to lp/lpr. * from_html now handles HTML tables with colspan, rather than choking on them. * Added "min_width", "min_table_width" and "max_table_width" diff --git a/prettytable.py b/prettytable.py index 38bf75a..5434e6d 100644 --- a/prettytable.py +++ b/prettytable.py @@ -1304,6 +1304,19 @@ class PrettyTable(object): return "\n".join(bits) + def paginate(self, page_length=58, **kwargs): + + pages = [] + kwargs["start"] = kwargs.get("start", 0) + true_end = kwargs.get("end", self.rowcount) + while True: + kwargs["end"] = min(kwargs["start"] + page_length, true_end) + pages.append(self.get_string(**kwargs)) + if kwargs["end"] == true_end: + break + kwargs["start"] += page_length + return "\f".join(pages) + ############################## # HTML STRING METHODS # ############################## -- cgit v1.2.1