Python pdf选项卡

2024-04-25 15:02:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用python编写一个包含表的基本pdf文档时遇到了困难,我想知道如何使我的表显示在pdf上,因为我不确定它是如何不显示的,下面是代码供参考。在

import time
from reportlab.lib.enums import TA_JUSTIFY
from reportlab.lib import colors
from reportlab.lib.pagesizes import A4, inch, landscape, letter
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch

doc = SimpleDocTemplate("code challenge1.pdf",pagesize=letter,
                        rightMargin=72,leftMargin=72,
                        topMargin=72,bottomMargin=18)
Story=[]
 
formatted_time = time.ctime()
full_name = "Mike Driscoll"
address_parts = ["411 State St.", "Marshalltown, IA 50158"]
 
styles=getSampleStyleSheet()
styles.add(ParagraphStyle(name='Justify', alignment=TA_JUSTIFY))
ptext = '<font size=12>%s</font>' % formatted_time
 
Story.append(Paragraph(ptext, styles["Normal"]))
Story.append(Spacer(1, 12))


data = [
["Activity", "Times/wk”, "Time of day", "Description"],
["B", "01", "ABCD", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"],
["E", "02", "CDEF", "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"],
["E", "03", "SDFSDF", "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"],
["e", "04", "SDFSDF", "DDDDDDDDDDDDDDDDDDDDDDDD DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"],
["x", "05", "GHJGHJGHJ", "EEEEEEEEEEEEEE EEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE"],
]
 
style = TableStyle([('ALIGN',(1,1),(-2,-2),'RIGHT'),
                       ('TEXTCOLOR',(1,1),(-2,-2),colors.red),
                       ('VALIGN',(0,0),(0,-1),'TOP'),
                       ('TEXTCOLOR',(0,0),(0,-1),colors.blue),
                       ('ALIGN',(0,-1),(-1,-1),'CENTER'),
                       ('VALIGN',(0,-1),(-1,-1),'MIDDLE'),
                       ('TEXTCOLOR',(0,-1),(-1,-1),colors.green),
                       ('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
                       ('BOX', (0,0), (-1,-1), 0.25, colors.black),
                       ])
        
s = getSampleStyleSheet()
s = s["BodyText"]
s.wordWrap = 'CJK'
data2 = [[Paragraph(cell, s) for cell in row] for row in data]
t=Table(data2)
t.setStyle(style)
 
Story.append(t)
ptext = '<font size=12>I wanted to code ever since I was young, and have done mods for videogames I liked and played. It’s been my childhood dream to create worlds and stories, and coding is the best way to script events the way you want them to go. While this may not be exactly what I’m looking for, I think it’ll give me an accurate experience of what that life is like.</font>'
Story.append(Paragraph(ptext, styles["Justify"]))


doc.build(Story)

Tags: andtofromimportfortimelibfont
2条回答

我不知道你错在哪里,但我最近也做了类似的事情。我发现了这个网站PdfGen,它有一个很好的例子,你正在尝试做什么,如果你遵循它,你将能够创建你正在寻找的模板。在

这只是一个打字错误-你在第26行使用了“而不是”这个词(右双引号代替了普通引号)。在

以下是修复此问题后文档的外观:

PDF Preview

相关问题 更多 >