simoon
3 years ago
1 changed files with 79 additions and 0 deletions
@ -0,0 +1,79 @@ |
|||||
|
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, Comment, 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") |
||||
|
|
||||
|
# if book id from book table is the same as book id from comment table, show me that |
||||
|
for book in session.query(Book).all(): |
||||
|
for comment in session.query(Comment).all(): |
||||
|
if (book.id) == (comment.book): |
||||
|
print (book.id) |
||||
|
print (book.title) |
||||
|
print (book.authors) |
||||
|
print (book.timestamp) |
||||
|
print (book.path) |
||||
|
print (book.tags) |
||||
|
print (comment.text) |
||||
|
|
||||
|
|
||||
|
# create a paragraph and append content to it - e.g. book.title, book.authors etc |
||||
|
ptitle = Paragraph('<font size=12>{}</font>'.format(book.title), styles["Italic"]) |
||||
|
ptime = Paragraph('<font size=10>Uploaded: {}</font>'.format(book.timestamp), styles["Normal"]) |
||||
|
pcomments = Paragraph('<font size=10>{}</font>'.format(comment.text)) |
||||
|
|
||||
|
# list comprehensions for authors and tags |
||||
|
format_string = '<font size=12>{}</font>' |
||||
|
all_authors = [author.name for author in book.authors] |
||||
|
glued_together = format_string.format(", ".join(all_authors)) |
||||
|
|
||||
|
format_string = '<font size=10>{}</font>' |
||||
|
all_tags = [tag.name for tag in book.tags] |
||||
|
tags_glued_together = format_string.format(", ".join(all_tags)) |
||||
|
|
||||
|
# format_string = '<font size=10>{}</font>' |
||||
|
# all_comments = [comment.name for comment in comment.text] |
||||
|
# comments_split_apart = format_string.format("".split(all_comments)[:50]) |
||||
|
|
||||
|
# import ipdb; ipdb.set_trace() |
||||
|
|
||||
|
# append the other content |
||||
|
content.append(ptitle) |
||||
|
content.append(Spacer(1, 12)) |
||||
|
content.append(ptime) |
||||
|
content.append(Spacer(1, 12)) |
||||
|
content.append(pcomments) |
||||
|
|
||||
|
# alternative way to list multiple authors... (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) |
||||
|
|
||||
|
# gluing together authors, tags |
||||
|
p = Paragraph(glued_together, styles["Normal"]) |
||||
|
content.append(p) |
||||
|
content.append(PageBreak()) |
||||
|
content.append(Spacer(6, 12)) |
||||
|
|
||||
|
p = Paragraph(tags_glued_together, styles["Normal"]) |
||||
|
content.append(p) |
||||
|
content.append(PageBreak()) |
||||
|
content.append(Spacer(6, 12)) |
||||
|
|
||||
|
doc.build(content) |
Loading…
Reference in new issue