如何在FPDF中同时写入返回的输出和打印的输出?

问题描述 投票:2回答:1

我想将打印语句以及从代码返回的语句写入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
python python-3.x pdf-generation fpdf
1个回答
0
投票

我不熟悉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)
© www.soinside.com 2019 - 2024. All rights reserved.