首页 > 解决方案 > 如何在 FPDF 中同时编写返回的输出和打印的输出?

问题描述

我想将打印语句以及从代码返回的语句写入 pdf 文件。换句话说,我想将精确的终端输出写入 PDF 文件。谁能帮我如何得到这个?

import fpdf
def oops():
    print('hello')
    return('V')
def data():
    return oops()
pdf = fpdf.FPDF(format = 'A4')
pdf.add_page()
pdf.set_font("Arial")
pdf.cell(10, 10, data())
pdf.output("2.pdf")

我想将确切的终端输出写入 PDF 文件。谁能帮我如何得到这个?

PDF 文件中的预期输出是

hello
V

标签: pythonpython-3.xpdf-generationfpdf

解决方案


我不熟悉 fpdf 或 pdf 文件的创建,但我希望这里有一些代码,我希望使用包装函数可以让你大部分时间到达那里。

而不是调用print()包装函数print_and_append_to_return_list(),它不仅会打印,还会将该值附加到return_list. 您将返回但未打印的任何项目,如示例中的“V”,将直接附加到return_list这行代码return_list.append('V')。而不是返回 'V' 你return(return_list)会包含一切。

听起来一旦您return_list返回,您就已经知道如何从这样的列表中提取数据并将其插入到您的 pdf 文件中。

这是代码:

return_list = []

def print_and_append_to_return_list(print_string):
    print(print_string)
    return_list.append(print_string)

def oops():
    print_and_append_to_return_list('hello')
    return_list.append('V')
    return(return_list)

data_list = oops()
for item in data_list:
    print(item)

推荐阅读