Python實現(xiàn)將TXT轉(zhuǎn)換為PDF并自動分頁
在日常工作中,我們經(jīng)常需要將純文本文件(TXT)轉(zhuǎn)換為更通用、更便于分享的PDF格式。雖然手動復(fù)制粘貼可以完成這個任務(wù),但遇到大文件時,手動分頁和排版就會變得非常繁瑣。今天,我將介紹如何使用 Spire.PDF for Python 庫,輕松實現(xiàn)TXT到PDF的轉(zhuǎn)換,并支持自動分頁功能。
Spire.PDF for Python 簡介
Spire.PDF for Python 是一款專業(yè)的Python庫,用于在Python應(yīng)用程序中創(chuàng)建、操作和轉(zhuǎn)換PDF文檔。它提供了豐富的API,讓開發(fā)者可以輕松地添加文本、圖像、表格等元素到PDF中,并支持各種高級功能如加密、合并、拆分PDF等。最重要的是,它支持自動分頁功能,可以處理大量文本內(nèi)容的排版。
安裝非常簡單,只需使用pip命令:
pip install Spire.PDF
實現(xiàn)代碼
下面是完整的Python代碼,實現(xiàn)了從TXT文件讀取內(nèi)容并轉(zhuǎn)換為PDF的功能:
from spire.pdf.common import *
from spire.pdf import *
def ReadFromTxt(fname: str) -> str:
"""讀取TXT文件內(nèi)容"""
with open(fname, 'r') as f:
text = f.read()
return text
inputFile = "input.txt"
outputFile = "TextToPdf.pdf"
# 從TXT文件獲取文本
text = ReadFromTxt(inputFile)
# 創(chuàng)建PdfDocument實例
pdf = PdfDocument()
# 添加一個頁面 (默認有40磅頁邊距)
page = pdf.Pages.Add()
# 創(chuàng)建PDF字體和畫筆
font = PdfFont(PdfFontFamily.TimesRoman, 11.0)
brush = PdfBrushes.get_Black()
# 設(shè)置文本對齊方式和行間距
strformat = PdfStringFormat()
strformat.LineSpacing = 10.0
strformat.Alignment = PdfTextAlignment.Justify
# 設(shè)置文本布局(關(guān)鍵:自動分頁)
textLayout = PdfTextLayout()
textLayout.Break = PdfLayoutBreakType.FitPage
textLayout.Layout = PdfLayoutType.Paginate
# 創(chuàng)建PdfTextWidget實例來保存文本內(nèi)容
textWidget = PdfTextWidget(text, font, brush)
# 設(shè)置文本格式
textWidget.StringFormat = strformat
# 在頁面上指定位置繪制文本
bounds = RectangleF(PointF(0.0, 0.0), page.Canvas.ClientSize)
textWidget.Draw(page, bounds, textLayout)
# 保存結(jié)果文件
pdf.SaveToFile(outputFile, FileFormat.PDF)
pdf.Close()
代碼解析
文本讀取
ReadFromTxt 函數(shù)負責讀取TXT文件的所有內(nèi)容,以字符串形式返回。
PDF文檔創(chuàng)建
創(chuàng)建一個 PdfDocument 實例,并添加一個初始頁面。
字體和格式設(shè)置
- 使用
TimesRoman字體,字號11 - 設(shè)置行間距為10.0
- 文本對齊方式為兩端對齊
自動分頁的關(guān)鍵設(shè)置
這是實現(xiàn)自動分頁的核心部分:
PdfLayoutBreakType.FitPage:當內(nèi)容超出頁面范圍時自動換頁PdfLayoutType.Paginate:啟用分頁布局模式
使用PdfTextWidget
PdfTextWidget 是一個強大的文本容器,它可以自動處理長文本的分頁問題。我們只需要指定初始的繪制區(qū)域,它會自動判斷是否需要創(chuàng)建新頁面來容納剩余內(nèi)容。
繪制和保存
在指定位置繪制文本后,將PDF保存到文件。
優(yōu)勢特點
- 完全自動化 :無需手動計算每頁可容納的文字數(shù)量
- 保持格式 :支持設(shè)置字體、字號、行間距等格式
- 靈活性強 :可以自定義頁面邊距和起始位置
- 處理大文件 :即使是非常長的文本文件也能輕松處理
總結(jié)
使用 Spire.PDF for Python 庫,我們只需要幾十行代碼就能實現(xiàn)一個功能完善的TXT轉(zhuǎn)PDF工具。它不僅支持基本的格式設(shè)置,更重要的是內(nèi)置了自動分頁功能,大大簡化了開發(fā)工作。無論是處理簡單的筆記文件,還是轉(zhuǎn)換大量的文檔資料,這個工具都能勝任。
如果你經(jīng)常需要處理文本到PDF的轉(zhuǎn)換,不妨試試這個方案,相信它能為你節(jié)省不少時間!
到此這篇關(guān)于Python實現(xiàn)將TXT轉(zhuǎn)換為PDF并自動分頁的文章就介紹到這了,更多相關(guān)Python TXT轉(zhuǎn)PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python數(shù)學模塊(math/decimal模塊)
這篇文章主要介紹了python數(shù)學模塊(math/decimal模塊),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
Python的變量命名規(guī)范和數(shù)據(jù)類型轉(zhuǎn)換詳解
文章主要介紹了Python的變量命名規(guī)則和數(shù)據(jù)類型,包括整數(shù)、浮點數(shù)、字符串、布爾值和空值類型,此外,文章還闡述了不同類型之間的轉(zhuǎn)換方法,如將浮點數(shù)轉(zhuǎn)換為整數(shù)、將字符串轉(zhuǎn)換為數(shù)字類型或布爾值等,感興趣的朋友跟隨小編一起看看吧2026-03-03
解決jupyter notebook啟動后沒有token的坑
這篇文章主要介紹了解決jupyter notebook啟動后沒有token的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
python使用標準庫根據(jù)進程名如何獲取進程的pid詳解
Python有一套很有用的標準庫(standard library)。標準庫會隨著Python解釋器,一起安裝在你的電腦中的,所以下面這篇文章主要給大家介紹了關(guān)于python使用標準庫根據(jù)進程名如何獲取進程pid的相關(guān)資料,需要的朋友可以參考下。2017-10-10
Python的Django框架中的數(shù)據(jù)過濾功能
這篇文章主要介紹了Python的Django框架中的數(shù)據(jù)過濾功能,為更新數(shù)據(jù)庫數(shù)據(jù)時的數(shù)據(jù)查找提供了方便,需要的朋友可以參考下2015-07-07

