当前位置: 首页 > news >正文

自己怎么做鲜花网站外包服务公司

自己怎么做鲜花网站,外包服务公司,番禺高端网站建设公司,软件技术专业介绍及就业方向目录 字体导入 画布写入 创建画布对象 写入文本内容 写入图片内容 新增页 画线 表格 保存 模板写入 创建模板对象 段落及样式 表格及样式 画框 图片 页眉页脚 添加图形 构建pdf文件 reportlab库支持创建包含文本、图像、图形和表格的复杂PDF文档。 安装&…

目录

字体导入

画布写入

创建画布对象

写入文本内容

写入图片内容

新增页

画线

表格

保存

模板写入

创建模板对象

段落及样式

表格及样式

画框

图片

页眉页脚

添加图形

 构建pdf文件


reportlab库支持创建包含文本、图像、图形和表格的复杂PDF文档。

安装:pip install reportlab -i https://pypi.tuna.tsinghua.edu.cn/simple

字体导入

在写入中文内容时会出现中文乱码的情况,如下图,所以需要导入对应的字体库,一般Windows系统自带的字体库文件在C:\Windows\Fonts下

from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFontpdfmetrics.registerFont(TTFont('SimSun', 'simsun.ttc'))  # 宋体
pdfmetrics.registerFont(TTFont('华文彩云', 'C:\Windows\Fonts\STCAIYUN.TTF'))

画布写入

reportlab支持画布写入内容和模版框架写入

创建画布对象

from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfgen import canvas
from reportlab.lib import pagesizes, colors
from reportlab.graphics.shapes import Drawing, Rect
from reportlab.platypus import Image, Table, TableStyle
from reportlab.platypus import Paragraph, SimpleDocTemplate
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStylecav = canvas.Canvas(pdf_name)  # pagesize(元组类型)参数可设置页面大小,也可以设置reportlab.lib中的预设值(pagesize=pagesizes.letter)
cav.setAuthor('设置作者测试')
cav.setTitle('设置标题')
cav.setSubject('设置主题')# 导入字体,字体是在Windows系统字体库中存在的数据
pdfmetrics.registerFont(TTFont('SimSun', 'simsun.ttc'))  # 宋体
cav.setFont('SimSun', 10)  # 设置字体和字体大小

写入文本内容

难过的一点,画布写入内容过长(长文本)不会自动换行!!!!

# 写入文字内容
cav.drawString(100, 600, '测试文本数据' * 150)  # 添加文本内容,可设置左边距和下边距
cav.drawCentredString(20, 50, 'test测试' * 100)

写入图片内容

# 写入图片方法1
cav.drawImage(r'E:\桌面\99\测试图片\1.jpg', x=100, y=100, width=50, height=50)  # 插入图片  x,y 为左边距和下边距
# 写入图片方法2
image = Image(r'E:\桌面\99\测试图片\2.jpg', width=300, height=400)
image.drawOn(cav, x=100, y=100)  # 计算图像的尺寸并将其插入到PDF中,x,y 为左边距和下边距

新增页

cav.showPage()  # 新增页面

画线

cav.line(5, 300, 300, 300)
cav.line(5, 5, 300, 5)
cav.line(5, 300, 5, 5)
cav.line(300, 300, 300, 5)
cav.setStrokeColorRGB(100 / 255, 200 / 255, 50 / 255)
cav.line(90, 300, 90, 5)
cav.setStrokeColorRGB(50 / 255, 50 / 255, 50 / 255)

表格

image3 = Image(r'E:\桌面\99\测试图片\3.jpg', width=40, height=40)
data = [['姓名', '性别', '年龄', '图片'], ['张', '男', 32], ['刘', '女', 23], ['马', '男', 24, image3]]
table_style = [('BACKGROUND', (0, 0), (-1, 0), colors.aqua),  # 设置标题背景色('TEXTCOLOR', (0, 0), (-1, 0), (50 / 255, 200 / 255, 100 / 255)),  # 设置文本颜色('ALIGN', (0, 0), (-1, -1), 'CENTER'),  # 设置对齐方式('FONTNAME', (0, 0), (-1, -1), 'SimSun'),  # 设置字体('BOTTOMPADDING', (0, 0), (-1, 0), 20),('BACKGROUND', (0, 1), (-1, -1), colors.azure),('GRID', (0, 0), (-1, -1), 2, colors.blue)  # 设置网格及网格样式  ,2为表格宽度
]table = Table(data, 100, 50)  # 可指定表格大小
table.setStyle(table_style)
table.wrapOn(cav, 0, 0)
table.drawOn(cav, 50, 500)

保存

cav.save()

模板写入

创建模板对象

doc = SimpleDocTemplate(pdf_name)

段落及样式

ParagraphStyle: 段落支持大多数样式的设置,可见源码

# 设置段落样式
p_style = getSampleStyleSheet()['Normal']
par_style1 = ParagraphStyle(name='p_style1', parent=p_style, fontName='SimSun', spaceAfter=10, spaceBefore=10)
par_style2 = ParagraphStyle(name='p_style2', parent=p_style, fontName='华文彩云',fontSize=15, spaceAfter=30, spaceBefore=30)
# 添加段落
par1 = Paragraph('duanluo段落11' * 20, par_style1)
par2 = Paragraph('duanluo段落2' * 20, par_style2)

表格及样式

image = Image(r'E:\桌面\99\测试图片\3.jpg', width=40, height=60)
data = [['姓名', '性别', '年龄', '图片'], ['张', '男', 32], ['刘', '女', 23], ['马', '男', 24, image]]
table_style = [('BACKGROUND', (0, 0), (-1, 0), colors.aqua),  # 设置标题背景色('TEXTCOLOR', (0, 0), (-1, 0), (50 / 255, 200 / 255, 100 / 255)),  # 设置文本颜色('ALIGN', (0, 0), (-1, -1), 'CENTER'),  # 设置对齐方式(左右对齐方式)('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),  # 设置对齐方式(垂直对齐方式),垂直居中('FONTNAME', (0, 0), (-1, -1), 'SimSun'),  # 设置字体('FONTSIZE', (0, 0), (-1, -1), 20),  # 设置字号('BOTTOMPADDING', (0, 0), (-1, 0), 20),('BACKGROUND', (0, 1), (-1, -1), colors.azure),('GRID', (0, 0), (-1, -1), 2, colors.blue),  # 设置网格及网格线宽度和颜色  ,2为表格宽度('LINEBEFORE', (0, 0), (0, -1), 3, colors.dodgerblue),  # 设置左边线宽度和颜色('LINEBEFORE', (1, 0), (1, -1), 6, colors.darkolivegreen),  # 指定边框线颜色('SPAN', (0, 0), (0, -1))  # 合并单元格
]
table = Table(data, 100, 50)  # 可指定表格大小
table.setStyle(table_style)

画框

d = Drawing()
d.background = Rect(0, 0, 300, 100, strokeWidth=1, strokeColor='#238E23', fillColor='#E47833')

图片

image = Image(r'E:\桌面\99\测试图片\2.jpg', width=300, height=400)

页眉页脚

页眉页脚可通过自定义构建画布函数在构建文件时执行添加

def page_layout(canvas, doc):canvas.setFont('华文彩云', 14)canvas.drawString(100, 770, "页眉")canvas.setFont('SimSun', 10)page_num = canvas.getPageNumber()canvas.drawString(500, 15, f"第{page_num}页")

添加图形

可支持添加各类统计图,如柱状图和饼形图,具体使用时自行参考文档

from reportlab.graphics.charts import piecharts, barcharts  # 添加图形

 构建pdf文件

# onFirstPage  # 在第一页生效的内容
# onLaterPages  # 在第一页之后生效的内容

content = [par1, par2, table, image, d]
doc.build(content, onFirstPage=page_layout, onLaterPages=page_layout)
http://www.hkea.cn/news/663768/

相关文章:

  • 做蛋糕视频的网站软文广告范文
  • h5自适应网站模板下载网站换友链平台
  • 政府网站建设及管理规范各大搜索引擎入口
  • poedit pro wordpress免费网站推广优化
  • 市场营销产品推广策划方案seo合作代理
  • 东莞专业网站建设推广搜索引擎网络排名
  • 服务器做网站用什么环境好销售营销方案100例
  • 如何做DJ网站英文seo外链
  • 网站统计源码下载百度推广的步骤
  • 本地网站建设seo推广的方法
  • 东莞好的网站建设效果seo和sem分别是什么
  • 最新版wordpress背景手机网络优化软件
  • 丛台企业做网站推广免费建一级域名网站
  • 集宁网站建设免费网站推广网站破解版
  • 网站建设域名的购买有域名和服务器怎么建网站
  • 深圳有什么网站长沙百度seo
  • 台州企业网站模板建站怎么在百度上做公司网页
  • 烟台网站建设联系企汇互联专业网站维护收费标准
  • 网络客户服务平台搜索优化推广公司
  • 建设网站技术方案线上教育培训机构十大排名
  • 沈阳人流seo优化师就业前景
  • 开发区网站制作公司seo关键词有话要多少钱
  • 网站被篡改处理app拉新平台
  • 在线房屋设计网站seo推广平台服务
  • 电子政务门户网站建设代码短链接生成网址
  • 崔各庄地区网站建设百度非企渠道开户
  • 怎么用自己的电脑做网站服务器产品推广平台排行榜
  • 中国做的比较好的电商网站有哪些哈市今日头条最新
  • 微信怎么做网站推广百度网站优化培训
  • 网站开发支持多个币种电子技术培训机构