from reportlab.platypus import SimpleDocTemplate, Image, Paragraph
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
pdfmetrics.registerFont(TTFont('SimKai', 'D:\\Anaconda3\\envs\\torch1.5\\Lib\\site-packages\\reportlab\\fonts\\SimKai.ttf'))
doc = SimpleDocTemplate("Hello1.pdf")
styles = getSampleStyleSheet()
style0 = styles["Title"]
style0.fontName = "SimKai"
style = styles['Normal']
style.fontName = "SimKai"
style1 = styles["Heading3"]
style1.fontName = "SimKai"
style1.alignment = 1
story =[]
story.append(Paragraph("XX大學校醫院眼圖診斷報告", style0))
story.append(Paragraph("姓名:XXX", style))
story.append(Paragraph("年齡:23", style))
story.append(Paragraph("性別:男", style))
story.append(Paragraph("XX診斷圖示:", style))
t = Image("E:\\1.png", width=300, height=200) ##圖片路徑地址
story.append(t)
story.append(Paragraph("結果:一切正常", style))
story.append(Paragraph("日期:2022年6月15日", style))
story.append(Paragraph("XX大學校醫院", style1))
doc.build(story)
關於ParagraphStyle的參數說明如下:
我們選取幾個重要的參數進行說明:
關於字體的形式參數說明:
這裡就是獲得系統提供的Normal格式,其實Normal格式與ParagraphStyle是一模一樣的,除了Normal格式,還可以獲得其他的格式。
Reference:
用Python快速自動生成圖文並茂的PDF文件 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/318390273