本文整理汇总了Python中reportlab.platypus.SimpleDocTemplate.build方法的典型用法代码示例。如果您正苦于以下问题:Python SimpleDocTemplate.build方法的具体用法?Python SimpleDocTemplate.build怎么用?Python SimpleDocTemplate.build使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reportlab.platypus.SimpleDocTemplate
的用法示例。
在下文中一共展示了SimpleDocTemplate.build方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: build_index_US
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def build_index_US(self, records, sito):
styleSheet = getSampleStyleSheet()
styNormal = styleSheet['Normal']
styBackground = ParagraphStyle('background', parent=styNormal, backColor=colors.pink)
styH1 = styleSheet['Heading3']
data = self.datestrfdate()
lst = []
lst.append(Paragraph("<b>ELENCO UNITA' STRATIGRAFICHE</b><br/><b>Scavo: %s <br/>Data: %s <br/>Ditta esecutrice: adArte snc, Rimini</b>" % (sito, data), styH1))
table_data = []
for i in range(len(records)):
exp_index = US_index_pdf_sheet(records[i])
table_data.append(exp_index.getTable())
styles = exp_index.makeStyles()
table_data_formatted = Table(table_data, colWidths=55.5)
table_data_formatted.setStyle(styles)
lst.append(table_data_formatted)
lst.append(Spacer(0,12))
filename = ('%s%s%s') % (self.PDF_path, os.sep, 'indice_us.pdf')
f = open(filename, "wb")
doc = SimpleDocTemplate(f, pagesize=(29*cm, 21*cm), showBoundary=0)
doc.build(lst, canvasmaker=NumberedCanvas_USindex)
f.close()
示例2: test
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def test():
doc = SimpleDocTemplate("test.pdf")
story = []
style = Style(fontName="Helvetica", textIndent=24.0)
fn = style["fontName"]
fs = style["fontSize"]
sampleText1 = createText(TEXT[:100], fn, fs)
sampleText2 = createText(TEXT[100:], fn, fs)
text = Text(sampleText1 + makeSpecial(fn, fs) + sampleText2)
story.append(Paragraph(
copy.copy(text),
style,
debug=0))
if 0:
for i in range(10):
style = copy.deepcopy(style)
style["textAlign"] = ALIGNMENTS[i % 4]
text = createText(("(%d) " % i) + TEXT, fn, fs)
story.append(Paragraph(
copy.copy(text),
style,
debug=0))
doc.build(story)
示例3: make_suggested_starts
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def make_suggested_starts(phage_genes, phage_name, file_path):
"""
Creates a PDF page of the suggested starts of a phage
Genes are list in order
{Gene Name} is a member of Pham {Number}: {Suggested Start Coordinates}
"""
file_name = os.path.join(file_path, "%sSuggestedStarts.pdf" % (phage_name))
if check_file(file_name):
return
doc = SimpleDocTemplate(file_name, pagesize=letter)
story = []
print "making suggested starts page"
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name="paragraph"))
styles.add(ParagraphStyle(name='Center', alignment=TA_CENTER))
text = '<font size=14> Suggested Start Coordinates</font>'
story.append(Paragraph(text, styles['Center']))
story.append(Spacer(1, 12))
for gene_id in sorted(phage_genes.iterkeys()):
phage_gene = phage_genes[gene_id]
pham = phage_gene["pham_no"]
gene = phage_gene["gene"]
suggested_start = phage_gene["suggested_start"]
if pham == None:
text = '<font size=12> %s is not a member of an existing Pham </font>' % (gene.gene_id)
else:
text = '<font size=12> %s is a member of Pham %s: %s </font>' % (gene.gene_id, pham, suggested_start)
story.append(Paragraph(text, styles['Normal']))
doc.build(story)
示例4: outputtopdf
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def outputtopdf(outputfile,title,labels,db,resdb):
import logging
log = logging.getLogger('outputtopdf')
try:
from reportlab.platypus import TableStyle, Table, SimpleDocTemplate, Paragraph
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.pdfgen import canvas
except ImportError:
log.error('Reportlab was not found. To export to pdf you need to have reportlab installed. Check out www.reportlab.org')
return
log.debug('ok reportlab library found')
styles = getSampleStyleSheet()
rows=list()
rows.append(labels)
for k in db.keys():
cols = [k,db[k]]
if resdb is not None:
if resdb.has_key(k):
cols.append(resdb[k])
else:
cols.append('N/A')
rows.append(cols)
t=Table(rows)
mytable = TableStyle([('BACKGROUND',(0,0),(-1,0),colors.black),
('TEXTCOLOR',(0,0),(-1,0),colors.white)])
t.setStyle(mytable)
doc = SimpleDocTemplate(outputfile)
elements = []
style = styles["Heading1"]
Title = Paragraph(title,style)
elements.append(Title)
elements.append(t)
doc.build(elements)
示例5: generate
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def generate(cls, pdf_input_data: dict):
# setup
self = cls()
reports = pdf_input_data.get('reports', [])
matches = pdf_input_data.get('matches', [])
report_buffer = BytesIO()
doc = SimpleDocTemplate(
report_buffer,
pagesize=letter,
rightMargin=72, leftMargin=72,
topMargin=72, bottomMargin=72,
)
# content fill
self.pdf_elements.extend(self.cover_page())
self.pdf_elements.extend(self.report_pages(reports))
self.pdf_elements.extend(self.match_pages_empty_identifier(matches))
# teardown
doc.build(
self.pdf_elements,
canvasmaker=NumberedCanvas,
)
result = report_buffer.getvalue()
report_buffer.close()
return result
示例6: make_note
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def make_note(outfile, headers, paragraphs, **kw):
"""Builds a pdf file named outfile based on headers and
paragraphs, formatted according to parameters in kw.
:param outfile: outfile name
:param headers: <OrderedDict> of headers
:param paragraphs: <OrderedDict> of paragraphs
:param kw: keyword arguments for formatting
"""
story = [Paragraph(x, headers[x]) for x in headers.keys()]
for headline, paragraph in paragraphs.items():
story.append(Paragraph(headline, paragraph.get("style", h3)))
if not paragraph.has_key("tpl"):
for sub_headline, sub_paragraph in paragraph.items():
story.append(Paragraph(sub_headline, paragraph.get("style", h4)))
story.append(Paragraph(sub_paragraph.get("tpl").render(**kw), p))
else:
if isinstance(paragraph.get("tpl"), Template):
story.append(Paragraph(paragraph.get("tpl").render(**kw), p))
elif isinstance(paragraph.get("tpl"), Table):
story.append(Spacer(1, 0.2 * inch))
story.append(paragraph.get("tpl"))
story.append(Spacer(1, 0.2 * inch))
else:
pass
doc = SimpleDocTemplate(outfile)
doc.build(story, onFirstPage=formatted_page, onLaterPages=formatted_page)
return doc
示例7: print_assignment
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def print_assignment(request, assignment_id=None):
response = HttpResponse(mimetype='application/pdf')
filename = u'filename=%s.pdf;' % _("Elections")
response['Content-Disposition'] = filename.encode('utf-8')
doc = SimpleDocTemplate(response)
doc.title = None
story = []
if assignment_id is None: #print all applications
title = config_get("assignment_pdf_title")
story.append(Paragraph(title, stylesheet['Heading1']))
preamble = config_get("assignment_pdf_preamble")
if preamble:
story.append(Paragraph("%s" % preamble.replace('\r\n','<br/>'), stylesheet['Paragraph']))
story.append(Spacer(0,0.75*cm))
# List of assignments
for assignment in Assignment.objects.order_by('name'):
story.append(Paragraph(assignment.name, stylesheet['Heading3']))
# Assignment details (each assignment on single page)
for assignment in Assignment.objects.order_by('name'):
story.append(PageBreak())
story = get_assignment(assignment, story)
else: # print selected assignment
assignment = Assignment.objects.get(id=assignment_id)
filename = u'filename=%s-%s.pdf;' % (_("Assignment"), assignment.name.replace(' ','_'))
response['Content-Disposition'] = filename.encode('utf-8')
story = get_assignment(assignment, story)
doc.build(story, onFirstPage=firstPage, onLaterPages=firstPage)
return response
示例8: get_output_one_pham
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def get_output_one_pham(pham, pham_no, config):
"""
Creates a PDF Report for the specific pham.
From Start sites statisitics
"""
output_dir = config['intermediate_file_dir']
doc = SimpleDocTemplate("%s%sPham%sText.pdf" % (output_dir, phage+one_or_all, pham_no), pagesize=letter)
story = []
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name="paragraph"))
styles.add(ParagraphStyle(name='Center', alignment=TA_CENTER))
text = '<font size=14> Pham %s Report </font>' % pham_no
story.append(Paragraph(text, styles['Center']))
story.append(Spacer(1, 12))
output = pham.output_start_sites()
for line in output:
if line == '':
story.append(Spacer(1, 12))
text = '<font size=12> %s </font>' % line
story.append(Paragraph(text, styles['Normal']))
suggested_start = pham.output_suggested_starts()
story.append(Spacer(1, 12))
for line in suggested_start:
text = '<font size=12>%s</font>' % line
story.append(Paragraph(text, styles["Normal"]))
doc.build(story)
示例9: drawPage
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def drawPage(meta):
"""
Creates cover page
"""
def coverPage(canvas, doc):
"""
Cover page format
"""
canvas.saveState()
canvas.setFont('Times-Bold',16)
canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT-108, Title)
canvas.setFont('Times-Roman',9)
canvas.restoreState()
# PDF Parameters
PAGE_HEIGHT=defaultPageSize[1]; PAGE_WIDTH=defaultPageSize[0]
styles = getSampleStyleSheet()
Title = 'FITS Summary'
# Create cover page
doc = SimpleDocTemplate('%s%s_meta.pdf' %(outDir, filename))
content = [Spacer(1,2*inch)]
style = styles["Normal"]
for key in sorted(meta.keys()):
text = ("%s: %s \n" % (key, meta[key]))
p = Paragraph(text, style)
content.append(p)
doc.build(content, onFirstPage = coverPage)
示例10: GenPDF
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def GenPDF(tablename, head, result):
stylesheet = getSampleStyleSheet()
elements = []
response = HttpResponse(content_type="application/octet-stream")
response["Content-Disposition"] = 'attachment;filename="test.pdf"'
doc = SimpleDocTemplate(response)
headname = '<font name="hei">' + str(tablename) + "表格</font>"
# headname = '<font name="hei">%s表格</font>' % tablename
elements.append(Paragraph(headname, stylesheet["Title"]))
elements.append(Spacer(1, 12))
data = []
data.append(head)
for l in result:
row = [l[key] for key in head]
data.append(row)
ts = [
("INNERGRID", (0, 0), (-1, -1), 0.25, colors.black),
("BOX", (0, 0), (-1, -1), 0.25, colors.black),
("FONT", (0, 0), (-1, -1), "hei"),
]
table = Table(data, 6.3 / len(head) * inch, 0.24 * inch, ts)
elements.append(table)
doc.build(elements)
return response
示例11: txt2PDF
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def txt2PDF(path):
pdfmetrics.registerFont(TTFont('song', 'SURSONG.TTF'))
pdfmetrics.registerFont(TTFont('hei', 'SIMHEI.TTF'))
fonts.addMapping('song', 0, 0, 'song')
fonts.addMapping('song', 0, 1, 'song')
fonts.addMapping('song', 1, 0, 'hei')
fonts.addMapping('song', 1, 1, 'hei')
f=file(path)
content = f.read()
contentList = content.split('\n')
#print contentList
stylesheet=getSampleStyleSheet()
normalStyle = copy.deepcopy(stylesheet['Normal'])
###设置PDF中文字字体
normalStyle.fontName ='hei' #字体为黑体
normalStyle.fontSize = 14.5 #字体大小
normalStyle.leading = 30 #行间距
normalStyle.firstLineIndent = 32 #首行缩进
story = []
for text in contentList:
#story.append(Paragraph(unicode(text, "utf-8" ), normalStyle))
#story.append(Paragraph(text.decode('utf-8'), normalStyle))
story.append(Paragraph(text.decode('gbk'), normalStyle))
pdfPath = path.split('.')[0] + '.pdf'
txtName = path.split('.')[0].split('/')[-1]
doc = SimpleDocTemplate(pdfPath,
rightMargin=20,leftMargin=20,
topMargin=20,
bottomMargin=20)
doc.build(story)
示例12: fillReport
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def fillReport(self, data):
buffer = self.buffer
doc = SimpleDocTemplate(buffer,
rightMargin=72,
leftMargin=72,
topMargin=72,
bottomMargin=72,
headertext=self.headertext,
footertext=self.footertext,
pagesize=self.pagesize)
# Our container for 'Flowable' objects
elements = []
# A large collection of style sheets pre-made for us
styles = getSampleStyleSheet()
#styles.add(ParagraphStyle(name='centered', alignment=TA_CENTER))
#Configure style and word wrap
s = getSampleStyleSheet()
s = s["BodyText"]
s.wordWrap = 'CJK'
#format the data table
data2 = [[Paragraph(cell, s) for cell in row] for row in data]
t=Table(data2, repeatRows=1)
#Send the data and build the file
elements.append(Paragraph('Report', styles['Heading2']))
elements.append(t)
doc.build(elements, onFirstPage=self._header_footer, onLaterPages=self._header_footer)
# Get the value of the BytesIO buffer and write it to the response.
pdf = buffer.getvalue()
buffer.close()
return pdf
示例13: main
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def main():
'''
run as a standalone, tablegen produces a fixed mockup named
operating_table_mockup.pdf
this mockup illustrates all the corner cases that events can fall into:
events that start on the hour, multiple events within the same hour,
multiple events occuring at the same time, and events at the first and
last minute of the day.
'''
doc = SimpleDocTemplate("operating_table_mockup.pdf")
story = []
story.extend(make_day_tables([
(datetime(2009, 10, 28, 0, 0), 'DROP THE JAZZ, GRATEFUL DEAD'),
(datetime(2009, 10, 28, 3, 5), 'TURN OFF TRANSMITTER'),
(datetime(2009, 10, 28, 5, 45),
'TEST EAS LIGHTS AND TURN ON TRANSMITTER'),
(datetime(2009, 10, 28, 11, 45), 'MY ASS IS ON FIRE'),
(datetime(2009, 10, 28, 12, 00), 'TEST YOUR MOM'),
(datetime(2009, 10, 28, 12, 59),
'WINNERS ARE LOSERS WITH A NEW ATTITUDE'),
(datetime(2009, 10, 28, 12, 59), 'ROCK WITH IT'),
(datetime(2009, 10, 28, 13, 00), 'STOP PLAYING METALLICA, FOOL'),
(datetime(2009, 10, 28, 18,17), 'CHECK TOWER LIGHTS: READING ='),
(datetime(2009, 10, 28, 23, 01), 'ENABLE HUMPBACK WHALES II'),
]))
story.insert(1, PageBreak())
doc.build(story)
示例14: make_pdf
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def make_pdf(data, title):
tid = str(time()).replace('.', '')
pdf_file = "reports/" + tid + ".pdf"
# convert tuple to list
data = [list(elem) for elem in data]
doc = SimpleDocTemplate(pdf_file, pagesize=letter)
styles=getSampleStyleSheet()
styles.add(ParagraphStyle(name='Center', alignment=TA_CENTER))
parts = []
table_with_style = Table(data)
table_with_style.setStyle(TableStyle([
('FONTSIZE', (0, 0), (-1, -1), 8),
('INNERGRID', (0, 0), (-1, -1), 0.25, colors.black),
('BOX', (0, 0), (-1, -1), 0.25, colors.black),
('ALIGN', (0, 0), (-1, 0), 'CENTER'),
]))
parts.append(Paragraph(title, styles["Center"]))
parts.append(Spacer(1, 12))
parts.append(table_with_style)
doc.build(parts)
show_pdf(pdf_file)
示例15: generar_pdf_Usuario
# 需要导入模块: from reportlab.platypus import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.SimpleDocTemplate import build [as 别名]
def generar_pdf_Usuario(request):
response = HttpResponse(content_type='application/pdf')
pdf_name = "usuarios.pdf"
buff = BytesIO()
doc = SimpleDocTemplate(buff,
pagesize=letter,
rightMargin=40,
leftMargin=40,
topMargin=60,
bottomMargin=18,
)
usuarios = []
styles = getSampleStyleSheet()
header = Paragraph("Listado de Usuarios", styles['Heading1'])
usuarios.append(header)
headings = ('Cedula', 'Nombres', 'Apellidos', 'Sexo','Direccion', 'Telefono', 'Email')
allusuarios = [(p.usu_ced, p.usu_nom, p.usu_ape, p.usu_sex, p.usu_dir, p.usu_tel, p.usu_ema) for p in Usuario.object.all()]
t = Table([headings] + allusuarios)
t.setStyle(TableStyle(
[
('GRID', (0, 0), (6, -1), 1, colors.dodgerblue),
('LINEBELOW', (0, 0), (-1, 0), 2, colors.darkblue),
('BACKGROUND', (0, 0), (-1, 0), colors.dodgerblue)
]
))
usuarios.append(t)
doc.build(usuarios)
response.write(buff.getvalue())
buff.close()
return response