我已经快速浏览了一下网页,并且在使用Python中的ReportLab生成PDF时,无法找到设置PDF背景颜色的方法。如何设置背景颜色?
答案 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页面相同的矩形并填充选择的颜色即可。