You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
from reportlab.lib.pagesizes import *
|
|
from reportlab.pdfgen import canvas
|
|
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak
|
|
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
|
|
from calibrestekje import Book, Publisher, init_session
|
|
|
|
pagewidth, pageheight = landscape(A6)
|
|
|
|
doc = SimpleDocTemplate("text.pdf", pagesize=landscape(A6),
|
|
rightMargin=18, leftMargin=18,
|
|
topMargin=0, bottomMargin=18)
|
|
|
|
content = []
|
|
styles = getSampleStyleSheet()
|
|
|
|
session = init_session("sqlite:///metadata.db")
|
|
|
|
for book in session.query(Book).all():
|
|
|
|
print (book.title)
|
|
print (book.authors)
|
|
|
|
# c.drawString(10,pageheight-10, book.title)
|
|
# c.showPage()
|
|
|
|
# create a paragraph and append content to it - e.g. book.title, book.authors etc
|
|
p = Paragraph('<font size=12>{}</font>'.format(book.title), styles["Italic"])
|
|
|
|
content.append(p)
|
|
# content.append(PageBreak())
|
|
content.append(Spacer(1, 12))
|
|
|
|
#import ipdb; ipdb.set_trace()
|
|
|
|
format_string = '<font size=12>{}</font>'
|
|
all_authors = [author.name for author in book.authors]
|
|
glued_together = format_string.format(", ".join(all_authors))
|
|
|
|
# ALTERNATIVE WAY... (without list comprehensions)
|
|
first = True
|
|
author_text = ""
|
|
for author in book.authors:
|
|
if not first:
|
|
author_text += ", "
|
|
author_text += author.name
|
|
first = False
|
|
author_text = "<font size=12>{}</font>".format(author_text)
|
|
|
|
#if all_authors==['John Markoff']:
|
|
# import ipdb; ipdb.set_trace()
|
|
|
|
p = Paragraph(glued_together, styles["Normal"])
|
|
content.append(p)
|
|
content.append(PageBreak())
|
|
content.append(Spacer(1, 12))
|
|
|
|
doc.build(content) |