镇网站建设管理工作总结,网站空间配置,简约大气网站模板,wordpress留言板代码目录
创建pdf文件对象
新增页
添加自定义字体
设置字体
设置文字颜色和背景色
插入内容
换行
插入图片
保存pdf
完整代码 安装#xff1a;pip install fpdf
创建pdf文件对象
from fpdf import FPDF, Alignpdf FPDF() # 创建pdf文件对象
获取边距
print(pdf.l_…目录
创建pdf文件对象
新增页
添加自定义字体
设置字体
设置文字颜色和背景色
插入内容
换行
插入图片
保存pdf
完整代码 安装pip install fpdf
创建pdf文件对象
from fpdf import FPDF, Alignpdf FPDF() # 创建pdf文件对象
获取边距
print(pdf.l_margin, pdf.r_margin, pdf.t_margin, pdf.b_margin) # 获取上下左右边距
print(pdf.w, pdf.h, pdf.eph, pdf.epw) # 页面宽高、有效宽高(宽-左右边距高-上下边距)
新增页
pdf.add_page()
添加自定义字体
pdf.add_font(myfont,fnamerC:\Users\DELL\AppData\Local\JianyingPro\User Data\Cache\effect\9182767\56dfcfca94158a7a92263aa5b41f8a84-preview\Aa以梦为马.ttf)
设置字体
style参数str空字符串默认情况下或组合由B粗体、I斜体和U下划线中的一个或几个字母组成。粗体和斜体样式不适用于Symbol和ZapfDingbats字体。
pdf.set_font(Times, styleBIU, size20)
设置文字颜色和背景色 pdf.set_text_color(0, 0, 0)bg pdf.set_fill_color(255, 255, 255)
插入内容
主要参数说明
w,h设置单元格宽高。
fill默认为False,为TRUE是对设置的背景填充才生效。
align文字对齐样式继承Align对象属性可写成alignAlign.C或alignC。
border默认为0不显示边框为1或整数时显示边框。
pdf.cell(wpdf.epw, hpdf.t_margin, text劝君更尽一杯酒西出阳关无故人。, alignAlign.C, fillTrue)
换行
ln表示换行参数为高度默认情况下该值等于最后打印文本行的高度除非由‘ .text() ’写入。如果还没有写文本文档则使用当前字体高度。
pdf.ln(10)
插入图片
参数图片名、插入位置图片大小
pdf.image(image_path, x10, y50, w30, h30)
保存pdf
pdf.output(rfE:\桌面\{int(time.time())}.pdf)
完整代码
image_path rE:\桌面\99\测试图片\12.jpg
pdf FPDF() # 创建pdf文件对象pdf.add_page()
pdf.add_font(myfont,fnamerC:\Users\DELL\AppData\Local\JianyingPro\User Data\Cache\effect\9182767\56dfcfca94158a7a92263aa5b41f8a84-preview\Aa以梦为马.ttf)# 写入一个标题
pdf.set_font(myfont, size20)
pdf.cell(wpdf.epw, hpdf.t_margin, text人员数据表, alignAlign.C, fillFalse)
pdf.ln(pdf.font_size*2)# 插入表数据
data [[name, age, nation, occupation], [张三, 32, 汉, 无业], [宋东, 31, 汉, 农民]]
for h, rows in enumerate(data):if h 0:pdf.set_font(Times, styleBIU, size20) # 自定义字体pdf.set_text_color(100, 255, 10)bg pdf.set_fill_color(255, 255, 50)th pdf.font_size * 2 # 行高可根据字体大小设置else:pdf.set_font(myfont, size10)pdf.set_text_color(0, 0, 0)bg pdf.set_fill_color(255, 255, 255)th pdf.font_size * 2 # 行高可根据字体大小设置for r, cell_value in enumerate(rows):pdf.cell(pdf.epw / len(rows), th, textstr(cell_value), fillTrue, alignC, border1)pdf.ln(th)# 插入图片及导出文档
pdf.image(image_path, x10, y100, w70, h70)
pdf.output(rfE:\桌面\99\12{int(time.time())}.pdf)
不会自动换行可使用一下方法通过判断单元格宽度和字符长度将value换行后再插入(通过计算文字内容长度和字体大小关系判断长度是否大于单元格宽度获取需要换行的行数【行数使用math方法的向上取整获取】然后使用下面方法分割换行重组字符串)
def split_string_with_step(s, step):return [s[i:i step] for i in range(0, len(s), step)]