当前位置: 首页>>代码示例>>Python>>正文


Python canvas.Canvas类代码示例

本文整理汇总了Python中reportlab.pdfgen.canvas.Canvas的典型用法代码示例。如果您正苦于以下问题:Python Canvas类的具体用法?Python Canvas怎么用?Python Canvas使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Canvas类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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 &nbsp; &nbsp; &nbsp; 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


注:本文中的reportlab.pdfgen.canvas.Canvas类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。