本文整理汇总了Python中reportlab.platypus.SimpleDocTemplate.addPageTemplates方法的典型用法代码示例。如果您正苦于以下问题:Python SimpleDocTemplate.addPageTemplates方法的具体用法?Python SimpleDocTemplate.addPageTemplates怎么用?Python SimpleDocTemplate.addPageTemplates使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reportlab.platypus.SimpleDocTemplate
的用法示例。
在下文中一共展示了SimpleDocTemplate.addPageTemplates方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: build
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def build(self, printfile, style=1):
template = SimpleDocTemplate(printfile, showBoundary=0)
tFirst = PageTemplate(id='First', frames=self.getStyle(1, style), onPage=self.myPages, pagesize=defaultPageSize)
tNext = PageTemplate(id='Later', frames=self.getStyle(2, style), onPage=self.myPages, pagesize=defaultPageSize)
template.addPageTemplates([tFirst, tNext])
template.allowSplitting = 1
BaseDocTemplate.build(template, self.data)
示例2: addPageTemplates
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def addPageTemplates(self, pageTemplates):
"""
fix up the one and only Frame
"""
if pageTemplates:
f = pageTemplates[0].frames[0]
f._leftPadding = f._rightPadding = f._topPadding = f._bottomPadding = 0
f._geom()
SimpleDocTemplate.addPageTemplates(self, pageTemplates)
示例3: build
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def build(self, style=1):
template = SimpleDocTemplate(config.get("paths.tempdir", "") + "print.pdf", showBoundary=0)
tFirst = PageTemplate(id='First', frames=self.getStyle(1, style), onPage=self.myPages, pagesize=defaultPageSize)
tNext = PageTemplate(id='Later', frames=self.getStyle(2, style), onPage=self.myPages, pagesize=defaultPageSize)
template.addPageTemplates([tFirst, tNext])
template.allowSplitting = 1
BaseDocTemplate.build(template, self.data)
return template.canv._doc.GetPDFData(template.canv)
示例4: generate_pdf
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def generate_pdf(self):
""" Generate a pdf version of the pools."""
doc = SimpleDocTemplate("files/"+self.name + ".pdf", rightMargin=72, leftMargin=72,
topMargin=72, bottomMargin=18, showBoundary=1)
doc.pagesize=landscape(A4)
Story=[]
file_path="file_path"
date = time.ctime()
header_title="CDL - tableaux de poules"
number_pool="10"
field="Jc et Nath \n3080 Tervuren"
tournament="Double Mixte - Juniors - JUN"
#frames
frameTable = Frame(doc.leftMargin, doc.height*0.20,
doc.height-doc.rightMargin , 400,
leftPadding=0, rightPadding=0, id='normal')
def footer_header(canvas,doc):
"""Footer and header description"""
canvas.saveState()
canvas.setFont('Times-Roman',12)
#Header
header_y=doc.height + 72
canvas.drawString(20, header_y, date)
canvas.drawString(doc.width/2, header_y, header_title)
canvas.drawString(doc.leftMargin, header_y-20, "Numéro:")
canvas.drawString(doc.leftMargin+100, header_y-20, "Terrain:")
canvas.drawString(doc.leftMargin+5, header_y-45, number_pool)
canvas.drawString(doc.leftMargin+105, header_y-45, field)
canvas.drawString(doc.leftMargin+5, header_y-70, tournament)
#Footer
footer_y=10
canvas.drawString(25, footer_y, file_path)
canvas.drawString(doc.width , footer_y, "page %d" % doc.page)
canvas.restoreState()
#Table score
pools = Pool.objects.filter(tournament=self);
templates=[]
for pool in pools:
Story.append(Spacer(1, 48))
Story.append(self.pdf_pool(pool))
Story.append(NextPageTemplate(str(pool)))
Story.append(PageBreak())
templates.append(PageTemplate(id=str(pool),frames=frameTable,onPage=footer_header))
doc.addPageTemplates(templates)
doc.build(Story)
示例5: render
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def render(self, stream=None):
'''
Render the pdf with current lines & style
'''
# Use a buffer when no stream is given
if stream is None:
stream = StringIO()
# Build lines
self.add_days()
self.build_lines()
# Canvas is landscape oriented
pdf = SimpleDocTemplate(stream, pagesize=landscape(letter))
# Table is in a frame
table = Table(self.lines, [1.5* inch ] * 7, self.row_heights, style=self.tableStyle, repeatRows=1)
table.wrap(0,0) # important hacky way to span on full width
tableFrame = Frame(inch / 2, inch / 2, 10*inch, 7*inch)
# RunReport logo
logo = Image('./medias/img/logo_ligne.png')
logo.drawHeight = 2.2*inch*logo.drawHeight / logo.drawWidth
logo.drawWidth = 2.2*inch
# Plan infos are in a frame, in top left corner
context = {
'site' : self.site,
'plan' : self.plan,
}
title = Paragraph(render_to_string('plan/export.pdf.title.html', context), self.titleStyle)
# Add table elements
pdf.addPageTemplates([
PageTemplate(id='table', frames=[tableFrame]),
])
story = [
logo,
title,
Spacer(1, 0.4*inch), # make room for header
table, # the plan
]
pdf.build(story)
if isinstance(stream, StringIO):
output = stream.getvalue()
stream.close()
return output
return None
示例6: build
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def build(self, style=1):
self.h1 = self.styleSheet['Heading1']
self.h1.fontName = 'Helvetica'
self.bv = self.styleSheet['BodyText']
self.bv.fontName = 'Helvetica'
self.bv.fontSize = 7
self.bv.spaceBefore = 0
self.bv.spaceAfter = 0
self.header = self.styleSheet['Heading3']
self.header.fontName = 'Helvetica'
self.data.append(Paragraph(translation.t(self.language, 'mediatumhelptitle'), self.h1))
self.data.append(Paragraph(self.path, self.bv))
self.data.append((FrameBreak()))
# format content
self.content = self.content.replace("\n", "")
repl = {'p': 'BodyText', 'h1': 'Heading1', 'h2': 'Heading2', 'h3': 'Heading3', 'h4': 'Heading4', 'h5': 'Heading5', 'li': 'Bullet'}
curstyle = "BodyText"
for item in re.split(r'<(p|h[1-5]|li)>|<(/p|/h[1-5]|/li)>', self.content):
if item and item != "":
if item in repl.keys():
curstyle = repl[item]
elif item[0] == "/" and item[1:] in repl.keys():
curstyle = ""
else:
if item.strip != "" and curstyle != "":
print 'add', item, "-->", curstyle
if curstyle == "Bullet":
item = "- " + item
print "bullet", item
self.data.append(Paragraph(item, self.styleSheet[curstyle]))
template = SimpleDocTemplate(config.get("paths.tempdir", "") + "help.pdf", showBoundary=0)
tFirst = PageTemplate(id='First', onPage=self.myPages, pagesize=defaultPageSize)
tNext = PageTemplate(id='Later', onPage=self.myPages, pagesize=defaultPageSize)
template.addPageTemplates([tFirst, tNext])
template.allowSplitting = 1
BaseDocTemplate.build(template, self.data)
template.canv.setAuthor(translation.t(self.language, "main_title"))
template.canv.setTitle("%s \n'%s' - %s: %s" % (translation.t(self.language, "edit_stats_header"),
'sdfsdfsdf', translation.t(self.language, "edit_stats_period_header"), '2003'))
return template.canv._doc.GetPDFData(template.canv)
示例7: create_document
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def create_document(self, destination_file, units):
margin = 10 * units
doc = SimpleDocTemplate(destination_file, pagesize=A4, leftMargin=margin, rightMargin=margin,
topMargin=margin, bottomMargin=margin, )
header_left = Frame(margin + 10, 260 * units, 45 * units, 30 * units)
header_right = Frame(60 * units, 260 * units, 150 * units, 30 * units)
body = Frame(margin, 45 * units, doc.width, 230 * units)
footer = Frame(margin, 20 * units, doc.width, 15 * units)
fp = PageTemplate(id=self.FIRST_PAGE_TEMPLATE_ID, frames=[header_left, header_right, body, footer])
sp = PageTemplate(id=self.LATER_PAGES_TEMPLATE_ID, frames=[header_left, header_right, body, footer])
doc.addPageTemplates([fp, sp])
return doc
示例8: SimpleDocTemplate
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
from reportlab.lib.units import inch, cm
from reportlab.lib.pagesizes import A4
from reportlab.platypus import SimpleDocTemplate, LongTable, TableStyle
from reportlab.pdfgen.canvas import Canvas
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.units import inch
from reportlab.platypus import Paragraph, Frame, Spacer
from reportlab.platypus import BaseDocTemplate, Frame, Paragraph, PageBreak, PageTemplate, NextPageTemplate, KeepTogether, FrameBreak
styles=getSampleStyleSheet()
data = "lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et".split()
doc = SimpleDocTemplate("test11.pdf", pagesize = A4, leftMargin = 0, rightMargin = 0, topMargin = 0, showBoundary=1)
Elements=[]
p1 = Paragraph("I am column 1! " * 300, styles['Normal'])
p2 = Paragraph("I am column 2! " * 800, styles['Normal'])
frame1 = Frame(1.45*cm, doc.bottomMargin + 1*cm, doc.width/2-1.45*2*cm, doc.height-7*cm, id='col1')
frame2 = Frame(doc.width/2 + 1.45*cm, doc.bottomMargin + 1*cm, doc.width/2-1.45*2*cm, doc.height-7*cm, id='col2')
doc.addPageTemplates([
PageTemplate(id = 'TwoCol', frames = [frame1,frame2], ),
])
Elements.append(NextPageTemplate('TwoCol'))
Elements.append(KeepTogether(p1))
Elements.append(FrameBreak())
Elements.append(KeepTogether(p2))
doc.build(Elements)
示例9: writeResumePDF
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def writeResumePDF(resumeEntry, outputFile):
doc = SimpleDocTemplate(outputFile, pagesize=letter)
normalFrame = Frame(doc.leftMargin,
doc.rightMargin,
doc.width,
doc.height,
id='normal',)
page = PageTemplate(frames=[normalFrame])
doc.addPageTemplates([page, ])
bulletStyle = ParagraphStyle(name='bulletStyle', leftIndent=0.25*inch)
Document = [] # list of flowables for doc.build
#begin with the resume's header data, piece-by-piece
HeaderData = []
for column in [resumeEntry.middle_initial(),
resumeEntry.email, ]:
if column != '':
HeaderData.append([column, []])
for website in resumeEntry.resume_web_set.all():
HeaderData.append([website.account, []])
i = 0
for column in [resumeEntry.cell,
resumeEntry.home,
resumeEntry.fax,
resumeEntry.address1,
resumeEntry.address2,
resumeEntry.region, ]:
if column != '':
if i == len(HeaderData):
HeaderData.append(['', []])
HeaderData[i][1] = column
i += 1
citstazip = ''
if resumeEntry.city != '':
citstazip += resumeEntry.city
if resumeEntry.state != '':
if citstazip != '':
citstazip += ', '
citstazip += resumeEntry.state
if resumeEntry.zipcode != '':
if citstazip != '':
citstazip += ' '
citstazip += resumeEntry.zipcode
if citstazip != '':
if i == len(HeaderData):
HeaderData.append(['', []])
HeaderData[i][1] = citstazip
i += 1
headerStyle = TableStyle([('ALIGN', (0, 0), (0, -1), 'LEFT'),
('ALIGN', (1, 0), (1, -1), 'RIGHT'), ])
Document.append(Table(HeaderData,
colWidths=[doc.width/2, doc.width/2],
style=headerStyle))
#now for the sections, entries, and datums
outline = resumeEntry.getResumeFields()
for section in outline.keys():
Document.append(KeepTogether([Paragraph(section.section.title,
styles['Normal']),
Paragraph(section.section.description,
styles['Normal'])]))
Document.append(Spacer(height=0.25*inch, width=1))
for entry in outline[section].keys():
entryHeader = []
for item in [entry.entry.title, entry.entry.subtitle]:
if item != '':
entryHeader.append([item, []])
i = 0
for item in [entry.date_string(0), entry.cityState()]:
if i == len(entryHeader):
entryHeader.append(['', []])
entryHeader[i][1] = item
i += 1
Document.append(Table(entryHeader,
colWidths=[doc.width/2, doc.width/2],
style=headerStyle))
for item in [entry.entry.contact, entry.entry.description]:
if item != '':
Document.append(Paragraph(item, bulletStyle))
if entry.entry.display == 'L':
for datum in entry.dataset.all():
Document.append(Paragraph(datum.text,
bulletStyle))
else: # remaining option is display set to 'D' for delimited
Document.append(Paragraph('\t'+entry.delimited(),
styles['Normal']))
Document.append(Spacer(height=0.25*inch, width=1))
doc.build(Document)
return outputFile
示例10: PageTemplate
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
doc.addPageTemplates(
[
PageTemplate(
id='FourCol',
frames=[
Frame(
30,
doc.bottomMargin + 540,
90,
35,
id='header',
showBoundary=0
),
Frame(
30,
doc.bottomMargin + 390,
762,
162,
id='img',
showBoundary=0
),
Frame(
30,
doc.bottomMargin + 350,
750,
55,
id='trade',
showBoundary=0
),
Frame(
30,
doc.bottomMargin + 270,
750,
90,
id='ind_entry',
showBoundary=0
),
Frame(
30,
doc.bottomMargin + 175,
doc.width / 4 - 10,
doc.height / 6 + 10,
id='1',
showBoundary=0 # set to 1 for debugging
),
Frame(
doc.leftMargin + doc.width / 4 - 7,
doc.bottomMargin + 175,
doc.width / 4 - 10,
doc.height / 6 + 10,
id='2',
showBoundary=0
),
Frame(
doc.leftMargin + doc.width / 2 - 14,
doc.bottomMargin + 175,
doc.width / 4 - 10,
doc.height / 6 + 10,
id='3',
showBoundary=0
),
Frame(
doc.leftMargin + 3 * doc.width / 4 - 21,
doc.bottomMargin + 175,
doc.width / 4 - 10,
doc.height / 6 + 10,
id='4',
showBoundary=0
),
Frame(
30,
doc.bottomMargin + 95,
750,
90,
id='ind_exit',
showBoundary=0
),
Frame(
30,
FOMC_Y_POSITION,
FOMC_WIDTH,
FOMC_HEIGHT,
id='fomc_column1',
showBoundary=0
),
Frame(
30 + doc.width / 4 - 7,
FOMC_Y_POSITION,
FOMC_WIDTH,
FOMC_HEIGHT,
id='fomc_column2',
showBoundary=0
),
Frame(
30 + 2 * doc.width / 4 - 14,
FOMC_Y_POSITION,
FOMC_WIDTH,
FOMC_HEIGHT,
id='fomc_column3',
showBoundary=0
#.........这里部分代码省略.........
示例11: build
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def build(self, style=1):
self.h1 = self.styleSheet['Heading1']
self.h1.fontName = 'Helvetica'
self.bv = self.styleSheet['BodyText']
self.bv.fontName = 'Helvetica'
self.bv.fontSize = 7
self.bv.spaceBefore = 0
self.bv.spaceAfter = 0
self.chartheader = self.styleSheet['Heading3']
self.chartheader.fontName = 'Helvetica'
self.formatRight = self.styleSheet['Normal']
self.bv.formatRight = 'Helvetica'
self.formatRight.alignment = 2
nameColl = self.collection.getName()
while True:
# page 1
p = Paragraph("%s \n'%s'" % (t(self.language, "edit_stats_header"), nameColl), self.h1)
p.wrap(defaultPageSize[0], defaultPageSize[1])
if p.getActualLineWidths0()[0] < 19 * cm:
break
else:
nameColl = nameColl[0:-4] + "..."
self.data.append(p)
self.data.append(Paragraph("%s: %s" % (t(self.language, "edit_stats_period_header"), self.period), self.chartheader))
self.data.append(Paragraph(t(self.language, "edit_stats_pages_of") % ("1", "4"), self.formatRight))
self.data.append((FrameBreak()))
# top 10
self.data += self.getStatTop("data", namecut=60)
# page 2
self.data.append(Paragraph("%s \n'%s' %s - " % (t(self.language, "edit_stats_header"), self.collection.getName(),
self.period) + t(self.language, "edit_stats_pages_of") % ("2", "4"), self.bv))
self.data.append((FrameBreak()))
# country
self.data += self.getStatCountry("data")
self.data.append(PageBreak())
# page 3
self.data.append(Paragraph("%s \n'%s' %s - " % (t(self.language, "edit_stats_header"), self.collection.getName(),
self.period) + t(self.language, "edit_stats_pages_of") % ("3", "4"), self.bv))
self.data.append((FrameBreak()))
# date
self.data += self.getStatDate("data")
self.data.append(PageBreak())
# page 4
self.data.append(Paragraph("%s \n'%s' %s - " % (t(self.language, "edit_stats_header"), self.collection.getName(),
self.period) + t(self.language, "edit_stats_pages_of") % ("4", "4"), self.bv))
self.data.append((FrameBreak()))
# weekday
self.data += self.getStatDay("data")
# time
self.data += self.getStatTime("data")
template = SimpleDocTemplate(config.get("paths.tempdir", "") + "statsaccess.pdf", showBoundary=0)
tFirst = PageTemplate(id='First', onPage=self.myPages, pagesize=defaultPageSize)
tNext = PageTemplate(id='Later', onPage=self.myPages, pagesize=defaultPageSize)
template.addPageTemplates([tFirst, tNext])
template.allowSplitting = 1
BaseDocTemplate.build(template, self.data)
template.canv.setAuthor(t(self.language, "main_title"))
template.canv.setTitle("%s \n'%s' - %s: %s" % (t(self.language,
"edit_stats_header"),
self.collection.getName(),
t(self.language,
"edit_stats_period_header"),
self.period))
return template.canv._doc.GetPDFData(template.canv)
示例12: get
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import addPageTemplates [as 别名]
def get(self, request, *args, **kwargs):
recete = self.get_object()
ad = str(recete.hasta.ad)
soyad = str(recete.hasta.soyad)
pk = str(recete.id)
muayene_tarihi = str(recete.tarih)
title = unidecode("%s-%s-recete-%s-%s" % (ad, soyad, pk, muayene_tarihi))
filename = title + ".pdf"
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'filename=%s' % filename
buff = BytesIO()
doc = SimpleDocTemplate(buff,
pagesize=letter,
title=title,
author="Dr. Ziya T. Güneş",
rightMargin=inch/4,
leftMargin=inch/4,
topMargin=inch/2,
bottomMargin=inch/4,
showBoundary=0)
frame1 = Frame(doc.leftMargin,
doc.bottomMargin,
doc.width,
doc.height / 8,
id="footer")
frame2 = Frame(doc.leftMargin,
doc.bottomMargin + doc.height / 8 + 6,
doc.width,
doc.height * 6 / 8,
id="body")
frame3 = Frame(doc.leftMargin,
doc.bottomMargin + doc.height * 7 / 8 + 12,
doc.width * 3 / 4 - 6,
doc.height / 8,
id="header_right")
frame4 = Frame(doc.leftMargin + doc.width * 3 / 4 + 6,
doc.bottomMargin + doc.height * 7 / 8 + 12,
doc.width / 4 - 6,
doc.height / 8,
id="header_left")
receteTemplate = PageTemplate(frames=[frame1, frame2, frame3, frame4])
doc.addPageTemplates(receteTemplate)
self.register_font()
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name="footer",
fontName="Vera",
fontSize=10,
alignment=2,
leading=20))
styles.add(ParagraphStyle(name="heading",
parent=self.base_style,
fontSize=20,
alignment=0,
spaceAfter=40))
styles.add(ParagraphStyle(name="ilac_ad",
parent=self.base_style,
fontSize=14,
alignment=0,
leftIndent=30,
spaceAfter=10,
leading=20))
styles.add(ParagraphStyle(name="ilac_kullanim",
parent=self.base_style,
fontSize=12,
alignment=0,
leftIndent=50,
spaceAfter=20,
leading=20))
styles.add(ParagraphStyle(name="header_left",
parent=self.base_style,
fontSize=12,
alignment=0))
styles.add(ParagraphStyle(name="header_right",
parent=self.base_style,
fontSize=12,
alignment=2))
story = []
ad = Paragraph("Dr. Ziya T. GÜNEŞ", styles['footer'])
tel = Paragraph("0(232) 422 00 56", styles['footer'])
mail = Paragraph("[email protected]", styles['footer'])
adres = Paragraph("Işılay Saygın Sokak No:17 Kat:2 Alsancak/İzmir", styles['footer'])
story.append(ad)
story.append(tel)
story.append(mail)
story.append(adres)
story.append(FrameBreak())
heading = Paragraph("R<u>p/</u>", styles['heading'])
#.........这里部分代码省略.........