Python實(shí)現(xiàn)讀取文本文件并轉(zhuǎn)換為pdf
文本文件因其輕便、易編輯的優(yōu)勢(shì),常用于日常文字記錄與數(shù)據(jù)交換;而PDF文檔則以高保真、格式穩(wěn)定和良好的閱讀體驗(yàn),成為正式報(bào)告、文獻(xiàn)發(fā)布等場(chǎng)景的首選。將文本文件轉(zhuǎn)為PDF,在PDF內(nèi)精準(zhǔn)繪制文本,旨在兼顧內(nèi)容的規(guī)范呈現(xiàn)與個(gè)性化布局,適應(yīng)不同場(chǎng)合對(duì)文檔格式的特定要求。本文將將介紹如何使用Python簡(jiǎn)便快捷地完成TXT文件到PDF文檔的轉(zhuǎn)換,滿足多樣化的文檔處理需求。
本文所使用的方法需要用到Spire.PDF for Python,PyPI:pip install Spire.PDF
。
用Python讀取文本文件并轉(zhuǎn)換為PDF文檔
文本文件到PDF文檔的轉(zhuǎn)換可以通過(guò)讀取文本,并將文本內(nèi)容繪制在PDF頁(yè)面上來(lái)實(shí)現(xiàn)。由于文本文件不儲(chǔ)存格式信息,因?yàn)椋覀兛梢栽诶L制時(shí)對(duì)文本格式進(jìn)行自定義,使生成的PDF文檔更符合我們的需求。
在讀取和繪制過(guò)程中需要用到的主要類(lèi)和方法:
- PdfDocument 類(lèi): 代表 PDF 文檔模型
- PdfTextWidget 類(lèi): 代表能跨越多個(gè)頁(yè)面的文本區(qū)域。
- PdfDocument.Pages.Add() 方法: 向 PDF 文檔添加頁(yè)面。
- PdfTextWidget.Draw() 方法: 在頁(yè)面指定位置繪制文本部件。
以下是將文本文件內(nèi)容繪制在PDF頁(yè)面上的操作步驟:
- 導(dǎo)入所需模塊。
- 使用 File.ReadAllText() 方法從 TXT 文件中讀取文本。
- 創(chuàng)建 PdfDocument 實(shí)例并向 PDF 文件添加頁(yè)面。
- 創(chuàng)建 PDF 字體和筆刷對(duì)象。
- 設(shè)置文本格式和布局。
- 創(chuàng)建一個(gè) PdfTextWidget 對(duì)象來(lái)保存文本內(nèi)容。
- 使用 PdfTextWidget.Draw() 方法在PDF頁(yè)面的指定位置繪制文本部件。
- 使用 PdfDocument.SaveToFile() 方法保存 PDF 文件。
- 釋放資源。
代碼示例:
from spire.pdf.common import * from spire.pdf import * inputFile = "G:/文檔/示例.txt" outputFile = "output/文本文件轉(zhuǎn)PDF.pdf" # 從txt文件中獲取文本 with open(inputFile, "r", encoding="utf-8") as f: text = f.read() # 創(chuàng)建PdfDocument實(shí)例 pdf = PdfDocument() # 添加一頁(yè) page = pdf.Pages.Add() # 創(chuàng)建PDF字體和PDF畫(huà)刷 font = PdfTrueTypeFont("HarmonyOS Sans SC", 12.0, 0, True) brush = PdfBrushes.get_Brown() # 設(shè)置文本對(duì)齊方式和行間距 strformat = PdfStringFormat() strformat.LineSpacing = 10.0 strformat.Alignment = PdfTextAlignment.Justify # 設(shè)置文本布局 textLayout = PdfTextLayout() textLayout.Break = PdfLayoutBreakType.FitPage textLayout.Layout = PdfLayoutType.Paginate # 創(chuàng)建PdfTextWidget實(shí)例來(lái)保存文本內(nèi)容 textWidget = PdfTextWidget(text, font, brush) # 設(shè)置文本格式 textWidget.StringFormat = strformat # 在頁(yè)面上指定位置繪制文本 bounds = RectangleF(PointF(0.0, 20.0), page.Canvas.ClientSize) textWidget.Draw(page, bounds, textLayout) # 保存結(jié)果文件 pdf.SaveToFile(outputFile, FileFormat.PDF) pdf.Close()
結(jié)果文檔:
到此這篇關(guān)于Python實(shí)現(xiàn)讀取文本文件并轉(zhuǎn)換為pdf的文章就介紹到這了,更多相關(guān)Python文本轉(zhuǎn)pdf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
selenium + python 獲取table數(shù)據(jù)的示例講解
今天小編就為大家分享一篇selenium + python 獲取table數(shù)據(jù)的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10

淺談Scrapy網(wǎng)絡(luò)爬蟲(chóng)框架的工作原理和數(shù)據(jù)采集

Python3實(shí)現(xiàn)轉(zhuǎn)換Image圖片格式

python多進(jìn)程執(zhí)行方法apply_async使用說(shuō)明

Python輕松實(shí)現(xiàn)批量郵件自動(dòng)化詳解

python時(shí)間與Unix時(shí)間戳相互轉(zhuǎn)換方法詳解