gpt4 book ai didi

python - Reportlab 将报告合并为一个 PDF

转载 作者:太空宇宙 更新时间:2023-11-04 05:06:06 26 4
gpt4 key购买 nike

我正在编写一个程序来自动生成报告。我发现以下 Script将数据转换为 pdf 并且运行良好。我稍微修改了一下,但不是太多。我能够单独生成所有报告,但似乎无法将它们全部打印成一个 pdf。

下面是一个格式化来自数据库调用的数据集以及如何调用脚本的示例。

def datafilter(tuna):

data = []

for name, number, count in tuna:
data.append({'name': name,
'number': number,
'count': count})

fields = (
('name', 'Location'),
('number', 'Number'),
('count', 'Call Count'),
)

doc1 = DataToPdf(fields, data, sort_by=('name', 'DESC'),
title='Main Number Called')
doc2 = DataToPdf(fields1, data1, sort_by=('name', 'DESC'),
title='Main Number Called')
doc = doc1, doc2
doc.export('Main_Calls.pdf')

我已经尝试以各种方式操纵 doc.export 调用,但无法使其正常工作。我怀疑我可能需要在某处创建一个循环。创建 doc 变量时,我尝试将我的数据作为元组填充到那里,但随后出错说“导出方法不能采用元组”

至少有人能给我指明正确的方向吗?我对此还比较陌生。

编辑**追溯

/usr/bin/python3.5 /root/PycharmProjects/ReportApp/FML/apendhelp.py
Traceback (most recent call last):
File "/root/PycharmProjects/ReportApp/FML/apendhelp.py", line 53, in <module>
masterin()
File "/root/PycharmProjects/ReportApp/FML/apendhelp.py", line 50, in masterin
datafilter1(main_bk, top_bk)
File "/root/PycharmProjects/ReportApp/FML/apendhelp.py", line 38, in datafilter1
poop.export('mater.pdf')
AttributeError: 'tuple' object has no attribute 'export'

最佳答案

所以我无法真正让它制作 1 个可靠的 pdf,但我确实找到了解决方法。我设置了一个主按钮来生成所有报告。然后是一个合并按钮,它将扫描目标文件夹,找到所有 pdf 并使用 PyPDF2 的 PdfFileMerger 将它们附加到一个主 pdf 中。这是代码,如果其他人需要的话。

def pdf_merger():
files_dir = '/root/PycharmProjects/ReportApp/FML/Pdf_Docs'

pdf_files = [f for f in os.listdir(files_dir) if f.endswith("pdf")]
merger = PdfFileMerger()

for filename in pdf_files:
merger.append(PdfFileReader(os.path.join(files_dir, filename), "rb"))

merger.write(os.path.join(files_dir, "merged_full.pdf"))
merger.close()

显然,您需要编辑 files_dir 变量以满足您的需要,但除此之外这应该可以正常工作。

关于python - Reportlab 将报告合并为一个 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44445212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com