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


Python renderPDF.draw函数代码示例

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


在下文中一共展示了draw函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: hello

def hello(c, link):
	c.translate(ORIGIN_X, ORIGIN_Y)

	# Draw paragraph
	stylesheet = getSampleStyleSheet()
	style = stylesheet['BodyText']
	style.fontName = 'LeagueGothic'
	style.fontSize = 42
	style.leading = 44

	p = Paragraph('<b>print</b><br/>your<br/><b>badge</b><br/>here', style)
	qr_left = 30*mm
	p_w, p_h = p.wrap(qr_left, HEIGHT)
	p.drawOn(c, 0, 0)


	# Add QR Code
	qr_code = qr.QrCodeWidget(link)
	qr_bounds = qr_code.getBounds()
	qr_width = qr_bounds[2] - qr_bounds[0]
	qr_height = qr_bounds[3] - qr_bounds[1]
	d = Drawing(HEIGHT, HEIGHT, transform=[HEIGHT/qr_width,0,0,HEIGHT/qr_height,0,0])
	d.add(qr_code)
	renderPDF.draw(d, c, qr_left, 0)

	# Draw thin line between text and QR code
	c.line(qr_left, 0, qr_left, HEIGHT)
	c.line(qr_left + HEIGHT, 0, qr_left+HEIGHT, HEIGHT)

	img_left = qr_left + HEIGHT

	# Draw images
	c.drawImage('images/ipv6.jpg', img_left, 0, 20*mm, 1/3 * HEIGHT, mask=None, preserveAspectRatio=True, anchor='c')
	c.drawImage('images/ffrhein_logo_claim_line_rot.png', img_left, 1/3*HEIGHT, 20*mm, 2/3 * HEIGHT, mask=None, preserveAspectRatio=True, anchor='c')
开发者ID:docloy,项目名称:badge-o-matic,代码行数:34,代码来源:online.py

示例2: draw_code128_questionnaire_id

def draw_code128_questionnaire_id(canvas, survey, id):
    # Only supports ascii for now (see also defs.py)
    barcode_value = unicode(id).encode('ascii')
    barcode = createBarcodeDrawing("Code128",
                                   value=barcode_value,
                                   barWidth=defs.code128_barwidth / 25.4 * 72.0,
                                   height=defs.code128_height / 25.4 * 72.0,
                                   quiet=False)

    y = survey.defs.paper_height - defs.corner_mark_bottom
    x = defs.corner_mark_left

    barcode_y = y - defs.code128_vpad - defs.code128_height
    barcode_x = x + defs.code128_hpad

    # The barcode should be flush left.
    barcode_x = barcode_x

    renderPDF.draw(barcode, canvas, barcode_x * mm, barcode_y * mm)

    # Label
    text_x = barcode_x + barcode.width / mm / 2.0
    text_y = barcode_y + defs.code128_height + 1 + \
             defs.code128_text_font_size / 72.0 * 25.4 / 2.0

    canvas.saveState()
    canvas.setFont(defs.code128_text_font, defs.code128_text_font_size)
    canvas.drawCentredString(text_x * mm, text_y * mm, barcode_value)
    canvas.restoreState()
开发者ID:gabisurita,项目名称:GDAd,代码行数:29,代码来源:generic.py

示例3: createBarCodes

def createBarCodes(path, barcode_value):
    from reportlab.graphics.barcode import eanbc
    from reportlab.graphics.shapes import Drawing
    from reportlab.pdfgen import canvas
    from reportlab.graphics import renderPDF
    from reportlab.lib.units import cm, mm
    from reportlab.lib.styles import getSampleStyleSheet
    from reportlab.platypus.para import Paragraph

    # draw the eanbc13 code
    barcode_eanbc13 = eanbc.Ean13BarcodeWidget(barcode_value)
    bounds = barcode_eanbc13.getBounds()
    barcode_eanbc13.barHeight = 19*mm
    width = bounds[2] - bounds[0]
    height = bounds[3] - bounds[1]
    d = Drawing()
    d.add(barcode_eanbc13)

    c = canvas.Canvas(path, pagesize=(43*mm, 25*mm))

    # print width, height
    text = "%s.%s" % (150, '00')
    p = Paragraph(text, getSampleStyleSheet()["Normal"])
    p.wrapOn(c, 43*mm, 5*mm)
    p.drawOn(c, 16*mm, 20*mm)
    renderPDF.draw(d, c, 3*mm, 1*mm)
    c.save()
开发者ID:StasEvseev,项目名称:adminbuy,代码行数:27,代码来源:resource.py

示例4: create_header

    def create_header(self):
        headerCanvas = Drawing()
        headerRect = Rect(0, 0, width=self.width, height=50)
        headerRect.fillColor = HexColor("#607D8B")
        headerRect.strokeColor = HexColor("#607D8B")
        headerCanvas.add(headerRect)
        renderPDF.draw(headerCanvas, self.c, 0, self.height - 50)

        _header_styles = ParagraphStyle(
            "Header",
            parent=self.styles["Heading1"],
            textColor=white,
            fontName='Helvetica'
        )
        p = Paragraph("Kit Trading Fund Report", style = _header_styles)

        p.wrapOn(self.c, self.width, self.height - 50)
        p.drawOn(self.c, *self.coord(75, 10, mm))

        _sub_header_styles = ParagraphStyle(
            "SubHeader",
            parent=self.styles["Heading4"],
            textColor=white,
            fontName='Helvetica'
        )
        p = Paragraph("Monthly Report: January 2016", style = _sub_header_styles)
        p.wrapOn(self.c, self.width, self.height - 50)
        p.drawOn(self.c, *self.coord(85, 16, mm))
开发者ID:denisvolokh,项目名称:reportlab-report-prototype,代码行数:28,代码来源:main2.py

示例5: draw_qrcode

    def draw_qrcode(self, value, x, y, size=40, halign=None, valign=None):
        """
            Helper function to draw a QR code

            @param value: the string to encode
            @param x: drawing position
            @param y: drawing position
            @param size: the size (edge length) of the QR code
            @param halign: horizontal alignment ("left"|"center"|"right"), default left
            @param valign: vertical alignment ("top"|"middle"|"bottom"), default bottom
        """

        qr_code = qr.QrCodeWidget(value)

        bounds = qr_code.getBounds()
        w = bounds[2] - bounds[0]
        h = bounds[3] - bounds[1]

        transform = [float(size) / w, 0, 0, float(size) / h, 0, 0]
        d = Drawing(size, size, transform=transform)
        d.add(qr_code)

        hshift = vshift = 0
        if halign == "right":
            hshift = size
        elif halign == "center":
            hshift = float(size) / 2.0

        if valign == "top":
            vshift = size
        elif valign == "middle":
            vshift = float(size) / 2.0

        renderPDF.draw(d, self.canv, x - hshift, y - vshift)
开发者ID:rommelsotto,项目名称:eden,代码行数:34,代码来源:card.py

示例6: draw_qr_global_id

def draw_qr_global_id(canvas, survey):
    if survey.global_id is None:
        raise AssertionError

    # Only allow ascii
    value = survey.global_id.encode('ascii')

    y = survey.defs.paper_height - defs.corner_mark_bottom
    x = (survey.defs.paper_width - defs.corner_mark_right + defs.corner_mark_left) / 2

    qr_code = qr.QrCodeWidget(value, barLevel='H')
    bounds = qr_code.getBounds()

    width = bounds[2] - bounds[0]
    height = bounds[3] - bounds[1]

    # Squeeze into the space between corner mark and content
    size = defs.bottom_page_margin - defs.corner_mark_bottom

    code_y = y
    code_x = x - size / 2.0

    d = Drawing(size*mm, size*mm, transform=[float(size*mm)/width,0,0,-float(size*mm)/height,0,0])
    d.add(qr_code)

    renderPDF.draw(d, canvas, code_x*mm, code_y*mm)
开发者ID:bgeneto,项目名称:sdaps,代码行数:26,代码来源:generic.py

示例7: draw_code128_global_id

def draw_code128_global_id(canvas, survey):
    if survey.global_id is None:
        raise AssertionError

    # Only allow ascii
    barcode_value = survey.global_id.encode('ascii')

    barcode = createBarcodeDrawing("Code128",
                                   value=barcode_value,
                                   barWidth=defs.code128_barwidth / 25.4 * 72.0,
                                   height=defs.code128_height / 25.4 * 72.0,
                                   quiet=False)

    y = survey.defs.paper_height - defs.corner_mark_bottom
    x = (survey.defs.paper_width - defs.corner_mark_right + defs.corner_mark_left) / 2

    barcode_y = y - defs.code128_vpad - defs.code128_height
    barcode_x = x

    # Center
    barcode_x = barcode_x - barcode.width / mm / 2.0

    renderPDF.draw(barcode, canvas, barcode_x * mm, barcode_y * mm)

    # Label
    text_x = barcode_x + barcode.width / mm / 2.0
    text_y = barcode_y + defs.code128_height + 1 + defs.code128_text_font_size / 72.0 * 25.4 / 2.0

    canvas.saveState()
    canvas.setFont(defs.code128_text_font, defs.code128_text_font_size)
    canvas.drawCentredString(text_x * mm, text_y * mm, barcode_value)
    canvas.restoreState()
开发者ID:gabisurita,项目名称:GDAd,代码行数:32,代码来源:generic.py

示例8: draw_to_canvas

 def draw_to_canvas(O, canvas):
   if (reportlab is None): return
   from reportlab.graphics.shapes import Drawing
   from reportlab.graphics import renderPDF
   drawing = Drawing(*O.page_size)
   drawing.add(O.top_group)
   renderPDF.draw(drawing=drawing, canvas=canvas, x=0, y=0)
开发者ID:cctbx,项目名称:cctbx-playground,代码行数:7,代码来源:tst_tardy_eval.py

示例9: render_diploma

def render_diploma(request, response, diploma):
    design = diploma.design

    c = canvas.Canvas(response)

    marginLeft = 2 * cm
    marginTop = 2 * cm
    marginBottom = 2.5 * cm
    cTop = 29.7 * cm - marginTop
    cLeft = marginLeft
    cMiddle = 21 * cm / 2
    logoHeight = 1.4 * cm
    pictureHeight = 2.5 * cm

    text_value_map = {
        '$grade': str(diploma.grade),
    }

    if design.logo:
        c.drawImage(design.logo.path, cLeft, cTop - logoHeight, height=logoHeight, preserveAspectRatio=True, anchor="nw")

    c.setFont("Helvetica-Bold", 30)
    c.setFillColorRGB(0, 0.25, 0.5)
    c.drawCentredString(10.5 * cm, cTop - 5 * cm, diploma.name)

    c.setFont("Helvetica", 14)
    c.setFillColorRGB(0, 0, 0)
    for i,line in enumerate(text_lines(design.title, text_value_map)):
        c.drawCentredString(cMiddle, cTop - 7 * cm - (i * 0.8 * cm), line)

    c.setFont("Helvetica", 10)
    c.setFillColorRGB(0, 0, 0)
    for i,line in enumerate(text_lines(design.body, text_value_map)):
        c.drawString(cLeft, cTop - 10 * cm - (i * 0.6 * cm), line)

    c.setFont("Helvetica", 12)
    c.setFillColorRGB(0, 0, 0)
    c.drawString(cLeft, cTop - 21 * cm, design.date)

    c.drawString(cLeft, cTop - 23.5 * cm, design.signature_name)
    c.drawString(cLeft, cTop - 24 * cm, design.signature_title)

    c.setFont("Helvetica", 7)
    c.setFillColorRGB(0, 0, 0)
    for i,line in enumerate(text_lines(design.small_print, text_value_map)):
        c.drawString(cLeft, marginBottom - (i * 0.3 * cm), line)

    qr_code = qr.QrCodeWidget(request.build_absolute_uri(diploma.get_absolute_url()))
    bounds = qr_code.getBounds()
    width = bounds[2] - bounds[0]
    height = bounds[3] - bounds[1]
    d = Drawing(1200, 1200, transform=[60./width,0,0,60./height,0,0])
    d.add(qr_code)
    renderPDF.draw(d, c, 16.7 * cm, cTop - 24.3 * cm)

    c.showPage()
    #c.setAuthor("A+")
    c.setTitle("Course Diploma")
    #c.setSubject("")
    c.save()
开发者ID:Aalto-LeTech,项目名称:a-plus,代码行数:60,代码来源:pdf.py

示例10: draw_code128_sdaps_info

def draw_code128_sdaps_info(canvas, survey, page):
    # The page number is one based here already
    # The survey_id is a 32bit number, which means we need
    # 10 decimal digits to encode it, then we need to encode the
    # the page with at least 3 digits(just in case someone is insane enough
    # to have a questionnaire with more than 99 pages.
    # So use 10+4 digits

    barcode_value = "%010d%04d" % (survey.survey_id, page)
    barcode = createBarcodeDrawing("Code128",
                                   value=barcode_value,
                                   barWidth=defs.code128_barwidth / 25.4 * 72.0,
                                   height=defs.code128_height / 25.4 * 72.0,
                                   quiet=False)

    y = survey.defs.paper_height - defs.corner_mark_bottom
    x = survey.defs.paper_width - defs.corner_mark_right

    barcode_y = y - defs.code128_vpad - defs.code128_height
    barcode_x = x - defs.code128_hpad

    # The barcode should be flush left.
    barcode_x = barcode_x - barcode.width / mm

    renderPDF.draw(barcode, canvas, barcode_x * mm, barcode_y * mm)

    # Label
    text_x = barcode_x + barcode.width / mm / 2.0
    text_y = barcode_y + defs.code128_height + 1 + defs.code128_text_font_size / 72.0 * 25.4 / 2.0

    canvas.saveState()
    canvas.setFont(defs.code128_text_font, defs.code128_text_font_size)
    canvas.drawCentredString(text_x * mm, text_y * mm, barcode_value)
    canvas.restoreState()
开发者ID:gabisurita,项目名称:GDAd,代码行数:34,代码来源:generic.py

示例11: make_pdf

def make_pdf(data):
    page_width, page_height = A4
    page_margin = 10.0
    qr_width, qr_height = 60.0, 60.0

    qr_margin = 5.0     # this is a desired margin, not the actual one
    num_rows = int(math.floor((page_height - 2 * page_margin) / (qr_height + qr_margin)))
    num_cols = int(math.floor((page_width - 2 * page_margin) / (qr_width + qr_margin)))

    qr_vertical_margin = ((page_height - 2 * page_margin) - num_rows * qr_height) / num_rows
    qr_horizontal_margin = ((page_width - 2 * page_margin) - num_cols * qr_width) / num_cols

    qr = QrCodeWidget(data)
    output = cStringIO.StringIO()
    p = canvas.Canvas(output, pagesize=A4)
    b = qr.getBounds()
    w, h = b[2]-b[0], b[3]-b[1]

    d = Drawing(qr_width, qr_height,
                transform=[qr_width / w, 0, 0, qr_height / h, 0, 0])
    d.add(qr)

    for i in xrange(num_cols):
        x = page_margin + i * (qr_horizontal_margin + qr_width)

        for j in xrange(num_rows):
            y = page_margin + j * (qr_vertical_margin + qr_height)
            renderPDF.draw(d, p, x, y)

    p.showPage()
    p.save()

    pdf_output = output.getvalue()
    output.close()
    return pdf_output
开发者ID:maximweb,项目名称:brewmeister,代码行数:35,代码来源:qr.py

示例12: respond_with_permit_pdf

def respond_with_permit_pdf(permit):
    """
    :param permit: The permit for which to generate the PDF
    :return: An HTTP response
    """
    # Create the HttpResponse object with the appropriate PDF headers.
    response = HttpResponse(content_type="application/pdf")
    response["Content-Disposition"] = 'attachment; filename="permit_%05d.pdf"' % permit.pk

    # Produce PDF using ReportLab:
    p = canvas.Canvas(response)
    pageW = defaultPageSize[0]
    pageH = defaultPageSize[1]
    refX = pageW / 2
    refY = pageH - 6.25 * inch

    # The tag that gets placed near the location.
    p.rect(refX - 2.0 * inch, refY - 0 * inch, 4 * inch, 5 * inch)

    refY += 4.5 * inch

    # Static header:
    p.setFont("Helvetica", 14)
    p.drawCentredString(refX, refY - 0.00 * inch, "XEROCRAFT HACKERSPACE")
    p.setFont("Helvetica-Bold", 28)
    p.drawCentredString(refX, refY - 0.40 * inch, "PARKING PERMIT")
    p.setFont("Helvetica", 14)
    p.drawCentredString(refX, refY - 0.66 * inch, "MEMBER-CLAIMED PROPERTY")

    # Changing refY allows the follwoing to be moved up/down as a group, w.r.t. the text above.
    refY -= 3.0 * inch

    # QR Code:
    qr = QrCodeWidget('{"permit":%d}' % permit.id)
    qrSide = 2.5 * inch  # REVIEW: This isn't actually 2.3 inches.  What is it?
    bounds = qr.getBounds()
    qrW = bounds[2] - bounds[0]
    qrH = bounds[3] - bounds[1]
    drawing = Drawing(1000, 1000, transform=[qrSide / qrW, 0, 0, qrSide / qrH, 0, 0])
    drawing.add(qr)
    renderPDF.draw(drawing, p, refX - qrSide / 2, refY)

    p.setFont("Helvetica", 10)
    p.drawCentredString(refX, refY - 0.00 * inch, permit.short_desc)
    u = permit.owner.auth_user
    p.drawCentredString(refX, refY - 0.20 * inch, "Parked by: %s %s" % (u.first_name, u.last_name))
    p.drawCentredString(refX, refY - 0.40 * inch, "Permit #%05d" % permit.id)

    p.setFont("Helvetica", 14)
    if permit.ok_to_move:
        p.drawCentredString(refX, refY - 0.80 * inch, "It is OK to carefully move this item")
        p.drawCentredString(refX, refY - 1.00 * inch, "to another location, if required.")

    else:
        p.drawCentredString(refX, refY - 0.80 * inch, "This item is fragile. Please attempt")
        p.drawCentredString(refX, refY - 1.00 * inch, "to contact me before moving it.")

    p.showPage()
    p.save()
    return response
开发者ID:adrianboyko,项目名称:xerocraft-django,代码行数:60,代码来源:views.py

示例13: draw_to_file

    def draw_to_file(self, output_file, title):
        """Write the comparative plot to a file.

        Arguments:

        o output_file - The name of the file to output the information to,
                        or a handle to write to.

        o title - A title to display on the graphic.
        """
        width, height = self.page_size
        cur_drawing = Drawing(width, height)

        self._draw_title(cur_drawing, title, width, height)

        start_x = inch * .5
        end_x = width - inch * .5
        end_y = height - 1.5 * inch
        start_y = .5 * inch
        self._draw_scatter_plot(cur_drawing, start_x, start_y, end_x, end_y)

        if self.output_format == 'pdf':
            out_canvas = canvas.Canvas(output_file, pagesize = self.page_size)
            renderPDF.draw(cur_drawing, out_canvas, 0, 0)
            out_canvas.showPage()
            out_canvas.save()
        elif self.output_format == 'eps':
            renderPS.drawToFile(cur_drawing, output_file)
        else:
            raise ValueError("Invalid output format %s" % self.output_format)
开发者ID:nuin,项目名称:biopython,代码行数:30,代码来源:Comparative.py

示例14: draw_bar_chart

def draw_bar_chart(pdf_text, page_height):
    '''Currently generates a dummy graph.
    Next, need to pass in data that shall
    be the reactors temp throughout the
    sequence.
    '''
    pdf_text.showPage()
    drawing = Drawing(400, 200)
    data = [
            (13, 5, 20, 22, 37, 45, 19, 4),
            (14, 6, 21, 23, 38, 46, 20, 5)
            ]
    bc = VerticalBarChart()
    bc.x = 50
    bc.y = 50
    bc.height = 125
    bc.width = 300
    bc.data = data
    bc.strokeColor = colors.black
    bc.valueAxis.valueMin = 0
    bc.valueAxis.valueMax = 50
    bc.valueAxis.valueStep = 10
    bc.categoryAxis.labels.boxAnchor = 'ne'
    bc.categoryAxis.labels.dx = 8
    bc.categoryAxis.labels.dy = -2
    bc.categoryAxis.labels.angle = 30
    bc.categoryAxis.categoryNames = ['Jan-99','Feb-99','Mar-99','Apr-99','May-99','Jun-99','Jul-99','Aug-99']
    drawing.add(bc)
    renderPDF.draw(drawing, pdf_text, inch, inch)
    
    return page_height
开发者ID:michaelvandam,项目名称:elixys,代码行数:31,代码来源:PDFHandler.py

示例15: draw_qr_sdaps_info

def draw_qr_sdaps_info(canvas, survey, page):
    # The page number is one based here already
    # The survey_id is a 32bit number, which means we need
    # 10 decimal digits to encode it, then we need to encode the
    # the page with at least 3 digits(just in case someone is insane enough
    # to have a questionnaire with more than 99 pages.
    # So use 10+4 digits

    value = "%010d%04d" % (survey.survey_id, page)

    y = survey.defs.paper_height - defs.corner_mark_bottom
    x = survey.defs.paper_width - defs.corner_mark_right

    qr_code = qr.QrCodeWidget(value, barLevel='H')
    bounds = qr_code.getBounds()

    width = bounds[2] - bounds[0]
    height = bounds[3] - bounds[1]

    # Squeeze into the space between corner mark and content
    size = defs.bottom_page_margin - defs.corner_mark_bottom

    code_y = y
    code_x = x - size

    d = Drawing(size*mm, size*mm, transform=[float(size*mm)/width,0,0,-float(size*mm)/height,0,0])
    d.add(qr_code)

    renderPDF.draw(d, canvas, code_x*mm, code_y*mm)
开发者ID:bgeneto,项目名称:sdaps,代码行数:29,代码来源:generic.py


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