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


Python Canvas.save方法代码示例

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


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

示例1: get_pdf

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
 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,代码行数:9,代码来源:pdf.py

示例2: ___test2_all

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
    def ___test2_all(self):
        """Dumps out ALl GLYPHS in a CID font.

        Reach for your microscope :-)"""
        try:
            from reportlab.pdfbase.cidfonts import CIDFont, findCMapFile
            findCMapFile('90ms-RKSJ-H')
            findCMapFile('Identity-H')
        except:
            #don't have the font pack.  return silently
            return

        pdfmetrics.registerFont(CIDFont('HeiseiMin-W3','Identity-H'))

        c = Canvas('test_japanese_2.pdf')
        c.setFont('Helvetica', 30)
        c.drawString(100,800, 'All Glyphs in Adobe-Japan-1-2 collection!')

        # the two typefaces
        c.setFont('HeiseiMin-W3-Identity-H', 2)

        x0 = 50
        y0 = 700
        dx = 2
        dy = 2
        for row in range(256):
            for cell in range(256):
                s = chr(row) + chr(cell)
                x = x0 + cell*dx
                y = y0 - row*dy
                c.drawString(x,y,s)

        c.save()
        if VERBOSE:
            print('saved '+outputfile('test_multibyte_jpn.pdf'))
开发者ID:Distrotech,项目名称:reportlab,代码行数:37,代码来源:test_multibyte_jpn.py

示例3: generateNumberedPages

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
def generateNumberedPages(numPages, pageSize, orientation, bgColor, outPath):
    "Generate a 10 page document with one big number per page."
    
    if orientation == "landscape":
        pageSize = landscape(pageSize)
    canv = Canvas(outPath, pagesize=pageSize)

    for i in range(numPages):
        canv.setFont("Helvetica", 500)
        text = u"%s" % i
        if i % 2 == 0:
            canv.setStrokeColor(bgColor)
            canv.setFillColor(bgColor)
            canv.rect(0, 0, pageSize[0], pageSize[1], stroke=True, fill=True)
            canv.setFillColor(black)
        elif i % 2 == 1:
            canv.setStrokeColor(black)
            canv.setFillColor(black)
            canv.rect(0, 0, pageSize[0], pageSize[1], stroke=True, fill=True)
            canv.setFillColor(bgColor)
        if orientation == "portrait":
            canv.drawCentredString(pageSize[0]/2.0, pageSize[1]*0.3, u"%s" % i) 
        elif orientation == "landscape":
            canv.drawCentredString(pageSize[0]/2.0, pageSize[1]*0.21, u"%s" % i) 
        canv.showPage()
        
    canv.save() 
开发者ID:nunb,项目名称:pdfnup,代码行数:29,代码来源:genpdf.py

示例4: main

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
def main():
    currpos = PAGESIZE[1] - LINEHEIGHT # start at 1 line from top of page
    pdf = Canvas(OUTPUTFILE, pagesize = ORIENTATION(PAGESIZE))
    pdf.setFillGray(1)
    pdf.setLineWidth(GUIDETHICKNESS_MAIN)
    while currpos > LINEHEIGHT: # Loop until we reach one line from bottom of page
        # Draw tall ascender line
        pdf.setStrokeGray(0.5)
        pdf.line( 0, currpos, PAGESIZE[0], currpos)

        # Draw short ascender line, x-height-line, and baseline
        pdf.setStrokeGray(0.75)
        pdf.setLineWidth(GUIDETHICKNESS_SMALL)        
        pdf.line( 0, currpos - ( LINEHEIGHT/6 ),
                  PAGESIZE[0], currpos - ( LINEHEIGHT/6 ))
        pdf.line( 0, currpos - ( LINEHEIGHT/3 ),
                  PAGESIZE[0], currpos - ( LINEHEIGHT/3 ))
        pdf.line( 0, currpos - ( 2 * LINEHEIGHT/3 ),
                  PAGESIZE[0], currpos - ( 2 * LINEHEIGHT/3 ))

        currpos -= LINEHEIGHT

    # Draw a final line, and draw a margin
    pdf.setStrokeColorRGB(0.5, 0.5, 0.5)
    pdf.setLineWidth(GUIDETHICKNESS_MAIN)
    pdf.line( 0, currpos, PAGESIZE[0], currpos)
    if LEFTMARGIN:
        pdf.line( 2 * LINEHEIGHT, currpos,
                  2 * LINEHEIGHT, PAGESIZE[1] - LINEHEIGHT ) 

    # close up.
    pdf.showPage()
    pdf.save()
开发者ID:ChaseVoid,项目名称:python-play,代码行数:35,代码来源:writingpaper.py

示例5: test0

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
    def test0(self):
        "A basic document drawing some strings"

        self.luxi = TTFont("DejaVu", "DejaVuSans.ttf")
        pdfmetrics.registerFont(self.luxi)
        # if they do not have the Japanese font files, go away quietly
        # from reportlab.pdfbase.cidfonts import UnicodeCIDFont, findCMapFile

        ##        enc = 'ETenms-B5-H'
        ##        try:
        ##            findCMapFile(enc)
        ##        except:
        ##            #they don't have the font pack, return silently
        ##            print 'CMap not found'
        ##            return
        # pdfmetrics.registerFont(UnicodeCIDFont('MSung-Light'))

        c = Canvas(outputfile("test_multibyte_gr.pdf"))
        c.setFont("Helvetica", 24)
        c.drawString(100, 700, "Greek characters Font Support")
        c.setFont("Helvetica", 10)
        c.drawString(100, 680, "Short sample: ")

        hBoxText("Αυτό είναι ενα δοκιμαστικό κείμενο.", c, 100, 600, "DejaVu")

        ##
        c.save()
        if VERBOSE:
            print "saved " + outputfile("test_multibyte_gr.pdf")
开发者ID:xrg,项目名称:OpenERP,代码行数:31,代码来源:test_multibyte_gr.py

示例6: generer_coupons

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
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,代码行数:62,代码来源:pdf.py

示例7: main

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
def main(argv):
    global X, Y, Title
    if len(argv) != 2:
        print __doc__
        sys.exit(2)
    c = Canvas(argv[1], pagesize=pageSize, pageCompression=0)
    c.setFont(fontName, fontSize)

    init()
    X = 0
    Y = 0
    execfile(argv[0], globals())
    init()
    if Title:
        print "title", Title
        c.drawCentredString(pageSize[0] / 2, pageSize[1] - (margins.top * inch * 0.65), Title)
    X = startX
    Y = startY
    for chart in Charts:
        x = chart.fx
        y = chart.fy
        if not x and not y:
            x = X
            y = Y
        chart.draw(c, x, y)
        over()

    c.showPage()
    c.save()
开发者ID:dirck,项目名称:pytabla,代码行数:31,代码来源:pyneck.py

示例8: __init__

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
class AwardPrinter:
  def __init__(self, output_filename, background_image, page_renderer):
    self.background_image = background_image
    self.page_renderer = page_renderer
    self.pdf = Canvas(output_filename, pagesize = A4)        
  
  def draw(self, students):
    for student in students:
        self._draw_page(student)
    self.pdf.save()    
  
  def _draw_page(self, student):
    self.pdf.setFillColor(colors.black)
    # export the image as a higter resolution image 1280x920 recommended, which is then reduced 
    # in size to have a higher resolution for printing
    self.pdf.drawImage(self.background_image, .1 * inch, .3 * inch, width=580, height=800, preserveAspectRatio=True)
    self.pdf.rotate(270)
    self.page_renderer(self, student)
    self.pdf.showPage()    
      
  def _draw_award(self, student):
    name = student.split(',')[0].strip()
    award = student.split(',')[1].strip()
    self.pdf.setFont("Helvetica", 28)
    # play with these dimensions if you want to move around the text in the screen
    self.pdf.drawCentredString(-5.4 * inch, 4.5 * inch, name.encode('latin-1'))
    self.pdf.setFont("Helvetica", 18)
    # play with these dimensions if you want to move around the text in the screen
    self.pdf.drawCentredString(-5.4 * inch, 3.5 * inch, award)
    
  def _draw_certificate(self, student):
    name = student.split(',')[0].strip()    
    self.pdf.setFont("Helvetica", 32)
    # play with these dimensions if you want to move around the text in the screen
    self.pdf.drawCentredString(-5.75 * inch, 5.5 * inch, name.encode('latin-1'))
开发者ID:jawspeak,项目名称:twu-pdf-award-printers,代码行数:37,代码来源:award_generator.py

示例9: test_single_page_image

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
def test_single_page_image():
    filename = os.path.join(TEST_OUTPUT, 'image-mono.pdf')
    pdf = Canvas(filename, pagesize=(72, 72))
    with NamedTemporaryFile() as im_tmp:
        im = Image.new('1', (8, 8), 0)
        for n in range(8):
            im.putpixel((n, n), 1)
        im.save(im_tmp.name, format='PNG')
        # Draw image in a 72x72 pt or 1"x1" area
        pdf.drawImage(im_tmp.name, 0, 0, width=72, height=72)
        pdf.showPage()
        pdf.save()

    pdfinfo = pageinfo.pdf_get_all_pageinfo(filename)

    assert len(pdfinfo) == 1
    page = pdfinfo[0]

    assert not page['has_text']
    assert len(page['images']) == 1

    pdfimage = page['images'][0]
    assert pdfimage['width'] == 8
    # assert pdfimage['color'] == 'gray'

    # While unexpected, this is correct
    # PDF spec says /FlateDecode image must have /BitsPerComponent 8
    # So mono images get upgraded to 8-bit
    assert pdfimage['bpc'] == 8

    # DPI in a 1"x1" is the image width
    assert pdfimage['dpi_w'] == 8
    assert pdfimage['dpi_h'] == 8
开发者ID:lucasguillermo,项目名称:OCRmyPDF,代码行数:35,代码来源:test_pageinfo.py

示例10: SquareTest

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
class SquareTest(unittest.TestCase):
    """ Construct and draw image with ColorSpiral colours placed in a
        square, with jitter
    """
    def setUp(self):
        """ Set up canvas for drawing"""
        output_filename = os.path.join("Graphics", "square_test.pdf")
        self.c = Canvas(output_filename, pagesize=(500, 500))

    def test_colorspiral(self):
        """ Set of 625 colours, with jitter, using get_colors()."""
        boxedge = 20
        boxes_per_row = 25
        rows = 0
        for i, c in enumerate(get_colors(625)):
            self.c.setFillColor(c)
            x1 = boxedge * (i % boxes_per_row)
            y1 = rows * boxedge
            self.c.rect(x1, y1, boxedge, boxedge, fill=1, stroke=0)
            if not (i+1) % boxes_per_row:
                rows += 1
        self.finish()

    def finish(self):
        """ Clean up and save image."""
        self.c.save()
开发者ID:widdowquinn,项目名称:ColorSpiral,代码行数:28,代码来源:test_ColorSpiral.py

示例11: run

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
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,代码行数:9,代码来源:pytabla.py

示例12: buildPDFx6

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
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,代码行数:35,代码来源:printer.py

示例13: test

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
def test():
    c = Canvas('codecharts.pdf')
    c.setFont('Helvetica-Bold', 24)
    c.drawString(72, 750, 'Testing code page charts')
    cc1 = SingleByteEncodingChart()
    cc1.drawOn(c, 72, 500)

    cc2 = SingleByteEncodingChart(charsPerRow=32)
    cc2.drawOn(c, 72, 300)

    cc3 = SingleByteEncodingChart(charsPerRow=25, hex=0)
    cc3.drawOn(c, 72, 100)

##    c.showPage()
##
##    c.setFont('Helvetica-Bold', 24)
##    c.drawString(72, 750, 'Multi-byte Kuten code chart examples')
##    KutenRowCodeChart(1, 'HeiseiMin-W3','EUC-H').drawOn(c, 72, 600)
##    KutenRowCodeChart(16, 'HeiseiMin-W3','EUC-H').drawOn(c, 72, 450)
##    KutenRowCodeChart(84, 'HeiseiMin-W3','EUC-H').drawOn(c, 72, 300)
##
##    c.showPage()
##    c.setFont('Helvetica-Bold', 24)
##    c.drawString(72, 750, 'Big5 Code Chart Examples')
##    #Big5CodeChart(0xA1, 'MSungStd-Light-Acro','ETenms-B5-H').drawOn(c, 72, 500)

    c.save()
    print('saved codecharts.pdf')
开发者ID:Aeium,项目名称:dotStudio,代码行数:30,代码来源:codecharts.py

示例14: drawToFile

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
def drawToFile(d, fn, msg="", showBoundary=rl_config._unset_, autoSize=1):
    """Makes a one-page PDF with just the drawing.

    If autoSize=1, the PDF will be the same size as
    the drawing; if 0, it will place the drawing on
    an A4 page with a title above it - possibly overflowing
    if too big."""
    d = renderScaledDrawing(d)
    c = Canvas(fn)
    if msg:
        c.setFont(rl_config.defaultGraphicsFontName, 36)
        c.drawString(80, 750, msg)
    c.setTitle(msg)

    if autoSize:
        c.setPageSize((d.width, d.height))
        draw(d, c, 0, 0, showBoundary=showBoundary)
    else:
        #show with a title
        c.setFont(rl_config.defaultGraphicsFontName, 12)
        y = 740
        i = 1
        y = y - d.height
        draw(d, c, 80, y, showBoundary=showBoundary)

    c.showPage()
    c.save()
    if sys.platform=='mac' and not hasattr(fn, "write"):
        try:
            import macfs, macostools
            macfs.FSSpec(fn).SetCreatorType("CARO", "PDF ")
            macostools.touched(fn)
        except:
            pass
开发者ID:jeffery9,项目名称:reportlab,代码行数:36,代码来源:renderPDF.py

示例15: run

# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import save [as 别名]
def run(rfc_list= ["1111","22222"], pdf_file="barcode.pdf"):
    try:
        os.remove(pdf_file)
    except:
        pass

    c = Canvas(pdf_file)
    c.setFontSize(size="7")
    print  " %s pag para %s rfcs " % (round(len(rfc_list)/114.0,0), len(rfc_list))
    for times in range(0,int(round(len(rfc_list)/114.0,0))):
        for i in range(0,6):
            for j in range(1,20):
                st = code128.Code128()
                if len(rfc_list) >0 :
                    rfc = rfc_list.pop()
                else:
                    c.save()
                    sys.exit()
                st.value = rfc
                pos_x = i*30*mm
                pos_y = j*15*mm
                #print pos_x/mm,pos_y/mm
                st.drawOn(c, x = pos_x, y = pos_y)
                c.drawString(pos_x+10*mm, pos_y+7*mm , rfc )
        c.showPage()
        c.setFontSize(size="7")

        try:
            f = open(pdf_file, "wb")
        except IOError:
            easygui.msgbox("El archivo pdf esta abierto, por lo que no se puede guardar", "Error")
            sys.exit(0)
        c.save()
开发者ID:tejastank,项目名称:rfc2barcode,代码行数:35,代码来源:code.py


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