本文整理汇总了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
示例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'))
示例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()
示例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()
示例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")
示例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 Marrakech: +212 6 89 91 77 20
""", styles['remarque'])], canvas)
canvas.save()
示例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()
示例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'))
示例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
示例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()
示例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()
示例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
示例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')
示例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
示例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()