最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python利用Spire.Doc for Python高效實(shí)現(xiàn)Word轉(zhuǎn)PDF

 更新時(shí)間:2025年09月12日 08:16:12   作者:用戶372157426135  
在工作中,經(jīng)常會遇到需要把 Word 文檔轉(zhuǎn)換成 PDF 的情況,本文將介紹如何借助 Spire.Doc for Python庫,實(shí)現(xiàn) doc 轉(zhuǎn) pdf、docx 轉(zhuǎn) pdf,需要的可以了解下

在工作中,經(jīng)常會遇到需要把 Word 文檔轉(zhuǎn)換成 PDF 的情況。比如生成報(bào)表、分發(fā)文檔、或者做歸檔保存,PDF 格式在排版和跨平臺顯示上更穩(wěn)定。

傳統(tǒng)的做法往往依賴 Microsoft Office 或 LibreOffice 等軟件來完成轉(zhuǎn)換,但在自動化環(huán)境(如服務(wù)器、Docker 容器、Linux 系統(tǒng))中,這類方式會遇到一些限制:需要額外安裝軟件、依賴復(fù)雜,甚至存在兼容性問題。

因此,很多開發(fā)者更希望使用無依賴的 Python 庫來完成轉(zhuǎn)換。本文將介紹如何借助 Spire.Doc for Python庫,在不依賴 Office 的情況下,實(shí)現(xiàn) doc 轉(zhuǎn) pdf、docx 轉(zhuǎn) pdf,并支持批量轉(zhuǎn)換與多種轉(zhuǎn)換設(shè)置。

一、安裝 Spire.Doc for Python

在使用之前,需要先安裝庫??梢灾苯邮褂靡韵?pip 命令來安裝:

pip install spire-doc

安裝完成后,就可以在 Python 代碼中使用 from spire.doc import * 導(dǎo)入該庫的模塊來處理和轉(zhuǎn)換 Word 文檔。

二、Python Word 轉(zhuǎn) PDF 基本示例

下面是 Word 轉(zhuǎn) PDF 一個(gè)最基礎(chǔ)的示例。只需要兩步:加載文件、保存為 PDF。

from spire.doc import *

# 創(chuàng)建文檔對象
doc = Document()

# 加載 Word 文件
doc.LoadFromFile("input.docx")

# 轉(zhuǎn)換并保存為 PDF
doc.SaveToFile("output.pdf", FileFormat.PDF)

# 關(guān)閉文檔,釋放資源
doc.Close()

代碼說明

  • Document():創(chuàng)建一個(gè) Word 文檔對象。
  • LoadFromFile("input.docx"):加載指定路徑的 Word 文件。
  • SaveToFile("output.pdf", FileFormat.PDF):將文檔保存為 PDF 格式。
  • Close():關(guān)閉文檔,釋放資源。

三、批量轉(zhuǎn)換 Word 文檔為 PDF

如果有大量 Word 文件需要轉(zhuǎn)換,可以將它們放在一個(gè)目錄下,然后遍歷目錄并批量轉(zhuǎn)換。以下是具體的代碼示例:

import os
from spire.doc import *

input_dir = "word_files"
output_dir = "pdf_files"
os.makedirs(output_dir, exist_ok=True)

for file in os.listdir(input_dir):
    if file.endswith(".doc") or file.endswith(".docx"):
        doc = Document()
        doc.LoadFromFile(os.path.join(input_dir, file))
        pdf_path = os.path.join(output_dir, file.rsplit(".", 1)[0] + ".pdf")
        doc.SaveToFile(pdf_path, FileFormat.PDF)
        doc.Close()

代碼說明

  • os.listdir(input_dir):遍歷文件夾中的所有文件。
  • file.endswith(".doc") or file.endswith(".docx"):只處理 Word (.doc 或 .docx)文件。
  • os.makedirs(output_dir, exist_ok=True):如果目標(biāo)文件夾不存在,則自動創(chuàng)建。
  • 每次處理完一個(gè)文檔后調(diào)用 Close(),避免內(nèi)存占用過多。

四、轉(zhuǎn)換設(shè)置與優(yōu)化

在不同的應(yīng)用場景下,生成的 PDF 可能需要不同的屬性,例如文件體積更小、排版更精細(xì)、符合歸檔標(biāo)準(zhǔn)等。Spire.Doc for Python 提供了可調(diào)節(jié)的參數(shù)來滿足這些需求。

1. 圖片優(yōu)化(減小 PDF 大?。?/h3>
# 將圖像壓縮到原始質(zhì)量的40%
document.JPEGQuality = 40

# 保留原始圖像質(zhì)量
# document.JPEGQuality = 100

這樣可以有效減小 PDF 文件大小,適合包含大量圖片的 Word 文檔。

2. 字體嵌入處理(避免亂碼)

# 創(chuàng)建 ToPdfParameterList 類的對象
parameter = ToPdfParameterList()

# 將字體嵌入到生成的PDF中
parameter.IsEmbeddedAllFonts = True

# 將文檔保存為PDF
document.SaveToFile("output.pdf", parameter)

避免目標(biāo)設(shè)備缺少字體時(shí),導(dǎo)致 PDF 顯示異常。

3. PDF/A 合規(guī)標(biāo)準(zhǔn)

# 創(chuàng)建 ToPdfParameterList 類的對象
parameters = ToPdfParameterList()

# 設(shè)置 PDF/A 合規(guī)標(biāo)準(zhǔn)
parameters.PdfConformanceLevel = PdfConformanceLevel.Pdf_A1A

# 將文檔保存為 PDF/A-1a 文件
document.SaveToFile("output.pdf", parameters)

用于生成符合 PDF/A 標(biāo)準(zhǔn)的文件,常用于檔案歸檔。

4. 加密與權(quán)限控制

# 創(chuàng)建 ToPdfParameterList 類的對象
parameter = ToPdfParameterList()

# 設(shè)置打開密碼和權(quán)限密碼,并用其保護(hù)生成的 PDF 文件
openPsd = "abc123"
permissionPsd = "E-iceblue"
parameter.PdfSecurity.Encrypt(openPsd, permissionPsd, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit)

# 將文檔保存為加密的PDF
document.SaveToFile("output.pdf", parameter)

可以為 PDF 設(shè)置打開密碼,并限制打印、復(fù)制等操作。

五、異常處理

import os
from spire.doc import *

input_dir = "word_files"
output_dir = "pdf_files"
os.makedirs(output_dir, exist_ok=True)

for file in os.listdir(input_dir):
    if file.endswith(".doc") or file.endswith(".docx"):
        try:
            doc = Document()
            doc.LoadFromFile(os.path.join(input_dir, file))
            pdf_path = os.path.join(output_dir, file.rsplit(".", 1)[0] + ".pdf")
            doc.SaveToFile(pdf_path, FileFormat.PDF)
            print(f"成功轉(zhuǎn)換: {file} → {pdf_path}")
        except Exception as e:
            print(f"轉(zhuǎn)換失敗: {file}, 錯(cuò)誤信息: {str(e)}")
        finally:
            if 'doc' in locals():
                doc.Close()

代碼說明

  • try ... except ... finally:保證即使出錯(cuò),程序也能繼續(xù)執(zhí)行。
  • print(f"..."):方便輸出日志,便于排查問題。
  • finally 確保即使出錯(cuò),也會關(guān)閉文檔,避免內(nèi)存泄漏。

六、適用場景

  • 自動化報(bào)表生成:將 Word 報(bào)表定時(shí)轉(zhuǎn)換為 PDF。
  • 文檔歸檔:統(tǒng)一轉(zhuǎn)換為 PDF/A,方便長期保存。
  • 在線服務(wù):搭建“上傳 Word → 下載 PDF”的 Web 接口。
  • 批量處理:快速將大量 Word 文件轉(zhuǎn)換為 PDF,提升工作效率。

七、總結(jié)

本文介紹了在 Python 中使用 Spire.Doc 實(shí)現(xiàn) Word 文檔到 PDF 的轉(zhuǎn)換方法。通過實(shí)例演示了:

  • 單文件和批量文件的轉(zhuǎn)換流程;
  • 轉(zhuǎn)換過程中可配置的參數(shù),如圖像壓縮、字體嵌入、PDF/A 合規(guī)性和加密設(shè)置;
  • 異常處理與資源釋放的注意事項(xiàng),確保在批量或自動化場景下程序穩(wěn)定運(yùn)行。

總體來看,利用 Spire.Doc 可以在不依賴 Office 的環(huán)境中完成高效、穩(wěn)定的 Word 到 PDF 轉(zhuǎn)換,并且轉(zhuǎn)換選項(xiàng)靈活,可根據(jù)具體需求調(diào)整。上述方法適合在報(bào)表生成、文檔歸檔或在線文檔處理等場景中應(yīng)用。

到此這篇關(guān)于Python利用Spire.Doc for Python高效實(shí)現(xiàn)Word轉(zhuǎn)PDF的文章就介紹到這了,更多相關(guān)Python Word轉(zhuǎn)PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python自動爬取圖片并保存實(shí)例代碼

    Python自動爬取圖片并保存實(shí)例代碼

    大家好,本篇文章主要講的是Python自動爬取圖片并保存實(shí)例代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Python 反轉(zhuǎn)字符串(reverse)的方法小結(jié)

    Python 反轉(zhuǎn)字符串(reverse)的方法小結(jié)

    這篇文章主要介紹了Python 反轉(zhuǎn)字符串(reverse)的方法小結(jié),需要的朋友可以參考下
    2018-02-02
  • 在python中使用正則表達(dá)式查找可嵌套字符串組

    在python中使用正則表達(dá)式查找可嵌套字符串組

    這篇文章主要介紹了在python中使用正則表達(dá)式查找可嵌套字符串組的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • Python3自定義json逐層解析器代碼

    Python3自定義json逐層解析器代碼

    這篇文章主要介紹了Python3自定義json逐層解析器代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 詳解用python生成隨機(jī)數(shù)的幾種方法

    詳解用python生成隨機(jī)數(shù)的幾種方法

    這篇文章主要介紹了詳解用python生成隨機(jī)數(shù)的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python虛擬環(huán)境與Conda使用指南分享

    Python虛擬環(huán)境與Conda使用指南分享

    這篇文章主要介紹了Python虛擬環(huán)境與Conda使用指南,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 使用Python手寫一個(gè)智能PDF文檔助手

    使用Python手寫一個(gè)智能PDF文檔助手

    你是否想親手打造一個(gè)屬于自己的AI工具?是否想過用不到100行代碼就能實(shí)現(xiàn)一個(gè)智能聊天機(jī)器人,本文將帶你從零開始,手寫一個(gè)實(shí)用的AI小工具——智能PDF文檔助手,需要的朋友可以參考下
    2026-03-03
  • Python?hashlib模塊與哈希算法保護(hù)數(shù)據(jù)完整性教程

    Python?hashlib模塊與哈希算法保護(hù)數(shù)據(jù)完整性教程

    hashlib模塊為Python提供了一種簡便的方式來使用各種哈希算法,如MD5、SHA-1、SHA-256等,哈希函數(shù)廣泛用于密碼學(xué)、數(shù)據(jù)完整性驗(yàn)證和安全存儲等領(lǐng)域
    2024-01-01
  • python如何制作英文字典

    python如何制作英文字典

    這篇文章主要為大家詳細(xì)介紹了python如何制作英文字典,添加單詞的意思,查詢,退出,建立單詞文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Python使用Scrapling進(jìn)行網(wǎng)頁采集的用法詳解

    Python使用Scrapling進(jìn)行網(wǎng)頁采集的用法詳解

    Scrapling是一個(gè)Python Web Scraping框架,支持靜態(tài)網(wǎng)頁、動態(tài) 網(wǎng)頁抓取及多頁面爬蟲,它結(jié)合了requests、BeautifulSoup、Scrapy、Playwright的優(yōu)點(diǎn),API簡潔統(tǒng)一,適用于快速原型、簡單的網(wǎng)頁抓取,本文給大家介紹了Scrapling的使用指南,需要的朋友可以參考下
    2026-05-05

最新評論

德兴市| 深州市| 隆尧县| 仙桃市| 永康市| 华阴市| 南康市| 虎林市| 洪洞县| 伊春市| 任丘市| 安义县| 三台县| 蓝田县| 蓬安县| 锦屏县| 曲周县| 铁力市| 鄂尔多斯市| 莱州市| 中山市| 台安县| 英吉沙县| 长汀县| 邓州市| 宁安市| 贵阳市| 古田县| 同仁县| 夏津县| 基隆市| 米林县| 甘孜县| 马边| 盘锦市| 达日县| 鄂州市| 鞍山市| 中牟县| 南宫市| 河间市|