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教程查看。

相关推荐
yumgpkpm1 小时前
CMP(类ClouderaCDP7.3(404次编译) )完全支持华为鲲鹏Aarch64(ARM)POC报告
大数据·hive·hadoop·python·elasticsearch·hbase·cloudera
一只小透明啊啊啊啊1 小时前
Java的中间件
java·开发语言·中间件
前进的李工1 小时前
LeetCode hot100:560 和为k的子数组:快速统计法
python·算法·leetcode·前缀和·哈希表
学编程就要猛2 小时前
数据结构初阶:Java中的ArrayList
java·开发语言·数据结构
JH30732 小时前
10分钟理解泛型的通配符(extends, super, ?)
java·开发语言·windows
用户3721574261352 小时前
Python 高效实现 Excel 与 TXT 文本文件之间的数据转换
python
Tony Bai2 小时前
【Go模块构建与依赖管理】01 前世今生:从 GOPATH 的“混乱”到 Go Modules 的“秩序”
开发语言·后端·golang
缺点内向3 小时前
Java 使用 Spire.XLS 库合并 Excel 文件实践
java·开发语言·excel
AndrewHZ3 小时前
【图像处理基石】图像滤镜的算法原理:从基础到进阶的技术解析
图像处理·python·opencv·算法·计算机视觉·滤镜·cv
百锦再3 小时前
Go与Python在AI大模型开发中的深度对比分析
java·开发语言·人工智能·python·学习·golang·maven