Python实现将TXT转换为PDF并自动分页

 更新时间:2026年02月27日 15:10:36   作者:LSTM97  
在日常工作中,我们经常需要将纯文本文件(TXT)转换为更通用、更便于分享的PDF格式,下面我们就来看看如何使用 Spire.PDF for Python 库,轻松实现TXT到PDF的转换,并支持自动分页功能吧

在日常工作中,我们经常需要将纯文本文件(TXT)转换为更通用、更便于分享的PDF格式。虽然手动复制粘贴可以完成这个任务,但遇到大文件时,手动分页和排版就会变得非常繁琐。今天,我将介绍如何使用 Spire.PDF for Python 库,轻松实现TXT到PDF的转换,并支持自动分页功能。

Spire.PDF for Python 简介

Spire.PDF for Python 是一款专业的Python库,用于在Python应用程序中创建、操作和转换PDF文档。它提供了丰富的API,让开发者可以轻松地添加文本、图像、表格等元素到PDF中,并支持各种高级功能如加密、合并、拆分PDF等。最重要的是,它支持自动分页功能,可以处理大量文本内容的排版。

安装非常简单,只需使用pip命令:

pip install Spire.PDF

实现代码

下面是完整的Python代码,实现了从TXT文件读取内容并转换为PDF的功能:

from spire.pdf.common import *
from spire.pdf import *

def ReadFromTxt(fname: str) -> str:
    """读取TXT文件内容"""
    with open(fname, 'r') as f:
        text = f.read()
    return text

inputFile = "input.txt"
outputFile = "TextToPdf.pdf"

# 从TXT文件获取文本
text = ReadFromTxt(inputFile)

# 创建PdfDocument实例
pdf = PdfDocument()

# 添加一个页面 (默认有40磅页边距)
page = pdf.Pages.Add()

# 创建PDF字体和画笔
font = PdfFont(PdfFontFamily.TimesRoman, 11.0)
brush = PdfBrushes.get_Black()

# 设置文本对齐方式和行间距
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, 0.0), page.Canvas.ClientSize)
textWidget.Draw(page, bounds, textLayout)

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

代码解析

文本读取

ReadFromTxt 函数负责读取TXT文件的所有内容,以字符串形式返回。

PDF文档创建

创建一个 PdfDocument 实例,并添加一个初始页面。

字体和格式设置

  • 使用 TimesRoman 字体,字号11
  • 设置行间距为10.0
  • 文本对齐方式为两端对齐

自动分页的关键设置

这是实现自动分页的核心部分:

  • PdfLayoutBreakType.FitPage:当内容超出页面范围时自动换页
  • PdfLayoutType.Paginate:启用分页布局模式

使用PdfTextWidget

PdfTextWidget 是一个强大的文本容器,它可以自动处理长文本的分页问题。我们只需要指定初始的绘制区域,它会自动判断是否需要创建新页面来容纳剩余内容。

绘制和保存

在指定位置绘制文本后,将PDF保存到文件。

优势特点

  • 完全自动化 :无需手动计算每页可容纳的文字数量
  • 保持格式 :支持设置字体、字号、行间距等格式
  • 灵活性强 :可以自定义页面边距和起始位置
  • 处理大文件 :即使是非常长的文本文件也能轻松处理

总结

使用 Spire.PDF for Python 库,我们只需要几十行代码就能实现一个功能完善的TXT转PDF工具。它不仅支持基本的格式设置,更重要的是内置了自动分页功能,大大简化了开发工作。无论是处理简单的笔记文件,还是转换大量的文档资料,这个工具都能胜任。

如果你经常需要处理文本到PDF的转换,不妨试试这个方案,相信它能为你节省不少时间!

到此这篇关于Python实现将TXT转换为PDF并自动分页的文章就介绍到这了,更多相关Python TXT转PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python爬虫---requests库的用法详解

    python爬虫---requests库的用法详解

    requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,这里就为大家分享一下
    2020-09-09
  • 深度总结Python中字符串的使用

    深度总结Python中字符串的使用

    本文主要来学习字符串数据类型相关知识,包括讨论如何声明字符串数据类型,字符串数据类型与 ASCII 表的关系等内容,超级干货,不容错过
    2023-08-08
  • numpy中axis轴问题记录小结

    numpy中axis轴问题记录小结

    NumPy中的axis参数用于指定操作的维度,本文就来介绍一下numpy中axis轴问题记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-01-01
  • python在Windows下安装setuptools(easy_install工具)步骤详解

    python在Windows下安装setuptools(easy_install工具)步骤详解

    这篇文章主要介绍了python在Windows下安装setuptools(easy_install工具)步骤,简单介绍了setuptools并分析了其安装步骤与所涉及的相关软件,需要的朋友可以参考下
    2016-07-07
  • Python内置函数object、oct()、ord()的实用指南

    Python内置函数object、oct()、ord()的实用指南

    本文详细介绍了Python中的object类、oct()函数和ord()函数,分别作为所有类的基类、八进制转换工具和字符编码解码器,适用于基类设计、进制转换和字符编码处理等场景,需要的朋友可以参考下
    2026-01-01
  • python内置HTTP Server如何实现及原理解析

    python内置HTTP Server如何实现及原理解析

    这篇文章主要为大家介绍了python内置HTTP Server如何实现及原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 使用darknet框架的imagenet数据分类预训练操作

    使用darknet框架的imagenet数据分类预训练操作

    这篇文章主要介绍了使用darknet框架的imagenet数据分类预训练操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • pandas如何将datetime64[ns]转为字符串日期

    pandas如何将datetime64[ns]转为字符串日期

    这篇文章主要介绍了pandas如何将datetime64[ns]转为字符串日期,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Python中将两个或多个list合成一个list的方法小结

    Python中将两个或多个list合成一个list的方法小结

    python中,list这种数据结构很常用到,如果两个或者多个list结构相同,内容类型相同,我们通常会将两个或者多个list合并成一个,这样我们再循环遍历的时候就可以一次性处理掉了
    2019-05-05
  • Python粒子烟花动态效果实现

    Python粒子烟花动态效果实现

    这篇文章主要介绍了Python实现粒子烟花动态效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-01-01

最新评论