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

Python批量實現(xiàn)PDF轉(zhuǎn)換為圖片(JPG/PNG)

 更新時間:2026年03月20日 09:33:00   作者:算法小狂人  
本文介紹了如何使用?Python?腳本快速地將?Word?文檔轉(zhuǎn)換為?PDF?文件,并將?PDF?文件轉(zhuǎn)換為?PNG?圖片,該腳本基于?PyMuPDF、pdf2image?和?win32com?庫實現(xiàn),感興趣的小伙伴可以了解下

本文介紹了一種使用 Python 腳本來完成這項工作的方法,該腳本基于 PyMuPDF、pdf2image 和 win32com 庫實現(xiàn),可以幫助您快速地將 Word 文檔轉(zhuǎn)換為 PDF 文件,并將 PDF 文件轉(zhuǎn)換為 PNG 圖片。

一、安裝所需的庫和軟件

在開始使用該腳本之前,您需要先安裝所需的 Python 模塊和相關(guān)的軟件。具體來說,您需要安裝 PyMuPDF、pdf2image 和 win32com 三個庫,以及 Microsoft Word 軟件和 Poppler 程序。可以通過以下命令來安裝 Python 模塊:

pip install PyMuPDF 
pip install pdf2image 
pip install pypiwin32

PyMuPDF 庫用于將 PDF 文件轉(zhuǎn)換為圖片;pdf2image 庫用于將 PDF 文件轉(zhuǎn)換為 PNG 圖片;pypiwin32 庫用于與 Microsoft Word 軟件進行交互和文檔轉(zhuǎn)換。另外,還需要下載并安裝 Microsoft Word 軟件,并將 Poppler 程序的路徑添加到系統(tǒng)環(huán)境變量中。

二、加載并轉(zhuǎn)換 Word 文檔

在完成所需的庫和軟件安裝后,就可以開始使用腳本了。腳本主要分為三個部分,分別是將 Word 文檔轉(zhuǎn)換為 docx 文件、將 docx 文件轉(zhuǎn)換為 PDF 文件、將 PDF 文件轉(zhuǎn)換為 PNG 圖片。

首先,我們需要加載并轉(zhuǎn)換 Word 文檔。在代碼中,我們使用os.listdir()方法讀取指定路徑下的所有文件名,然后使用split()方法將文件名按“.”分割成文件名和文件后綴。如果文件后綴為“doc”,則使用 win32com 庫打開 Word 應(yīng)用程序,并使用 Dispatch() 方法從文檔對象中創(chuàng)建了一個新的 Word 應(yīng)用程序。然后,將相應(yīng)路徑下的當(dāng)前文件打開,并將其轉(zhuǎn)換為 docx 格式文件。最后關(guān)閉 Word 應(yīng)用程序,并等待 3 秒鐘,系統(tǒng)釋放資源。

for i in os.listdir(path):
    file_name,file_suffix = i.split(".") 
    if file_suffix == "doc":
        word = Dispatch('Word.Application')
        doc = word.Documents.Open(path+f"{i}")
        # 將 Word 文檔轉(zhuǎn)換為 docx 格式文件
        doc.SaveAs(path+f"{file_name}.docx",FileFormat=12)
        print(i,"轉(zhuǎn)換完成")
        doc.Close()
        word.Quit()
        sleep(3)        

SaveAs() 方法接受兩個參數(shù),分別是輸出文件路徑和輸出文件格式。其中,F(xiàn)ileFormat 參數(shù)用于指定輸出文件的格式,12 表示輸出為 docx 格式文件

三、加載并轉(zhuǎn)換 pdf文檔

將上訴代碼修改為:

# 將 Word 文檔轉(zhuǎn)換為 docx 格式文件
        doc.SaveAs(path+f"{file_name}.docx",FileFormat=17)

FileFormat 參數(shù)用于指定輸出文件的格式,17 表示輸出為 PDF 格式文件。

四、將 PDF 文件轉(zhuǎn)換為 PNG 圖片

完成 PDF 文件的轉(zhuǎn)換后,我們就可以將其轉(zhuǎn)換為 PNG 圖片了。在代碼中,我們使用 PyMuPDF 庫打開指定路徑下的 PDF 文件,并獲取該文件的總頁數(shù)。然后,使用 pdf2image 庫中的 convert_from_path() 方法遍歷 PDF 中的每一頁,并將其轉(zhuǎn)換為 PNG 格式的圖片。最后,將 PNG 圖片保存到指定路徑下,并輸出轉(zhuǎn)換進度。

for filename in os.listdir(path):
    if filename.endswith(".pdf"):
        # 獲取當(dāng)前 PDF 文件的總頁數(shù)
        doc = fitz.open(path + filename)
        total_pages = doc.page_count
        doc.close()
        
        print(f"正在轉(zhuǎn)換 {filename},共 {total_pages} 頁...")
        for i, page in enumerate(convert_from_path(path + filename, grayscale=False), start=1):
            # 構(gòu)造文件名
            output_filename = os.path.splitext(filename)[0] + "_" + str(i) + ".png"
            # 保存圖片
            page.save(path_images + output_filename, "png")
            # 輸出轉(zhuǎn)換進度
            print(f"已完成第 {i}/{total_pages} 頁的轉(zhuǎn)換")

五、完整代碼

# -*- coding: utf-8 -*-
"""
Created on Wed May 31 17:10:27 2023

@author: ypzhao
"""

import os
import fitz
from pdf2image import convert_from_path
from time import sleep
from win32com.client import Dispatch

# 定義PDF文件路徑和輸出區(qū)間路徑
# 待轉(zhuǎn)換pdf文件路徑
path = "C:/Users/ypzhao/Desktop/pdf/"
# doc/docx轉(zhuǎn)換后的路徑
path_convert = "C:/Users/ypzhao/Desktop/pdf/"
# 轉(zhuǎn)換后的圖片路徑
path_images = "C:/Users/ypzhao/Desktop/images/"
print("-----doc開始轉(zhuǎn)換為docx-----")

for i in os.listdir(path):
    file_name,file_suffix = i.split(".") 
    if file_suffix == "doc":
        word = Dispatch('Word.Application')
        doc = word.Documents.Open(path+f"{i}")
        doc.SaveAs(path+f"{file_name}.docx",FileFormat=12)
        print(i,"轉(zhuǎn)換完成")
        doc.Close()
        word.Quit()
        sleep(3)

print("-----開始轉(zhuǎn)換為pdf-----")
for i in os.listdir(path):
    file_name,file_suffix = i.split(".") 
    if file_suffix == "docx":
        word = Dispatch('Word.Application')
        doc = word.Documents.Open(path+f"{i}")
        doc.SaveAs(path_convert+f"{file_name}.pdf",FileFormat=17)
        print(i,"...轉(zhuǎn)換完成")
        doc.Close()
        word.Quit()
        sleep(3)
    else:
        pass


# 循環(huán)遍歷PDF文件,并轉(zhuǎn)換為圖片
for filename in os.listdir(path):
    if filename.endswith(".pdf"):
        # 獲取當(dāng)前 PDF 文件的總頁數(shù)
        doc = fitz.open(path + filename)
        total_pages = doc.page_count
        doc.close()
        
        print(f"正在轉(zhuǎn)換 {filename},共 {total_pages} 頁...")
        #按照原圖輸出pdf文件為word
        #若想黑白輸出pdf為圖片格式,修改grayscale=False為grayscale=True
        for i, page in enumerate(convert_from_path(path + filename, grayscale=False), start=1):
            # 構(gòu)造文件名
            output_filename = os.path.splitext(filename)[0] + "_" + str(i) + ".png"
            # 保存圖片
            page.save(path_images + output_filename, "png")
            # 輸出轉(zhuǎn)換進度
            print(f"已完成第 {i}/{total_pages} 頁的轉(zhuǎn)換")

print("-----已完成所有轉(zhuǎn)換-----")

到此這篇關(guān)于Python批量實現(xiàn)PDF轉(zhuǎn)換為圖片(JPG/PNG)的文章就介紹到這了,更多相關(guān)Python PDF轉(zhuǎn)圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中注釋用法簡單示例

    python中注釋用法簡單示例

    注釋即對程序代碼的解釋,在寫程序時需適當(dāng)使用注釋,以方便自己和他人理解程序各部分的作用,下面這篇文章主要給大家介紹了關(guān)于python中注釋用法的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • tensorflow2.0教程之Keras快速入門

    tensorflow2.0教程之Keras快速入門

    這篇文章主要介紹了tensorflow2.0教程之Keras快速入門,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python中Qslider控件實操詳解

    Python中Qslider控件實操詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于Python中Qslider控件實操詳解內(nèi)容,對此有興趣的朋友們可以跟著學(xué)習(xí)參考下。
    2021-02-02
  • 使用Python給PDF添加目錄書簽的實現(xiàn)方法

    使用Python給PDF添加目錄書簽的實現(xiàn)方法

    有時下載到掃描版的 PDF 是不帶書簽?zāi)夸浀?這樣閱讀起來很不方便,下面通過 python 實現(xiàn)一個半自動化添加書簽?zāi)夸浀哪_本,文中通過代碼介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2023-10-10
  • 關(guān)于Pytorch的MLP模塊實現(xiàn)方式

    關(guān)于Pytorch的MLP模塊實現(xiàn)方式

    今天小編就為大家分享一篇關(guān)于Pytorch的MLP模塊實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 詳解Python小數(shù)據(jù)池和代碼塊緩存機制

    詳解Python小數(shù)據(jù)池和代碼塊緩存機制

    這篇文章主要介紹了詳解Python 小數(shù)據(jù)池和代碼塊緩存機制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • 利用python添加表格到PowerPoint中的代碼示例

    利用python添加表格到PowerPoint中的代碼示例

    有效的信息傳達是演示文稿中的重點,而PowerPoint演示文稿作為最廣泛使用的演示工具之一,提供了豐富的功能來幫助演講者實現(xiàn)這一目標,本文將介紹如何利用Python來添加表格到PowerPoint演示文稿中,需要的朋友可以參考下
    2024-08-08
  • Python現(xiàn)代項目開發(fā)之uv安裝配置與最佳實踐指南

    Python現(xiàn)代項目開發(fā)之uv安裝配置與最佳實踐指南

    uv?是由?Astral?公司開發(fā)的?Rust?編寫的?Python?工具鏈,核心優(yōu)勢是極速,功能全面,下面小編就和大家詳細介紹一下uv安裝配置與最佳實踐
    2026-03-03
  • Python基礎(chǔ)之?dāng)?shù)據(jù)類型相關(guān)知識總結(jié)

    Python基礎(chǔ)之?dāng)?shù)據(jù)類型相關(guān)知識總結(jié)

    眾所周知,在Python中,常用的數(shù)據(jù)類型有三種,分別是字符串、整數(shù)和浮點數(shù).在Python基礎(chǔ)學(xué)習(xí)的過程中,數(shù)據(jù)類型是初學(xué)者常常容易混淆的一個基礎(chǔ)知識點,本文為大家詳細總結(jié)了三種數(shù)據(jù)類型的概念、數(shù)據(jù)類型的查詢以及更為復(fù)雜的數(shù)據(jù)轉(zhuǎn)化,需要的朋友可以參考下
    2021-06-06
  • Python XML轉(zhuǎn)Json之XML2Dict的使用方法

    Python XML轉(zhuǎn)Json之XML2Dict的使用方法

    今天小編就為大家分享一篇Python XML轉(zhuǎn)Json之XML2Dict的使用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

建湖县| 奉化市| 陇西县| 常山县| 兰溪市| 蛟河市| 维西| 剑川县| 宜良县| 潢川县| 如皋市| 康马县| 明溪县| 治多县| 广饶县| 刚察县| 青冈县| 吉隆县| 宁武县| 衡东县| 台南市| 上饶县| 临沧市| 林甸县| 会东县| 广平县| 新泰市| 石嘴山市| 于都县| 拉孜县| 专栏| 永新县| 青岛市| 崇明县| 侯马市| 手游| 邳州市| 讷河市| 泗洪县| 武平县| 武邑县|