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数学模块(math/decimal模块)

    python数学模块(math/decimal模块)

    这篇文章主要介绍了python数学模块(math/decimal模块),文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 基于Python编写一个基于插件架构的图片浏览器

    基于Python编写一个基于插件架构的图片浏览器

    这篇文章主要为大家详细介绍了如何使用Python开发一个基于插件架构的图片浏览器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-01-01
  • 浅谈python新式类和旧式类区别

    浅谈python新式类和旧式类区别

    python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类。这篇文章主要介绍了浅谈python新式类和旧式类区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Python的变量命名规范和数据类型转换详解

    Python的变量命名规范和数据类型转换详解

    文章主要介绍了Python的变量命名规则和数据类型,包括整数、浮点数、字符串、布尔值和空值类型,此外,文章还阐述了不同类型之间的转换方法,如将浮点数转换为整数、将字符串转换为数字类型或布尔值等,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • Python模块Uvicorn实战

    Python模块Uvicorn实战

    这篇文章主要介绍了Python模块Uvicorn实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 三分钟熟练使用Python的os.path.join()

    三分钟熟练使用Python的os.path.join()

    在Python中os.path.join()函数用于将多个路径组合成一个路径,下面这篇文章主要给大家介绍了关于熟练使用Python的os.path.join()的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • 解决jupyter notebook启动后没有token的坑

    解决jupyter notebook启动后没有token的坑

    这篇文章主要介绍了解决jupyter notebook启动后没有token的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • python使用标准库根据进程名如何获取进程的pid详解

    python使用标准库根据进程名如何获取进程的pid详解

    Python有一套很有用的标准库(standard library)。标准库会随着Python解释器,一起安装在你的电脑中的,所以下面这篇文章主要给大家介绍了关于python使用标准库根据进程名如何获取进程pid的相关资料,需要的朋友可以参考下。
    2017-10-10
  • Python实现获取网页信息并解析

    Python实现获取网页信息并解析

    这篇文章主要为大家详细介绍了如何使用Python实现获取网页信息并解析功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-05-05
  • Python的Django框架中的数据过滤功能

    Python的Django框架中的数据过滤功能

    这篇文章主要介绍了Python的Django框架中的数据过滤功能,为更新数据库数据时的数据查找提供了方便,需要的朋友可以参考下
    2015-07-07

最新评论