Python ReportLab设置背景颜色

时间:2016-12-29 04:57:36

标签: python reportlab

我已经快速浏览了一下网页,并且在使用Python中的ReportLab生成PDF时,无法找到设置PDF背景颜色的方法。如何设置背景颜色?

2 个答案:

答案 0 :(得分:0)

我想出了一种临时的做法。假设你有一个A4大小的页面(这是默认的),你可以简单地指定你自己的形状:

from reportlab.lib.colors import HexColor
from reportlab.pdfgen.canvas import Canvas
from reportlab.lib.units import cm
pdf = Canvas("bgColour.pdf")
pdf.setFillColor(HexColor("#99b0e7"))
path = pdf.beginPath()
path.moveTo(0*cm,0*cm)
path.lineTo(0*cm,30*cm)
path.lineTo(25*cm,30*cm)
path.lineTo(25*cm,0*cm)
#this creates a rectangle the size of the sheet
pdf.drawPath(path,True,True)
pdf.showPage()
pdf.save()

当然,如果你想要一个更健壮的方法,你可以用我为变量指定的精确测量值代替你可以动态改变的变量,例如:

x = 25
y = 30
path.moveTo(0*cm,0*cm)
path.lineTo(0*cm,y*cm)
path.lineTo(x*cm,y*cm)
path.lineTo(x*cm,0*cm)

希望这有助于任何发现自己处于类似情况的人!

答案 1 :(得分:0)

使用以下简单技巧代替使用复杂方法:

 import reportlab

from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
from reportlab.lib.pagesizes import letter
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import inch
from reportlab.lib.units import cm

def background(c):
    c.setFillColorRGB(1,0,0)
    c.rect(5,5,652,792,fill=1)


c=canvas.Canvas("Background",pagesize=letter)
c.setTitle("Background")
background(c)
c.showPage()
c.save()

只需绘制一个坐标与pdf页面相同的矩形并填充选择的颜色即可。