本文整理汇总了Python中reportlab.pdfgen.canvas.Canvas类的典型用法代码示例。如果您正苦于以下问题:Python Canvas类的具体用法?Python Canvas怎么用?Python Canvas使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Canvas类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: get_pdf
def get_pdf(self, text, use_design=False):
"""
Given the text, produces an A4 blank PDF with the text put in the
position given by the tranlsation box.
:param text: Text to put inside a translation box
:param use_design: Set to true to use a design in the background
:return: Rendered PDF
:rtype: pypdf.PdfFileReader if use_design is False or PdfFileWriter
"""
self.ensure_one()
packet = StringIO.StringIO()
can = Canvas(packet, bottomup=0)
text_wrap = self._wrap_text(text, can._fontname, can._fontsize)
top = self.top*inch
left = self.left*inch
for line in text_wrap[:self.nb_lines+1]:
can.drawString(left, top, line)
top += can._leading
can.save()
# Move to the beginning of the StringIO buffer
packet.seek(0)
remaining = ''
if len(text_wrap) > self.nb_lines:
remaining = ' '.join(text_wrap[self.nb_lines+1:])
out_pdf = PdfFileReader(packet)
if use_design:
design_pdf_path = self.env['ir.config_parameter'].get_param(
'sbc_compassion.composition_design')
if design_pdf_path:
design_pdf = PdfFileReader(file(design_pdf_path, 'rb'))
page = design_pdf.getPage(0)
page.mergePage(out_pdf.getPage(0))
out_pdf = PdfFileWriter()
out_pdf.addPage(page)
return out_pdf, remaining
开发者ID:MickSandoz,项目名称:compassion-modules,代码行数:35,代码来源:correspondence_translation_box.py
示例2: test3
def test3(self):
'''compare CJK splitting in some edge cases'''
from reportlab.pdfgen.canvas import Canvas
from reportlab.platypus.paragraph import Paragraph
from reportlab.lib.styles import ParagraphStyle
from reportlab.pdfbase import pdfmetrics
from reportlab.lib.enums import TA_LEFT
sty = ParagraphStyle('A')
sty.fontSize = 15
sty.leading = sty.fontSize*1.2
sty.fontName = 'Courier'
sty.alignment = TA_LEFT
sty.wordWrap = 'CJK'
p0=Paragraph('ABCDEFGHIJKL]N',sty)
p1=Paragraph('AB<font color="red">C</font>DEFGHIJKL]N',sty)
canv = Canvas('test_platypus_paragraph_cjk3.pdf')
ix = len(canv._code)
aW = pdfmetrics.stringWidth('ABCD','Courier',15)
w,h=p0.wrap(aW,1000000)
y = canv._pagesize[1]-72-h
p0.drawOn(canv,72,y)
w,h=p1.wrap(aW,1000000)
y -= h+10
p1.drawOn(canv,72,y)
w,h=p0.wrap(aW*0.25-2,1000000)
y -= h+10
p0.drawOn(canv,72,y)
w,h=p1.wrap(aW/4.-2,1000000)
y -= h+10
p1.drawOn(canv,72,y)
assert canv._code[ix:]==['q', '1 0 0 1 72 697.8898 cm', 'q', '0 0 0 rg', 'BT 1 0 0 1 0 57 Tm /F2 15 Tf 18 TL (ABCD) Tj T* (EFGH) Tj T* (IJKL]) Tj T* (N) Tj T* ET', 'Q', 'Q', 'q', '1 0 0 1 72 615.8898 cm', 'q', 'BT 1 0 0 1 0 57 Tm 18 TL /F2 15 Tf 0 0 0 rg (AB) Tj 1 0 0 rg (C) Tj 0 0 0 rg (D) Tj T* (EFGH) Tj T* (IJKL]) Tj T* (N) Tj T* ET', 'Q', 'Q', 'q', '1 0 0 1 72 353.8898 cm', 'q', '0 0 0 rg', 'BT 1 0 0 1 0 237 Tm /F2 15 Tf 18 TL (A) Tj T* (B) Tj T* (C) Tj T* (D) Tj T* (E) Tj T* (F) Tj T* (G) Tj T* (H) Tj T* (I) Tj T* (J) Tj T* (K) Tj T* (L) Tj T* (]) Tj T* (N) Tj T* ET', 'Q', 'Q', 'q', '1 0 0 1 72 91.88976 cm', 'q', 'BT 1 0 0 1 0 237 Tm 18 TL /F2 15 Tf 0 0 0 rg (A) Tj T* (B) Tj T* 1 0 0 rg (C) Tj T* 0 0 0 rg (D) Tj T* (E) Tj T* (F) Tj T* (G) Tj T* (H) Tj T* (I) Tj T* (J) Tj T* (K) Tj T* (L) Tj T* (]) Tj T* (N) Tj T* ET', 'Q', 'Q']
canv.showPage()
canv.save()
开发者ID:Jbaumotte,项目名称:web2py,代码行数:33,代码来源:test_platypus_paragraphs.py
示例3: print_cards
def print_cards(self, issues):
"""
Generate a PDF file with the changed issues
In the final version of this service, it will send the issue data to the
print service via REST instead of doing all of this file IO
Returns the name of the file created.
@TODO: this writes a file - defer it to a thread
"""
if not issues:
return
print >>sys.stdout, "Printing %s cards" % (len(issues))
sys.stdout.flush()
output_file = datetime.now().strftime("%Y-%m-%d-%H%M%S")+'.pdf'
# 5 x 3 index card size
page_width = 5*inch
page_height = 3*inch
canvas = Canvas(output_file, pagesize=(page_width, page_height))
for issue in issues:
# print >>sys.stdout, pprint.pformat(issue)
# sys.stdout.flush()
issue_type = self.types.get(issue['type'], 'Unknown')
icon = icons.get(issue_type, icons['Unknown'])
issue_priority = self.priorities.get(issue['priority'], 'Unknown')
priority_icon = priority_icons.get(issue_priority, priority_icons['Unknown'])
priority_color = priority_colors.get(issue_priority, priority_colors['Unknown'])
story_info = {
'summary': issue['summary'],
'detail': issue.get('description', ''),
'id': issue['key'],
'type': issue_type,
'reporter': self.users[issue['reporter']]['fullname'],
'date': datetime.strptime(issue['created'], "%Y-%m-%d %H:%M:%S.0"),
'icon': icon,
'priority_icon': priority_icon,
'header_bg_color': priority_color,
}
story_info['formatted_date'] = story_info['date'].strftime('%m/%d @ %I:%M %p')
add_card(canvas, story_info, page_width, page_height);
canvas.save()
print >>sys.stdout, "Wrote %s" % (output_file)
sys.stdout.flush()
return output_file
开发者ID:jjmojojjmojo,项目名称:jira-autoprint,代码行数:60,代码来源:jira_service.py
示例4: generate_chart
def generate_chart(chart, filename):
if filename.lower().endswith(".pdf"):
format = "pdf"
elif filename.lower().endswith(".png"):
format = "png"
else:
print("Unsupported file format: " + filename)
return
if format == "pdf":
output = Canvas(filename)
elif format == "png":
image = Image.new("RGB", (CHART_WIDTH, CHART_HEIGHT),
"#ffffff")
output = ImageDraw.Draw(image)
renderer.draw(format, "title", chart, output)
renderer.draw(format, "x_axis", chart, output)
renderer.draw(format, "y_axis", chart, output)
if chart['series_type'] == "bar":
renderer.draw(format, "bar_series", chart, output)
elif chart['series_type'] == "line":
renderer.draw(format, "line_series", chart, output)
if format == "pdf":
output.showPage()
output.save()
elif format == "png":
image.save(filename, format="png")
开发者ID:PacktPublishing,项目名称:Modular-Programming-with-Python,代码行数:29,代码来源:generator.py
示例5: get_chart
def get_chart(self, chart, fmt, data, width=1000, params=None):
chart = BytesIO()
canvas = Canvas(chart, pagesize=(140, 140))
canvas.drawString(10, 70, "This is a diagram")
canvas.save()
chart.seek(0)
return chart
开发者ID:OneGov,项目名称:onegov.election_day,代码行数:7,代码来源:common.py
示例6: __init__
def __init__(self, *args, **kwargs):
self._nc_x = kwargs.pop('x')
self._nc_y = kwargs.pop('y')
self._nc_text = kwargs.pop('text')
Canvas.__init__(self, *args, **kwargs)
self._codes = []
开发者ID:cecedille1,项目名称:PDF_generator,代码行数:7,代码来源:page_number.py
示例7: generer_coupons
def generer_coupons(output_file, coupon):
"""
:param output_file: File
:param coupon: Coupon
:return:
"""
# Styles
styles = StyleSheet()
styles.add_style('normal', fontName='Helvetica', fontSize=14)
styles.add_style('normal-centered', fontName='Helvetica', fontSize=14,
alignment=TA_CENTER)
styles.add_style('normal-bold', fontName='Helvetica-bold', fontSize=14)
styles.add_style('grand', fontName='Helvetica', fontSize=18)
styles.add_style('grand-bold', fontName='Helvetica-bold', fontSize=18)
styles.add_style('petit', fontName='Helvetica', fontSize=12)
styles.add_style('petit-bold', fontName='Helvetica-bold', fontSize=12)
styles.add_style('titre', fontName='Helvetica-Bold', fontSize=15)
styles.add_style('centered', alignment=TA_CENTER)
styles.add_style('remarque', fontName='Helvetica-Oblique', fontSize=11)
styles.add_style('gros-numero', fontName='Helvetica-Bold', fontSize=36)
styles.add_style('right-aligned', alignment=TA_RIGHT)
canvas = Canvas(output_file, pagesize=PAGESIZE)
draw_coupon(canvas, styles, coupon.nom_participant, coupon.noms_invites,
coupon.infos_depart_arrivee.depart_date,
coupon.infos_depart_arrivee.depart_de,
'depart', coupon.nb_personnes)
draw_coupon(canvas, styles, coupon.nom_participant, coupon.noms_invites,
coupon.infos_depart_arrivee.arrivee_date,
coupon.infos_depart_arrivee.arrivee_a,
'arrivee', coupon.nb_personnes)
page_width, page_height = PAGESIZE
frame_height = 10 * cm
frame = Frame(COUPON_MARGIN_SIDE, calc_coupon_y('depart') - frame_height,
page_width - COUPON_MARGIN_SIDE * 2, frame_height)
frame.addFromList([Paragraph(u"""<br/><br/><u>Veuillez noter que les transferts en
navette ne s'effectuent que dans les conditions suivantes:</u><br/><br/>
À votre arrivée, les transferts en navette organisés des aéroports de
Casablanca et de Marrakech sont uniquement à destination du lieu de
l’Assemblée générale, le Palais des Congrès de l'hôtel Mogador Agdal 2.
<br/><b>Ces transferts ne sont disponibles que du 6 au 10 mai 2017.</b>
<br/><br/>
À votre départ, les transferts en navette oganisés à destination des
aéroports de Casablanca et de Marrakech se feront au même point qu'à
l'arrivée à l'hôtel Mogador Agdal 2.<br/>
<b>Ces transferts ne sont disponibles que du 12 au 15 mai 2017.</b>
<br/><br/>
Aucun autre arrêt n'est prévu durant ces trajets.
Si vous ne logez pas au Mogador Agdal 2, vous devez assurer, à vos
frais, votre déplacement entre votre hôtel et le lieu de l’Assemblée
générale.
<br/><br/>
<b>Adresse du Mogador Agdal 2:</b> Zone Touristique Agdal, Route d'Ourika,
Marrakech 40000, Maroc
<br/><br/>
<b>En cas de problème à l'arrivée, veuillez contacter:</b> <br/>Casablanca:
+212 6 89 91 77 19 Marrakech: +212 6 89 91 77 20
""", styles['remarque'])], canvas)
canvas.save()
开发者ID:auf,项目名称:ag2017_auf_org,代码行数:60,代码来源:pdf.py
示例8: __init__
def __init__(self, name, data):
self.name = name
self.states = data.get('cellStates')
self.signals = data.get('signals')
self.parents = data.get('lineage')
self.data = data
Canvas.__init__(self, name)
开发者ID:WilliamPJSmith,项目名称:Support,代码行数:7,代码来源:Draw2DPDF.py
示例9: buildPDFx6
def buildPDFx6(marginmm, urls):
width = 6 * inch
height = 4 * inch
square = 2 * inch
margin = marginmm * mm
card_width = square-(margin * 2)
buffer = StringIO()
pdf = Canvas(buffer)
pdf.setPageSize((width,height))
def create_image(url):
for i in [1,2]:
try:
return ImageReader(url)
except IOError:
pass
return ImageReader(url)
def put_image(x,y,url):
if url != "":
img = create_image(url)
pdf.drawImage(img,(square*x)+margin,(square*y)+margin,
width=card_width, height=card_width)
put_image(0,1,urls[0])
put_image(0,0,urls[1])
put_image(1,1,urls[2])
put_image(1,0,urls[3])
put_image(2,1,urls[4])
put_image(2,0,urls[5])
pdf.save()
data = buffer.getvalue()
buffer.close()
return data
开发者ID:thomasrynne,项目名称:jamendo-contest,代码行数:33,代码来源:printer.py
示例10: get_pdf
def get_pdf(self):
data = BytesIO()
canvas = Canvas(data, pagesize=self.page_size)
self._build_pdf(canvas)
canvas.save()
data.seek(0)
return data
开发者ID:indico,项目名称:indico,代码行数:7,代码来源:pdf.py
示例11: myCanvasMaker
def myCanvasMaker(fn, **kw):
from reportlab.pdfgen.canvas import Canvas
canv = Canvas(fn, **kw)
# attach our callback to the canvas
canv.myOnDrawCB = myOnDrawCB
return canv
开发者ID:nakagami,项目名称:reportlab,代码行数:7,代码来源:dodyssey.py
示例12: print_pdf
def print_pdf(request, tag_id, type):
from reportlab.pdfgen.canvas import Canvas
from labels.pdf_templates import LabelPDF
#Letter is a paper format, you can import A4 for example
from reportlab.lib.pagesizes import letter
tag = get_object_or_404(Tag, pk=tag_id)
#name of the pdf
fname = "mylabels.pdf"
#Generating response for file
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename=%s' %(fname)
#creating the canvas object. You can change "letter" with another paper type
c = Canvas(response, pagesize=letter)
#LabelPDF is the class in pdf_templates that draws on the pdf
pdf = LabelPDF(tag,type)
#pdf.showBoundary=1 # Turns this on for debugging purposes.
c = pdf.draw_frames(c)
c.save()
return response
tv = {'tag_id':tag_id}
return render_to_response("labels/print.html",tv)
开发者ID:wilblack,项目名称:django-labels,代码行数:27,代码来源:views.py
示例13: run
def run(infile, outfile):
data = compile(infile)
c = Canvas(outfile,pagesize=pageSize,pageCompression=0)
lines(c)
left = notes(c, data)
c.showPage()
c.save()
开发者ID:dirck,项目名称:pytabla,代码行数:7,代码来源:pytabla.py
示例14: test1
def test1():
c = Canvas('figures.pdf')
f = Frame(inch, inch, 6*inch, 9*inch, showBoundary=1)
v = PlatPropFigure1()
v.captionTextColor = toColor('blue')
v.captionBackColor = toColor('lightyellow')
f.addFromList([v],c)
c.save()
开发者ID:AlonsoAyelen,项目名称:Voluntariado_veterinaria,代码行数:8,代码来源:figures.py
示例15: get_image_page
def get_image_page(image):
inch = 72
bio = BytesIO()
c = Canvas(bio, pagesize=(8.5*inch, 11*inch))
dim = c.drawImage(image, 0.5*inch, 6.3*inch, 495, 290)
# print(dim)
c.save()
return PdfFileReader(bio).getPage(0)
开发者ID:feihong,项目名称:ebay-tools,代码行数:8,代码来源:shipping_label.py
示例16: createBlankPDF
def createBlankPDF(filenameOrFH, opts):
"""
"""
orientation = getattr(pagesizes, opts.orientation)
canvas = Canvas(filenameOrFH, pagesize=orientation(opts.paperSize))
canvas.showPage()
canvas.save()
return (filenameOrFH, canvas)
开发者ID:oubiwann,项目名称:tibetan-scripts,代码行数:8,代码来源:assembler.py
示例17: run
def run():
styles = getSampleStyleSheet()
styleN = styles['Normal']
styleH = styles['Heading1']
story = []
#for codeNames in code
story.append(Paragraph('I2of5', styleN))
story.append(I2of5(1234, barWidth = inch*0.02, checksum=0))
story.append(Paragraph('MSI', styleN))
story.append(MSI(1234))
story.append(Paragraph('Codabar', styleN))
story.append(Codabar("A012345B", barWidth = inch*0.02))
story.append(Paragraph('Code 11', styleN))
story.append(Code11("01234545634563"))
story.append(Paragraph('Code 39', styleN))
story.append(Standard39("A012345B%R"))
story.append(Paragraph('Extended Code 39', styleN))
story.append(Extended39("A012345B}"))
story.append(Paragraph('Code93', styleN))
story.append(Standard93("CODE 93"))
story.append(Paragraph('Extended Code93', styleN))
story.append(Extended93("[email protected]@K! Code 93 :-)")) #, barWidth=0.005 * inch))
story.append(Paragraph('Code 128', styleN))
c=Code128("AB-12345678") #, barWidth=0.005 * inch)
#print 'WIDTH =', (c.width / inch), 'barWidth =', (c.barWidth / inch)
#print 'LQ =', (c.lquiet / inch), 'RQ =', (c.rquiet / inch)
story.append(c)
story.append(Paragraph('USPS FIM', styleN))
story.append(FIM("A"))
story.append(Paragraph('USPS POSTNET', styleN))
story.append(POSTNET('78247-1043'))
story.append(Paragraph('USPS 4 State', styleN))
story.append(USPS_4State('01234567094987654321','01234567891'))
from reportlab.graphics.barcode import createBarcodeDrawing
story.append(Paragraph('EAN13', styleN))
bcd = createBarcodeDrawing('EAN13', value='123456789012')
story.append(bcd)
story.append(Paragraph('EAN8', styleN))
bcd = createBarcodeDrawing('EAN8', value='1234567')
story.append(bcd)
story.append(Paragraph('UPCA', styleN))
bcd = createBarcodeDrawing('UPCA', value='03600029145')
story.append(bcd)
story.append(Paragraph('USPS_4State', styleN))
bcd = createBarcodeDrawing('USPS_4State', value='01234567094987654321',routing='01234567891')
story.append(bcd)
story.append(Paragraph('Label Size', styleN))
story.append(XBox((2.0 + 5.0/8.0)*inch, 1 * inch, '1x2-5/8"'))
story.append(Paragraph('Label Size', styleN))
story.append(XBox((1.75)*inch, .5 * inch, '1/2x1-3/4"'))
c = Canvas('out.pdf')
f = Frame(inch, inch, 6*inch, 9*inch, showBoundary=1)
f.addFromList(story, c)
c.save()
print('saved out.pdf')
开发者ID:Aeium,项目名称:dotStudio,代码行数:58,代码来源:test.py
示例18: save
def save(self):
"""add page info to each page (page x of y)"""
num_pages = len(self._saved_page_states)
for state in self._saved_page_states:
for count, _code in enumerate(state['_code']):
state['_code'][count] = state['_code'][count].replace('{NB}', str(num_pages))
self.__dict__.update(state)
Canvas.showPage(self)
Canvas.save(self)
开发者ID:k4ml,项目名称:jazzpos,代码行数:9,代码来源:pdf.py
示例19: _on_other_page
def _on_other_page(self, canvas: Canvas, doc):
canvas.saveState()
canvas.setFont('OpenSans', 8)
canvas.drawRightString(self.pagesize[0] - 20 * mm, 10 * mm, pgettext("invoice", "Page %d") % (doc.page,))
for i, line in enumerate(self.invoice.footer_text.split('\n')[::-1]):
canvas.drawCentredString(self.pagesize[0] / 2, 25 + (3.5 * i) * mm, line.strip())
canvas.restoreState()
开发者ID:FlaviaBastos,项目名称:pretix,代码行数:9,代码来源:invoice.py
示例20: create_new_pdf
def create_new_pdf(playground, width, height):
import reportlab.rl_config
from reportlab.pdfgen.canvas import Canvas
pdf = Canvas(os.path.join(playground, "book.pdf"),
pagesize=(width, height), pageCompression=1)
pdf.setCreator('cheesegrater')
pdf.setTitle(os.path.basename(playground))
load_font()
return pdf
开发者ID:CuchulainX,项目名称:featherweight.cheese,代码行数:9,代码来源:viewer.py
注:本文中的reportlab.pdfgen.canvas.Canvas类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论