[英]Adding pdf page for each record in dataframe using FPDF
我嘗試遍歷 pandas 表並使用 FPDF 庫為每一行添加 PDF 頁面。 該腳本僅添加表中的最后一條記錄並生成一頁。 我試圖弄清楚如何為每條記錄添加一個頁面
import pandas as pd
from fpdf import FPDF
filename = 'alley.csv'
df= pd.read_csv(filename)
class PdfReport:
def __init__(self, filename):
self.filename = filename
def generate(self, first_name,last_name, address_lane,city,zip_code, amount):
pdf = FPDF(orientation='P', unit='pt', format='A4')
pdf.add_page([])
pdf.set_font(family="Times", size=24, style='B')
pdf.cell(w=0, h=80, txt="Report Header", border=1, align="C", ln=1)
pdf.cell(w=0, h=40, txt="Year: 2021 ", border=1,ln=1)
pdf.cell(w=0, h=40, txt=first_name, border=1, ln=1)
pdf.cell(w=0, h=40, txt=last_name, border=1, ln=1)
pdf.cell(w=0, h=40, txt=address_lane, border=1, ln=1)
pdf.cell(w=0, h=40, txt=city, border=1, ln=1)
pdf.cell(w=0, h=40, txt=str(zip_code), border=1, ln=1)
pdf.cell(w=0, h=40, txt=str(amount), border=1, ln=1)
pdf.output(self.filename)
for ind in df.index:
pdf_report= PdfReport(filename="Report1.pdf")
pdf_report.generate(df['first_name'][ind], df['last_name'][ind], df['address_lane'][ind], df['city'][ind], df['zip_code'][ind],df['amount'][ind])
您可以通過對代碼進行一些編輯來實現這一點。
import pandas as pd
from fpdf import FPDF
filename = './alley.csv'
df = pd.read_csv(filename)
class PdfReport(FPDF):
def __init__(self, filename):
FPDF.__init__(self) #initializes parent class
self.filename = filename
def generate(self, first_name,last_name, address_lane,city,zip_code, amount):
pdf.add_page()
pdf.set_font(family="Times", size=24, style='B')
pdf.cell(w=0, h=80, txt="Report Header", border=1, align="C", ln=1)
pdf.cell(w=0, h=40, txt="Year: 2021 ", border=1,ln=1)
pdf.cell(w=0, h=40, txt=first_name, border=1, ln=1)
pdf.cell(w=0, h=40, txt=last_name, border=1, ln=1)
pdf.cell(w=0, h=40, txt=address_lane, border=1, ln=1)
pdf.cell(w=0, h=40, txt=city, border=1, ln=1)
pdf.cell(w=0, h=40, txt=str(zip_code), border=1, ln=1)
pdf.cell(w=0, h=40, txt=str(amount), border=1, ln=1)
pdf = PdfReport(filename)
pdf.alias_nb_pages()
for ind in df.index:
pdf.generate(df['first_name'][ind], df['last_name'][ind], df['address_lane'][ind], df['city'][ind], df['zip_code'][ind],df['amount'][ind])
pdf.output('PDF_TEST.pdf','F')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.