本文整理汇总了Python中reportlab.pdfgen.canvas.setFont函数的典型用法代码示例。如果您正苦于以下问题:Python setFont函数的具体用法?Python setFont怎么用?Python setFont使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了setFont函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _build_header_canvas
def _build_header_canvas(canvas, doc):
"""
Draw the document header.
Local function to be passed later to output_doc.build().
Reportlab automatically passes args when called.
"""
# The header function to be passed later to output_doc.build()
# Set up positions
header_y_position = (11 * units.inch) - 45
page_number = doc.page
if page_number % 2 == 0:
# Left-hand page
page_number_x_position = 60
else:
# Right-hand page
page_number_x_position = (8.5 * units.inch) - 60
canvas.saveState()
canvas.setFont(self.paragraph_style.fontName,
self.paragraph_style.fontSize)
if self.title:
canvas.drawCentredString((8.5 * units.inch) / 2,
header_y_position,
self.title)
canvas.drawString(page_number_x_position, header_y_position,
str(page_number))
canvas.restoreState()
示例2: colorsRGB
def colorsRGB(canvas):
from reportlab.lib import colors
from reportlab.lib.units import inch
black = colors.black
y = x = 0; dy=inch*3/4.0; dx=inch*5.5/5; w=h=dy/2; rdx=(dx-w)/2
rdy=h/5.0; texty=h+2*rdy
canvas.setFont("Helvetica",10)
for [namedcolor, name] in (
[colors.lavenderblush, "lavenderblush"],
[colors.lawngreen, "lawngreen"],
[colors.lemonchiffon, "lemonchiffon"],
[colors.lightblue, "lightblue"],
[colors.lightcoral, "lightcoral"]):
canvas.setFillColor(namedcolor)
canvas.rect(x+rdx, y+rdy, w, h, fill=1)
canvas.setFillColor(black)
canvas.drawCentredString(x+dx/2, y+texty, name)
x = x+dx
y = y + dy; x = 0
for rgb in [(1,0,0), (0,1,0), (0,0,1), (0.5,0.3,0.1), (0.4,0.5,0.3)]:
r,g,b = rgb
canvas.setFillColorRGB(r,g,b)
canvas.rect(x+rdx, y+rdy, w, h, fill=1)
canvas.setFillColor(black)
canvas.drawCentredString(x+dx/2, y+texty, "r%s g%s b%s"%rgb)
x = x+dx
y = y + dy; x = 0
for gray in (0.0, 0.25, 0.50, 0.75, 1.0):
canvas.setFillGray(gray)
canvas.rect(x+rdx, y+rdy, w, h, fill=1)
canvas.setFillColor(black)
canvas.drawCentredString(x+dx/2, y+texty, "gray: %s"%gray)
x = x+dx
示例3: create_report
def create_report():
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
width, height = letter
canvas = canvas.Canvas("form.pdf", pagesize=letter)
canvas.setLineWidth(.3)
canvas.setFont('Helvetica', 10)
canvas.drawString(30, 750, 'OFFICIAL COMMUNIQUE')
canvas.drawString(30, 735, 'OF ACME INDUSTRIES')
canvas.drawString(500, 750, "12/12/2010")
canvas.line(480, 747, 580, 747)
canvas.drawString(275, 725, 'AMOUNT OWED:')
canvas.drawString(500, 725, "$1,000.00")
canvas.line(378, 723, 580, 723)
canvas.drawString(30, 703, 'RECEIVED BY:')
canvas.line(110, 700, 580, 700)
canvas.drawString(110, 703, "JOHN DOE")
canvas.save()
示例4: printColors
def printColors(canvas):
canvas.setFont("Helvetica",10)
y = x = 0; dy=inch*1/2.0; dx=1*inch; w=h=dy/2
rdx=(dx-w)/2; rdy=h/5.0
available_paper = 10*inch
for name, color in colors.getAllNamedColors().iteritems():
# for [namedcolor, name] in (
# 'darkseagreen', 'darkslateblue',
# [colors.darkblue, 'darkblue'],
# [colors.darkcyan, 'darkcyan'],
# [colors.darkolivegreen, 'darkolivegreen'],
# [colors.cornflower, 'cornflower'],
# [colors.orchid, 'orchid'],
# [colors.lavenderblush, "lavenderblush"],
# [colors.lawngreen, "lawngreen"],
# [colors.lemonchiffon, "lemonchiffon"],
# [colors.lightblue, "lightblue"],
# [colors.lightcoral, "lightcoral"]):
canvas.setFillColor(color)
canvas.rect(x+rdx, y+rdy, w, h, fill=1)
canvas.setFillColor(colors.black)
canvas.drawString(x+dx/4 + 1*inch, y+rdy, name)
rdy += .2*inch
available_paper -= (y+rdy)
if available_paper < 1*inch:
c.showPage()
y = x = 0; dy=inch*1/2.0; dx=1*inch; w=h=dy/2
rdx=(dx-w)/2; rdy=h/5.0
available_paper = 10*inch
示例5: myPage
def myPage(canvas, doc):
canvas.saveState() # save the current state
canvas.setFont('InconsolataBold', 16) # set the font for the name
canvas.drawString(
.4 * inch,
HEIGHT - (.4 * inch),
contact['name']) # draw the name on top left page 1
canvas.setFont('Inconsolata', 8) # sets the font for contact
canvas.drawRightString(
WIDTH - (.4 * inch),
HEIGHT - (.4 * inch),
contact['website'])
canvas.line(.4 * inch, HEIGHT - (.47 * inch),
WIDTH - (.4 * inch), HEIGHT - (.47 * inch))
canvas.drawString(
.4 * inch,
HEIGHT - (.6 * inch),
contact['phone'])
canvas.drawCentredString(
WIDTH / 2.0,
HEIGHT - (.6 * inch),
contact['address'])
canvas.drawRightString(
WIDTH - (.4 * inch),
HEIGHT - (.6 * inch),
contact['email'])
# restore the state to what it was when saved
canvas.restoreState()
示例6: el_encogedor_de_fuentes_de_doraemon
def el_encogedor_de_fuentes_de_doraemon(canvas, fuente, tamannoini, xini, xfin, y, texto, alineacion = -1):
"""
Comenzando por el tamaño inicial "tamannoini", encoge el texto
hasta que quepa en los límites fijados y después lo escribe.
Convierte el texto por si está en una codificación no soportada.
Al finalizar, devuelve las propiedades de texto del canvas a
su estado original y la fuente a su tamaño inicial.
NO AVANZA LÍNEA.
Si alineacion == -1: Alineación a la izquierda. Si 0, centrado y si 1, a la derecha.
"""
# PLAN: No estaría mal pasar un tamaño mínimo de fuente, y si se alcanza o se supera, cortar la línea con
# agregarFila y el último tamaño de fuente válido. Claro que entonces habría que devolver también las líneas
# avanzadas, etc...
canvas.saveState()
size = tamannoini
texto = escribe(texto)
while canvas.stringWidth(texto, fuente, size) > (xfin - xini) and size > 4:
size -= 1
canvas.setFont(fuente, size)
if alineacion == -1:
canvas.drawString(xini, y, texto)
elif alineacion == 1:
canvas.drawRightString(xfin, y, texto)
elif alineacion == 0:
canvas.drawCentredString((xfin + xini) / 2.0, y, texto)
else:
print "geninformes.py::el_encogedor_de_fuentes_de_doraemon -> Error alineación. Uso alineación a la izquierda por defecto."
canvas.drawString(xini, y, texto)
canvas.restoreState()
示例7: draw
def draw(self):
canvas = self.canv
if type(self.labelLigne) != six.text_type :
self.labelLigne = self.labelLigne.decode("iso-8859-15")
canvas.setFont("Helvetica", 9)
# Dessin du label de la ligne
xRightLabel = COORD_LIGNE[0] - 10
yBasLabel = 0
if MODE_TEXTE == 2 : yBasLabel = yBasLabel + 6
canvas.drawRightString(xRightLabel, yBasLabel + 3, self.labelLigne)
# Dessin test de la ligne totale
## canvas.rect(COORD_LIGNE[0], 0, COORD_LIGNE[1]-COORD_LIGNE[0], 10)
tailleVirtuelleLigne = COORD_LIGNE[1]-COORD_LIGNE[0]
largeurMargesFeuille = 75
posXGaucheLigne = COORD_LIGNE[0]
taillePapierLigne = LARGEUR_PAGE- (largeurMargesFeuille*2) - posXGaucheLigne
facteurAgrandissement = (taillePapierLigne *1.0) / tailleVirtuelleLigne
# Dessine la ligne
## canvas.setFillColorRGB(0.9, 0.9, 0.5)
## canvas.rect(COORD_LIGNE[0], 0, taillePapierLigne, HAUTEUR_BARRE, fill=0)
# Dessin de toutes les barres de la ligne
for barre in self.listeBarresLigne :
IDpresence, IDpersonne, date, heureDebut, heureFin, IDcategorie, intitule, posG, posD, posYhaut, posYbas = barre
x = posG
y = 0
largeur = posD - posG
hauteur = HAUTEUR_BARRE - 3
label = intitule
self.Barre(canvas, x, y, largeur, hauteur, label, heureDebut, heureFin, IDcategorie, facteurAgrandissement)
示例8: __init__
def __init__(self, canvas, maxWidth, maxHeight):
self.topBorderStr = u"\u00f9\u00fa\u00fa\u00fa\u00fa\u00fa\u00fa\u00fa\u00fa\u00fb"
# we draw the left border character (which includes the rank number),
# eight squares, and then the right border character
self.widthInChessChars = 1 + 8 + 1
# we draw the top border character, the 8 squares in a file,
# and the bottom border character (which includes the file name)
self.heightInChessChars = 1 + 8 + 1
self.maxWidth = maxWidth
self.maxHeight = maxHeight
self.canvas = canvas
# increase the font size until we surpass the limits, then decrement back
self.fontSymSize = 1
while 1:
canvas.setFont("ChessAlpha2", self.fontSymSize)
candidateWidth = canvas.stringWidth(self.topBorderStr)
if candidateWidth > maxWidth:
break
if self.fontSymSize * self.heightInChessChars > maxHeight:
break
self.fontSymSize += 1
self.fontSymSize -= 1
self.fontTextSize = self.fontSymSize - 8
# final calculations
canvas.setFont("ChessAlpha2", self.fontSymSize)
self.width = self.height = canvas.stringWidth(self.topBorderStr)
示例9: 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()
示例10: __init__
def __init__(self, pt_ID, amount):
self.amount = amount
self.pt_ID = pt_ID
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
lt = "%s/EMR_outputs/%s/Other/rcpt-%s.pdf" % (settings.LINUXPATH, self.pt_ID, EMR_utilities.dateToday('file format'))
at = "%s/EMR_outputs/%s/Other/rcpt-%s.pdf" % (settings.APPLEPATH, self.pt_ID, EMR_utilities.dateToday('file format'))
wt = "%s\EMR_outputs\%s\Other\rcpt-%s.pdf" % (settings.WINPATH, self.pt_ID, EMR_utilities.dateToday('file format'))
filename = EMR_utilities.platformText(lt, at, wt)
canvas = canvas.Canvas(filename, pagesize=letter)
canvas.setLineWidth(.3)
canvas.setFont('Helvetica', 12)
canvas.drawString(30,750,'PAYMENT FOR MEDICAL SERVICES FOR %s' % self.name_find())
canvas.drawString(30,735,'RENDERED AT BARRON FAMILY MEDICINE')
canvas.drawString(500,750,"%s" % EMR_utilities.dateToday())
canvas.line(480,747,580,747)
canvas.drawString(275,725,'AMOUNT PAID:')
canvas.drawString(500,725,"$%s" % self.amount)
canvas.line(378,723,580,723)
canvas.drawString(30,703,'RECEIVED BY:')
canvas.line(120,700,580,700)
canvas.drawString(120,703, settings.NAME)
canvas.save()
示例11: __init__
def __init__(self, pt_ID, amount):
self.amount = amount
self.pt_ID = pt_ID
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
canvas = canvas.Canvas("/home/mb/Desktop/GECKO/EMR_outputs/%s/Other/rcpt-%s.pdf" % \
(self.pt_ID, EMR_utilities.dateToday()), pagesize=letter)
canvas.setLineWidth(.3)
canvas.setFont('Helvetica', 12)
canvas.drawString(30,750,'PAYMENT FOR MEDICAL SERVICES FOR %s' % self.name_find())
canvas.drawString(30,735,'RENDERED AT BARRON FAMILY MEDICINE')
canvas.drawString(500,750,"%s" % EMR_utilities.dateToday())
canvas.line(480,747,580,747)
canvas.drawString(275,725,'AMOUNT PAID:')
canvas.drawString(500,725,"$%s" % self.amount)
canvas.line(378,723,580,723)
canvas.drawString(30,703,'RECEIVED BY:')
canvas.line(120,700,580,700)
canvas.drawString(120,703,"MICHAEL BARRON MD")
canvas.save()
示例12: header
def header(canvas, signup, entry, metadata):
year = int(signup.get('year'))
# Prints Show info
canvas.setFont("Helvetica-Bold", 20)
canvas.drawString(inch, 10 * inch, "That Takes the Cake! " + str(year))
canvas.setFont("Helvetica", 14)
canvas.drawString(inch, 9.75 * inch, "Cake & Sugar Art Show & Competition")
canvas.drawString(inch, 9.50 * inch, "Capital Confectioners, Austin, TX")
canvas.drawString(inch, 9.25 * inch, get_show_start_date(year) + " & " + get_show_end_date(year))
# Print entry number, division & category
canvas.setFont("Helvetica-Bold", 20)
canvas.drawRightString(7.75 * inch, 10 * inch, "Entry #" + str(entry.get('id')))
canvas.setFont("Helvetica", 12)
if (entry.get('category').startswith('Showcakes')):
canvas.drawRightString(7.75 * inch, 9.75 * inch, entry.get('category'))
elif _is_tasting(metadata, entry):
canvas.drawRightString(7.75 * inch, 9.75 * inch, entry.get('category'))
else:
className = signup.get('class', '')
canvas.drawRightString(7.75 * inch, 9.75 * inch, className)
if (className):
if ((className.find('Child') < 0) and (className.find('Junior') < 0)):
canvas.drawRightString(7.75 * inch, 9.50 * inch, entry.get('category'))
canvas.setFont("Helvetica", 14)
示例13: draw_debug_outline
def draw_debug_outline(self, config ):
"""draw an outline around the box"""
canvas = self.canvas
# don't muck up the external state
canvas.saveState()
# discreet - but visible
canvas.setStrokeColorRGB( 0.9, 0.7, 0.7 )
canvas.setFillColorRGB( 0.6, 0.6, 0.6 )
canvas.setFont( 'Helvetica', 8 )
# draw a box to show the extent
canvas.rect(
config['x'], config['y'], config['w'], config['h'],
stroke=1, fill=0,
)
# put in some debug info
canvas.drawRightString(
config['x'] + config['w'],
config['y'] + 4,
', '.join(config['content'])
)
# restore state
canvas.restoreState()
示例14: docPage
def docPage(canvas,doc):
canvas.saveState()
canvas.setFont('Times-Bold', 10)
canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT - (.25 * inch), Title)
canvas.setFont('Times-Roman',9)
canvas.drawString(7 * inch, .75 * inch, "Page %d" % (doc.page,))
canvas.restoreState()
示例15: myFirstPage
def myFirstPage(self, canvas, doc):
canvas.saveState()
canvas.setFont('Times-Roman',9)
canvas.drawString(inch, 0.75 * inch, "Page 1 / %s" % pageinfo)
self.headerTable.wrapOn(canvas, 540, height)
self.headerTable.drawOn(canvas, *coord(1.0, 1.5, cm))
canvas.restoreState()