我正在构建一个类来生成自动 pdf 报告。(使用 FPDF)在我的课堂上,到目前为止我已经定义了两个函数。一个呈现第一页(正面),一个呈现第二页(page_two)。这两个函数产生了我想要的。但是当我尝试在函数中将两者结合起来时,第二页会变成白色。
我不明白为什么。任何帮助将非常感激。
from fpdf import FPDF
class MY_PDF(FPDF):
def _init_(self, **kwargs):
super(MY_PDF, self)-__init__(**kwargs)
pdf.add_font('Arial', '', r"c:\WINDOWS\Fonts\ARIAL.ttf", uni=True)
pdf.add_font('Arial_Bold', '', r"c:\WINDOWS\Fonts\ARIALBD.ttf", uni=True)
pdf.add_font('Georgia', '', r"c:\WINDOWS\Fonts\GEORGIA.ttf", uni=True)
pdf.add_font('Calibri', '', r"c:\WINDOWS\Fonts\CALIBRI.ttf", uni=True)
# A4.
WIDTH = 210
HEIGHT = 297
def front(self, title, second_title):
self.set_fill_color(0,0,90)
self.rect(0.5, 50, WIDTH-1, 75, 'F')
self.set_fill_color(149,194,61)
pdf.rect(14, 12, 5, 280, 'F')
self.set_font('Arial', 'B', 38)
self.set_text_color(255, 255, 255)
self.cell(15)
self.cell(150, 135, txt=f'{title}')
self.ln(10)
self.set_font('Arial', '', 28)
self.set_text_color(255, 255, 255)
self.cell(15)
self.cell(150, 150, txt=f'{second_title}')
#self.image('logga.png', 25, 12, 50)
self.ln()
def page_two(self, name, date, nr):
self.set_font('Arial', '', 9)
self.ln(250)
self.cell(20)
self.cell(0, 0, txt="©", align='L', ln=0)
self.cell(-160)
self.cell(0, 0, txt='Company name', align='L', ln=2)
self.ln(4)
self.cell(30)
self.cell(0, 0, txt=f'Author: {name}', align='L', ln=2)
self.ln(4)
self.cell(30)
self.cell(0, 0, txt=f'Date: {date}', align='L', ln=2)
self.ln(4)
self.cell(30)
self.cell(0, 0, txt=f'Number: {nr}', align='L', ln=2)
self.ln()
def join(self, title, second_title, name, date, nr):
self.add_page()
self.front(title, second_title)
self.add_page()
self.page_two(name, date, nr)
pdf= MY_PDF()
pdf.join('TITLE!', 'some other title', 'Name Name', '2021-11-30', '21262')
pdf.output('output.pdf')