首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Pyfpdf中并行获取MultiCells?

如何在Pyfpdf中并行获取MultiCells?
EN

Stack Overflow用户
提问于 2016-01-21 10:22:52
回答 2查看 9.3K关注 0票数 4

我正在制作一张由大约10个带有标题的单元格组成的表格。除非我使用multi_cell选项,否则它们不会适合整个页面。但是,我不知道如何并行获得一个multi_cell。当我做一个新的,它自动转到下一行。

代码语言:javascript
复制
from fpdf import FPDF
import webbrowser

pdf=FPDF()
pdf.add_page()
pdf.set_font('Arial','B',16)
pdf.multi_cell(40,10,'Hello World!,how are you today',1,0)

pdf.multi_cell(100,10,'This cell needs to beside the other',1,0)

pdf.output('tuto1.pdf','F')


webbrowser.open_new('tuto1.pdf')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-20 18:17:42

您必须跟踪xy坐标:

代码语言:javascript
复制
from fpdf import FPDF
import webbrowser

pdf=FPDF()
pdf.add_page()
pdf.set_font('Arial','B',16)

# Save top coordinate
top = pdf.y

# Calculate x position of next cell
offset = pdf.x + 40

pdf.multi_cell(40,10,'Hello World!,how are you today',1,0)

# Reset y coordinate
pdf.y = top

# Move to computed offset
pdf.x = offset 

pdf.multi_cell(100,10,'This cell needs to beside the other',1,0)

pdf.output('tuto1.pdf','F')

webbrowser.open_new('tuto1.pdf')
票数 7
EN

Stack Overflow用户

发布于 2020-06-17 10:15:28

注:这是解决上述问题的另一种方法。

对于我的需求,我需要一些列具有较高的列宽和一些列具有较低的宽度。所有列的固定列宽度使我的表超出pdf边距。多个单元格包装文本,并且只对某些列而不是每一列增加列的高度。因此,我的方法是使用枚举函数并根据需要动态地调整列的宽度,如下所示。

代码语言:javascript
复制
data1 = list(csv.reader(csvfile))
print(data1) ##[[row1],[row2],[row3],[row4]] 
## row1, row2, etc are the rows from csv

for row in data1:
    for x,y in enumerate(row):
        if (x == 0) or (x == 1): ## dynamically change the column width with certain conditions
            pdf.cell(2.0, 0.15, str(y), align = 'C', border=1) ## width = 2.0
        else:
            pdf.cell(0.60, 0.15, str(y), align = 'L', border=1) ## width = 0.60

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34921046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档