在 pdf 文档中绘制文本,通过改变文本的旋转度数或倾斜角度能够打破传统的直线排列方式,为页面增加动态感和趣味性,并且颜色渐变文本能够产生流动感和深度感,吸引读者的注意力,提高文档的吸引力。另外,绘制自适应矩形框大小的文本可以保持版面的整齐划一,避免文本排版混乱或错位。本文将探讨如何利用 spire.pdf for python 在 python 程序中绘制各种样式的文本到 pdf 文档。
安装 spire.pdf for python
本教程需要用到 spire.pdf for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 windows 中。
pip install spire.pdf
如果您不确定如何安装,请参考此教程:如何在 windows 中安装 spire.pdf for python
python 绘制旋转文本
spire.pdf for python 提供了 pdfpage.canvas. rotatetransform() 方法来设置文本的旋转度数。旋转文本的详细步骤如下:
- 创建一个 pdfdocument 类对象。
- 使用 pdfdocument.pages.add() 方法添加一个空白页面。
- 使用 pdfpage.canvas.save() 方法保存画布状态。
- 定义 pdftruetypefont,pdfbrushes,pdfstringformat 属性参数用于绘制文本要使用的字体、画刷和文本对齐方式。
- 使用 pdfpage.canvas. rotatetransform() 方法设置文本的旋转度数。
- 使用 pdfpagebase.canvas.drawstring() 方法在页面上绘制文本。
- 使用 pdfpage.canvas.restore() 再次保存画布状态。
- 使用 pdfdocument.savetofile() 方法保存文档。
- python
from spire.pdf import *
from spire.pdf.common import *
outputfile = "旋转文本.pdf"
#创建pdfdocument对象
doc = pdfdocument()
#添加一页
page = doc.pages.add()
#保存画布状态
state = page.canvas.save()
#创建字体,包括字体名、字号等
font = pdftruetypefont("宋体", 14.0, pdffontstyle.regular, true)
#创建画刷
brush = pdfsolidbrush(pdfrgbcolor(color.get_blue()))
#设置文本对齐方式,水平居左垂直居中
centeralignment = pdfstringformat(pdftextalignment.left, pdfverticalalignment.middle)
#指定文本在画布中的坐标位置
x = page.canvas.clientsize.width / float(2)
y = 240.0
page.canvas.translatetransform(x, y)
for i in range(0, 12):
#设置顺时针旋转角度
page.canvas.rotatetransform(30.0)
page.canvas.drawstring("欢迎使用spire.pdf for python!", font, brush, 20.0, 0.0, centeralignment)
#再次保存画布状态
page.canvas.restore(state)
#保存文档
doc.savetofile(outputfile)
doc.close()
python 绘制倾斜文本
spire.pdf for python 提供了 pdfpage.canvas. skewtransform() 方法,用于设置文本的偏移角度(包括文本整体偏移角度和字符偏移角度)。具体步骤如下:
- 创建一个 pdfdocument 类对象。
- 使用 pdfdocument.pages.add() 方法添加一个空白页面。
- 使用 pdfpage.canvas.save() 方法保存画布状态。
- 定义 pdftruetypefont,pdfbrushes 属性参数用于绘制文本要使用的字体和画刷。
- 使用 pdfpage.canvas.translatetransform() 方法设置文本在画布中的坐标位置。
- 使用 pdfpage.canvas.skewtransform() 方法设置文本的偏转角度。
- 使用 pdfpagebase.canvas.drawstring() 方法在页面上绘制文本。
- 使用 pdfpage.canvas.restore() 再次保存画布状态。
- 使用 pdfdocument.savetofile() 方法保存文档。
- python
from spire.pdf import *
from spire.pdf.common import *
outputfile = "倾斜文本.pdf"
#创建pdfdocument对象
doc = pdfdocument()
#添加一页
page = doc.pages.add()
#保存画布状态
state = page.canvas.save()
#创建字体,包括字体名、字号等
font = pdftruetypefont("宋体", 14.0, pdffontstyle.regular, true)
#创建两个画刷,并指定颜色
brush1 = pdfsolidbrush(pdfrgbcolor(color.get_deepskyblue()))
brush2 = pdfsolidbrush(pdfrgbcolor(color.get_cadetblue()))
#设置文本在画布中的坐标位置
page.canvas.translatetransform(20.0, 100.0)
#设置文本大小(scalex值越大,文本越向右横向拉伸;scaley值越大,文本越向上纵向拉伸)
page.canvas.scaletransform(1.0, 0.6)
#设置文本偏转角度(anglex值为文本整体偏移角度,angley值为字符偏移角度)
page.canvas.skewtransform(-20, 0.0)
#绘制文本
page.canvas.drawstring("欢迎使用spire.pdf for python!", font, brush1, 0.0, 0.0)
page.canvas.skewtransform(20.0, 0.0)
page.canvas.drawstring("欢迎使用spire.pdf for python!", font, brush2, 0.0, 0.0)
page.canvas.scaletransform(1.0, -1.0)
page.canvas.drawstring("欢迎使用spire.pdf for python!", font, brush2, 0.0, -2 * 18.0)
#再次保存画布状态
page.canvas.restore(state)
#保存文档
doc.savetofile(outputfile)
doc.close()
python 绘制颜色渐变的文本
spire.pdf for python 提供了 pdflineargradientbrush 属性用于设置颜色渐变的画刷,这样通过此画刷绘制的文本颜色即为渐变色。具体步骤如下:
- 创建一个 pdfdocument 类对象
- 使用 pdfdocument.pages.add() 方法添加一个空白页面。
- 定义 pdflineargradientbrush 属性参数用于绘制文本要使用的渐变色画刷。
- 使用 pdfpagebase.canvas.drawstring() 方法在页面上绘制文本。
- 使用 pdfdocument.savetofile() 方法保存文档。
- python
from spire.pdf import *
from spire.pdf.common import *
outputfile = "渐变色文本.pdf"
#创建pdfdocument对象
doc = pdfdocument()
#添加一页
page = doc.pages.add()
#创建矩形框
rect = rectanglef(pointf(0.0, 0.0), sizef(300.0, 100.0))
#创建颜色渐变的画刷
brush = pdflineargradientbrush(rect, pdfrgbcolor(color.get_red()), pdfrgbcolor(color.get_blue()), pdflineargradientmode.horizontal)
#创建字体,包括字体名、字号等
font = pdftruetypefont("宋体", 20.0, pdffontstyle.underline,true)
#绘制文本
page.canvas.drawstring("欢迎使用spire.pdf for python!", font, brush, pointf(0.0, 100.0))
#保存文档
doc.savetofile(outputfile)
doc.close()
python 绘制自适应矩形框大小的文本
通过将文本精确地填充满矩形框,可以确保文本在 pdf 中的布局整齐、一致,提高整体的可读性和美观性。详细步骤如下:
- 创建一个 pdfdocument 类对象。
- 使用 pdfdocument.pages.add() 方法添加一个空白页面。
- 使用 pdfpage.canvas.save() 方法保存画布状态。
- 定义 pdftruetypefont,pdfbrushes 属性参数用于绘制文本要使用的字体和画刷。
- 使用 pdfpage.canvas.drawrectangle() 方法绘制矩形框。
- 使用 pdftruetypefont.measurestring() 方法获取文本的大小,并计算计算矩形框高宽与文本高宽的缩放比例。
- 使用 pdfpage.canvas.scaletransform() 方法设置文本横向拉伸和纵向拉伸以填充满矩形框
- 使用 pdfpagebase.canvas.drawstring() 方法在页面上绘制文本。
- 使用 pdfpage.canvas.restore() 再次保存画布状态。
- 使用 pdfdocument.savetofile() 方法保存文档。
- python
from spire.pdf import *
from spire.pdf.common import *
outputfile = "填充文本框.pdf"
#创建pdfdocument对象
doc = pdfdocument()
#添加一页
page = doc.pages.add()
#保存画布状态
state = page.canvas.save()
#创建画刷
color = pdfrgbcolor(color.get_black())
brush = pdfsolidbrush(color)
#绘制填充文本的矩形框
page.canvas.drawrectangle(pdfpen(brush, 0.5),rectanglef(pointf(40.0,100.0),sizef(200.0,40.0)))
#创建字体,包括字体名、字号等
font = pdftruetypefont("宋体", 10.0, pdffontstyle.regular,true)
#填充文本
text = "欢迎使用spire.pdf for python!"
#获取文本的大小
textsize = font.measurestring(text)
#计算矩形框大小与文本大小的比例
x = 200.0 / textsize.width
y = 40.0 / textsize.height
#设置文本横向拉伸和纵向拉伸以填充满矩形框
page.canvas.scaletransform(x,y)
#绘制文本
page.canvas.drawstring(text, font, brush, pointf(30.0, 28.0))
#再次保存画布状态
page.canvas.restore(state)
#保存文档
doc.savetofile(outputfile)
doc.close()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。