Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ReportLab设置背景色_Python_Reportlab - Fatal编程技术网

Python ReportLab设置背景色

Python ReportLab设置背景色,python,reportlab,Python,Reportlab,我快速浏览了一下web,在使用Python中的ReportLab生成PDF时,还没有找到设置PDF背景颜色的方法。如何设置背景色?我想出了一个临时的方法。假设您有A4大小的页面(这是默认页面),您可以简单地指定自己的形状,如下所示: from reportlab.lib.colors import HexColor from reportlab.pdfgen.canvas import Canvas from reportlab.lib.units import cm pdf = Canvas(

我快速浏览了一下web,在使用Python中的ReportLab生成PDF时,还没有找到设置PDF背景颜色的方法。如何设置背景色?

我想出了一个临时的方法。假设您有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)

希望这能帮助那些和我处境相似的人

不要使用复杂的方法,而是使用以下简单技巧:

 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页面坐标相同的矩形,并用所选颜色填充即可。

神奇数字5,5652792从何而来?