在 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 天的临时许可证。