Python转换文本文件为PDF文档,绘制文本到PDF文档页面

文本文件因其轻便、易编辑的优势,常用于日常文字记录与数据交换;而PDF文档则以高保真、格式稳定和良好的阅读体验,成为正式报告、文献发布等场景的首选。将文本文件转为PDF,在PDF内精准绘制文本,旨在兼顾内容的规范呈现与个性化布局,适应不同场合对文档格式的特定要求。本文将将介绍如何使用Python简便快捷地完成TXT文件到PDF文档的转换,满足多样化的文档处理需求。

文章目录

本文所使用的方法需要用到Spire.PDF for Python,PyPI:pip install Spire.PDF

用Python读取文本文件并转换为PDF文档

文本文件到PDF文档的转换可以通过读取文本,并将文本内容绘制在PDF页面上来实现。由于文本文件不储存格式信息,因为,我们可以在绘制时对文本格式进行自定义,使生成的PDF文档更符合我们的需求。

在读取和绘制过程中需要用到的主要类和方法:

  • PdfDocument 类: 代表 PDF 文档模型
  • PdfTextWidget 类: 代表能跨越多个页面的文本区域。
  • PdfDocument.Pages.Add() 方法: 向 PDF 文档添加页面。
  • PdfTextWidget.Draw() 方法: 在页面指定位置绘制文本部件。

以下是将文本文件内容绘制在PDF页面上的操作步骤:

  1. 导入所需模块。
  2. 使用 File.ReadAllText() 方法从 TXT 文件中读取文本。
  3. 创建 PdfDocument 实例并向 PDF 文件添加页面。
  4. 创建 PDF 字体和笔刷对象。
  5. 设置文本格式和布局。
  6. 创建一个 PdfTextWidget 对象来保存文本内容。
  7. 使用 PdfTextWidget.Draw() 方法在PDF页面的指定位置绘制文本部件。
  8. 使用 PdfDocument.SaveToFile() 方法保存 PDF 文件。
  9. 释放资源。

代码示例:

python 复制代码
from spire.pdf.common import *
from spire.pdf import *

inputFile = "G:/文档/示例.txt"
outputFile = "output/文本文件转PDF.pdf"

# 从txt文件中获取文本
with open(inputFile, "r", encoding="utf-8") as f:
    text = f.read()

# 创建PdfDocument实例
pdf = PdfDocument()

# 添加一页
page = pdf.Pages.Add()

# 创建PDF字体和PDF画刷
font = PdfTrueTypeFont("HarmonyOS Sans SC", 12.0, 0, True)
brush = PdfBrushes.get_Brown()

# 设置文本对齐方式和行间距
strformat = PdfStringFormat()
strformat.LineSpacing = 10.0
strformat.Alignment = PdfTextAlignment.Justify

# 设置文本布局
textLayout = PdfTextLayout()
textLayout.Break = PdfLayoutBreakType.FitPage
textLayout.Layout = PdfLayoutType.Paginate

# 创建PdfTextWidget实例来保存文本内容
textWidget = PdfTextWidget(text, font, brush)

# 设置文本格式
textWidget.StringFormat = strformat

# 在页面上指定位置绘制文本
bounds = RectangleF(PointF(0.0, 20.0), page.Canvas.ClientSize)
textWidget.Draw(page, bounds, textLayout)

# 保存结果文件
pdf.SaveToFile(outputFile, FileFormat.PDF)
pdf.Close()

结果文档:

本文介绍了如何使用Python将TXT文本文件转换为PDF文档,通过读取文本内容并将文本内容绘制在新建的PDF文档页面上来实现。

更多PDF文档转换及操作技巧请前往Spire.PDF for Python教程查看。

相关推荐
威联通网络存储9 分钟前
告别掉帧与素材损毁:威联通 QuTS hero 如何重塑影视后期协同工作流
前端·网络·人工智能·python
Dxy123931021615 分钟前
Python 根据列表中某字段排序:从基础到进阶
开发语言·windows·python
competes19 分钟前
学生需求 交易累计积分,积分兑换奖品
java·大数据·开发语言·人工智能·java-ee
splage27 分钟前
Java进阶——IO 流
java·开发语言·python
青桔柠薯片27 分钟前
从C语言到裸机运行:i.MX6ULL 的 GPIO 控制与编译链接过程分析
c语言·开发语言·imx6ull
cliffordl28 分钟前
设计模式(python)
python·设计模式
OasisPioneer28 分钟前
现代 C++ 全栈教程 - Modern-CPP-Full-Stack-Tutorial
开发语言·c++·开源·github
weixin_537590451 小时前
《C程序设计语言》练习答案(练习1-13)
c语言·开发语言·c#
always_TT1 小时前
从Python_Java转学C语言需要注意什么?
java·c语言·python
2301_793804691 小时前
定时任务专家:Python Schedule库使用指南
jvm·数据库·python