- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在文档中定义了这个样式:
styles.add(ParagraphStyle(name='Table Header', font ='Helvetica-Bold',fontSize=16, alignment=TA_CENTER))
我用它来定义文本段落以进入每个表格的顶行(以便它们正确换行):
L2sub = [(Paragraph(L[0][0], styles['Table Header']))]
后来我添加表格的时候,也有定义样式的地方:
report.append(Table(data,style=[
('GRID',(0,0),(len(topiclist)-1,-1),0.5,colors.grey),
('FONT', (0,0),(len(topiclist)-1,0),'Helvetica-Bold',16),
('FONT', (0,1),(len(topiclist)-1,1),'Helvetica-Bold',12),
('ALIGN',(0,0),(-1,-1),'CENTER'),
('VALIGN',(0,0),(-1,-1),'MIDDLE'),
('SPAN',(0,0),(len(topiclist)-1,0)),
]))
我的问题是:定义第一行单元格垂直高度的设置在哪里?我遇到了一些问题,文本对于单元格而言太大和/或在单元格中设置得太低,但我无法确定是什么原因造成的,也无法确定如何修复它。我已经改变了两种尺寸,但我无法让单元格成为除了所有相同高度之外的任何东西。当我只是将文本而不是段落放入单元格时,表格 def'n 工作得很好,但段落导致了问题。
最佳答案
我不相信 TableStyle
中有允许您更改行高的设置。当您创建新的 Table
对象时会给出该测量值:
Table(data, colwidths, rowheights)
colwidths
和 rowheights
是测量值的列表,如下所示:
from reportlab.lib.units import inch
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import Paragraph
from reportlab.platypus import Table
from reportlab.lib import colors
# Creates a table with 2 columns, variable width
colwidths = [2.5*inch, .8*inch]
# Two rows with variable height
rowheights = [.4*inch, .2*inch]
table_style = [
('GRID', (0, 1), (-1, -1), 1, colors.black),
('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
('ALIGN', (1, 1), (1, -1), 'RIGHT')
]
style = getSampleStyleSheet()
title_paragraph = Paragraph(
"<font size=13><b>My Title Here</b></font>",
style["Normal"]
)
# Just filling in the first row
data = [[title_paragraph, 'Random text string']]
# Now we can create the table with our data, and column/row measurements
table = Table(data, colwidths, rowheights)
# Another way of setting table style, using the setStyle method.
table.setStyle(tbl_style)
report.append(table)
colwidths
和 rowheights
可以更改为适合内容所需的任何度量。 colwidths
从左到右读取,rowheights
从上到下读取。
如果您知道所有表格行的高度都相同,您可以使用这个漂亮的快捷方式:
rowheights = [.2*inch] * len(data)
这会为您的 data
变量中的每一行提供一个类似 [.2*inch, .2*inch, ...]
的列表。
关于python - 什么决定了 Reportlab 表格中的垂直空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944765/
ReportLab 用户指南中说: The colortest.py script in reportlab/demos/colors demonstrates thedifferent ways i
ReportLab 用户指南中说: The colortest.py script in reportlab/demos/colors demonstrates thedifferent ways i
我正在使用 ReportLab VerticalBarChart 生成条形图。我需要其中一个条(每次都是不同的)与其他条的颜色不同,以指定它是“选择”值。 否则,我需要以与其他栏不同的方式标记它。 知
我正在使用 ReportLab 生成 PDF 报告。 我使用了 SimpleDocTemplate 并设置了 pageSize = A5。但是在构建PDF后,当我打开创建的文件时,页面大小为A4。 d
是否可以在段落样式中设置字母/字符间距?我尝试使用spaceShrinkage但这没有任何区别 最佳答案 根据official documentation ,p。 30: The setCharSpa
我的销售订单模板中有以下 rml: [[ repeatIn(o.order_line, 'l') ]] [[ l.name ]] [[
你好, 我正在使用报告实验室生成 pdf。我想绘制一个文本,它是一个 Paragraph,代表一个标题,因此,如果标题比段落的可用长度长,它将在下一行拆分,如果标题太长适合段落的可用宽度和高度,然后调
如何设置表格的左侧位置? response = HttpResponse(mimetype='application/pdf') response['Content-Disposition'] = '
在报告实验室中 user guide (第 79 页),这是将图像插入表格的方式。 I = Image('../images/replogo.gif') I.drawHeight = 1.25*inc
reportlab文档中有LINEBELOW和LINEABOVE。但我找不到定义右边界或左边界(LINELEFT、LINERIGHT)的方法。 关于如何渲染只有右边框的单元格有什么建议吗? 编辑: 我
有什么方法可以在 reportlab 中获取 Flowable Paragraph 的行数?我有一个很长的字符串,用不同的大小和字体打印。我需要知道要使用 TA_JUSTIFY 对齐打印的整个段落使用
在文档和源代码中,我看到很多对圆角矩形的引用,但是,我似乎无法绘制一个。 我正在绘制一个普通的矩形: canvas.rect(15, 625, 250, 125, fill=0) 我向圆角传递哪些参数
我正在处理发票,我只想在最后一页(也可以是第一页)添加页脚。 由于表的数据是动态的,我无法计算页数。 现在我正在使用 2 个页面模板,第一页(带有 2 个框架和页脚 1)和下一页(带有 1 个框架和页
我知道 LINEABOVE 和 LINEBELOW 样式,我想知道是否有一种方法可以在表格中绘制一条指定宽度的线。 我正在尝试添加一条不“接触”表格边框的线,如果我可以在单元格之间添加一些填充,LIN
我快速浏览了一下网络,但未能找到一种在 Python 中使用 ReportLab 生成 PDF 时设置背景颜色的方法。如何设置背景颜色? 最佳答案 不要使用复杂的方法,而是使用这个简单的技巧: im
我想知道如何将我的脚本保存到桌面。这是我的代码: from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import let
您好,我是报告实验室的新手。我想生成一份包含表格的 pdf 报告。表格中的某些列文本大于列宽,现在我想根据列宽换行文本。 以下是我编写的代码 # Imports from reportlab.pdfg
我正在使用XPreformatted打印一些预格式化的文本,我有一个 换行符的问题。 换行符正确翻译,但另外我得到一个 每行末尾都有“问号”。 这是我的输出: first line? second l
我知道 LINEABOVE 和 LINEBELOW 样式,我想知道是否有一种方法可以在表格中绘制一条指定宽度的线。 我正在尝试添加一条不“接触”表格边框的线,如果我可以在单元格之间添加一些填充,LIN
我快速浏览了一下网络,但未能找到一种在 Python 中使用 ReportLab 生成 PDF 时设置背景颜色的方法。如何设置背景颜色? 最佳答案 不要使用复杂的方法,而是使用这个简单的技巧: im
我是一名优秀的程序员,十分优秀!