本文整理汇总了Python中reportlab.pdfgen.canvas.Canvas.setFillColorCMYK方法的典型用法代码示例。如果您正苦于以下问题:Python Canvas.setFillColorCMYK方法的具体用法?Python Canvas.setFillColorCMYK怎么用?Python Canvas.setFillColorCMYK使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reportlab.pdfgen.canvas.Canvas
的用法示例。
在下文中一共展示了Canvas.setFillColorCMYK方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PDFGenerator
# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import setFillColorCMYK [as 别名]
#.........这里部分代码省略.........
trafo = [2.0, 0.0, 0.0, 2.0, -1.0, -1.0]
circle_paths = libgeom.apply_trafo_to_paths(circle_paths, trafo)
inner_paths = []
r = 0.0
self.canvas.saveState()
self.canvas.clipPath(pdfpath, 0, 0)
self.canvas.transform(*cv_trafo)
while r < l:
point = r / l
self.canvas.setFillColor(self.get_grcolor_at_point(stops, point))
if r + d < l: coef = (r + d)
else: coef = l
trafo = [coef, 0.0, 0.0, coef, 0.0, 0.0]
paths = libgeom.apply_trafo_to_paths(circle_paths, trafo)
ring = self.make_pdfpath(inner_paths + paths)[0]
inner_paths = paths
self.canvas.drawPath(ring, stroke=0, fill=1)
r += d
self.canvas.setFillColor(self.get_grcolor_at_point(stops, 1.0))
r = max(bbox[2] - bbox[0], bbox[3] - bbox[1])
trafo = [2.0 * r, 0.0, 0.0, 2.0 * r, 0.0, 0.0]
paths = libgeom.apply_trafo_to_paths(circle_paths, trafo)
ring = self.make_pdfpath(inner_paths + paths)[0]
self.canvas.drawPath(ring, stroke=0, fill=1)
self.canvas.restoreState()
def draw_image(self, image, alpha_channel=None):
if not image: return
if self.colorspace == uc2const.COLOR_CMYK:
image = self.cms.convert_image(image, uc2const.IMAGE_CMYK)
elif self.colorspace == uc2const.COLOR_RGB:
image = self.cms.convert_image(image, uc2const.IMAGE_RGB)
elif self.colorspace == uc2const.COLOR_GRAY:
image = self.cms.convert_image(image, uc2const.IMAGE_GRAY)
img = ImageReader(image)
img.getRGBData()
if alpha_channel: img._dataA = ImageReader(alpha_channel)
self.canvas.drawImage(img, 0, 0, mask='auto')
def draw_pixmap_obj(self, obj):
if obj.colorspace in uc2const.DUOTONES:
fg, bg = libimg.convert_duotone_to_image(self.cms, obj)
self.draw_image(*bg)
self.draw_image(*fg)
else:
raw_image = Image.open(StringIO(b64decode(obj.bitmap)))
raw_image.load()
alpha_chnl = None
if obj.alpha_channel:
alpha_chnl = Image.open(StringIO(b64decode(obj.alpha_channel)))
alpha_chnl.load()
self.draw_image(raw_image, alpha_chnl)
def draw_pixmap(self, obj):
self.canvas.saveState()
self.canvas.transform(*obj.trafo)
self.canvas.setFillColorCMYK(0, 0, 0, 1, 1)
self.canvas.setStrokeColorCMYK(0, 0, 0, 1, 1)
self.draw_pixmap_obj(obj)
self.canvas.restoreState()
def fill_pattern(self, obj, pdfpath, fill_trafo, pattern):
if not fill_trafo:
fill_trafo = [1.0, 0.0, 0.0, 1.0, 0.0, 0.0]
inv_ptrn_trafo = libgeom.invert_trafo(pattern[3])
inv_trafo = libgeom.multiply_trafo(libgeom.invert_trafo(fill_trafo),
libgeom.invert_trafo(inv_ptrn_trafo))
paths = libgeom.apply_trafo_to_paths(obj.paths, obj.trafo)
paths = libgeom.apply_trafo_to_paths(paths, inv_trafo)
bbox = libgeom.get_paths_bbox(paths)
cv_trafo = libgeom.multiply_trafo(pattern[3], fill_trafo)
bmpstr = b64decode(pattern[1])
image_obj = sk2_model.Pixmap(obj.config)
libimg.set_image_data(self.cms, image_obj, bmpstr)
if pattern[0] == sk2_const.PATTERN_IMG and \
len(pattern) > 2:
image_obj.style[3] = deepcopy(pattern[2])
libimg.update_image(self.cms, image_obj)
self.canvas.saveState()
self.canvas.clipPath(pdfpath, 0, 0)
self.canvas.transform(*cv_trafo)
w, h = image_obj.get_size()
x = bbox[0]
y = bbox[3]
while y > bbox[1] - h:
while x < bbox[2]:
self.canvas.saveState()
self.canvas.transform(1.0, 0.0, 0.0, 1.0, x, y)
self.draw_pixmap_obj(image_obj)
self.canvas.restoreState()
x += w
y -= h
x = bbox[0]
self.canvas.restoreState()
示例2: oblique
# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import setFillColorCMYK [as 别名]
can.line(1*cm, 1*cm, 1*cm, 28*cm) # ligne verticale à gauche
can.line(1*cm, 1*cm, 20*cm, 1*cm) # ligne horizontale en bas
can.line(1*cm, 28*cm, 20*cm, 1*cm) # ligne oblique (descendante)
can.setLineWidth(3) # nouvelle épaisseur des lignes
can.setFillColorRGB(1,1,.5) # couleur de remplissage (RVB)
can.rect(2*cm, 2*cm, 18*cm, 20*cm, fill=1) # rectangle de 18 x 20 cm
# Dessin d'un bitmap (aligné par son coin inférieur gauche). La méthode
# drawImage renvoie les dimensions du bitmap (en pixels) dans un tuple :
dX, dY =can.drawImage("cocci3.gif", 1*cm, 23*cm, mask="auto")
ratio =dY/dX # rapport haut./larg. de l'image
can.drawImage("cocci3.gif", 1*cm, 14*cm,
width=3*cm, height=3*cm*ratio, mask="auto")
can.drawImage("cocci3.gif", 1*cm, 7*cm, width=12*cm, height=5*cm, mask="auto")
can.setFillColorCMYK(.7,0,.5,0) # couleur de remplissage (CMJN)
can.ellipse(3*cm, 4*cm, 19*cm, 10*cm, fill=1) # ellipse (! axes = 16 x 6 cm)
can.setLineWidth(1) # nouvelle épaisseur des lignes
can.ellipse(centreX -.5*cm, centreY -.5*cm, # petit cercle indiquant la
centreX +.5*cm, centreY +.5*cm) # position du centre de la page
# Quelques textes, avec polices, orientation et alignement divers :
can.setFillColor("navy") # couleur des textes
texteC ="Petite pluie abat grand vent." # texte à centrer
can.setFont("Times-Bold", 18)
can.drawCentredString(centreX, centreY, texteC)
texteG ="Qui ne risque rien, n'a rien." # texte à aligner à gauche
can.setFont("Helvetica", 18)
can.drawString(centreX, centreY -1*cm, texteG)
texteD ="La nuit porte conseil." # texte à aligner à droite
can.setFont("Courier", 18)
示例3: gen_bill_ride_stuff
# 需要导入模块: from reportlab.pdfgen.canvas import Canvas [as 别名]
# 或者: from reportlab.pdfgen.canvas.Canvas import setFillColorCMYK [as 别名]
def gen_bill_ride_stuff(ob):
buffer_ = BytesIO()
try:
tree = ET.fromstring(ob.xml_content.encode('utf8'))
except ET.ParseError:
tree = None
pagesize = A4
margin = inch, inch, inch, inch
canvas = Canvas(buffer_, pagesize=pagesize)
c = RenderStack(0, 0, pagesize[0], pagesize[1], margin=margin)
# p.roundRect(c.x(0), c.y(0), c.width(1), c.height(1), 3, stroke=1, fill=0)
# Print warnings
warnings = get_warning(ob)
if warnings:
canvas.saveState()
grey = 0.3
canvas.setFillColorCMYK(0, 0, 0, grey)
canvas.setStrokeColorCMYK(0, 0, 0, grey)
canvas.setFont("Helvetica", 50)
total_height = 60 * len(warnings)
canvas.translate(c.x(0.5), c.y(0.7))
canvas.rotate(45)
canvas.translate(0, total_height / 2)
for item in warnings:
canvas.drawCentredString(0, 0, item)
canvas.translate(0, -60)
canvas.restoreState()
def add_items(items, showBoundary=False):
f = Frame(c.x(0), c.y(0), c.width(1), c.height(1),
showBoundary=showBoundary,
leftPadding=0, bottomPadding=0, rightPadding=0, topPadding=0)
f.addFromList(items, canvas)
if items:
raise Exception("Does not fit - items left")
# Parameters
column_height = 0.3
column_width = 0.5
footer_height = 0.14
standard_separation = inch / 20
# styles
styles = getSampleStyleSheet()
small = styles['Normal'].clone("Smaller", fontSize=8)
normal = styles['Normal']
bigheader = styles['h2']
mediumheader = styles['h3']
smallheader = styles['h4']
with c.section(0, 1 - column_height, 1, 1):
# columna izquierda
with c.section(0, 0, column_width, 1,
margin=(0, 0, standard_separation, 0)):
if ob.company.get_logo():
with c.section(0, 0.5, 1, 1,
margin=standard_separation):
# logo
logo = ob.company.get_logo()
if logo:
add_items(
[get_image(logo.file.file.name, width=c.width(1), height=c.height(1))]
)
with c.section(0, 0, 1, column_width,
margin=standard_separation):
story = []
if ob.company.nombre_comercial:
story.append(Paragraph(ob.company.nombre_comercial,
bigheader))
story.append(Paragraph("Razon Social: {}".format(ob.company.razon_social),
normal))
else:
story.append(Paragraph("Razon Social: {}".format(ob.company.razon_social),
bigheader))
if ob.company.direccion_matriz != ob.punto_emision.establecimiento.direccion:
story.append(Paragraph(u"Dirección Matriz:",
normal))
story.append(Paragraph(ob.company.direccion_matriz,
small))
story.append(Paragraph(u"Dirección Sucursal:",
normal))
story.append(Paragraph(ob.punto_emision.establecimiento.direccion,
small))
else:
story.append(Paragraph(u"Dirección:",
normal))
story.append(Paragraph(ob.company.direccion_matriz,
small))
if ob.company.contribuyente_especial:
story.append(Paragraph("Contribuyente Especial: {}".format(ob.company.contribuyente_especial),
normal))
#.........这里部分代码省略.........