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

Python實現(xiàn)把PDF文件轉換成長圖PNG格式輸出圖片

 更新時間:2025年09月17日 08:42:17   作者:貓頭虎  
在日常工作中,我們經(jīng)常會需要將一個 PDF 文件轉換為一張長圖(PNG 格式),本文將手把手教你如何使用 Python 實現(xiàn) PDF和 PNG 長圖的轉換,需要的小伙伴可以了解下

在日常工作中,我們經(jīng)常會遇到這樣的需求:將一個 PDF 文件轉換為一張長圖(PNG 格式),方便在網(wǎng)頁、文檔或社交媒體上展示。比如,將一份報告、合同、教程以圖片的形式分享,而不是附件。本文將手把手教你如何使用 Python 實現(xiàn) PDF → PNG 長圖的轉換,并附上完整示例代碼。

一、為什么要把 PDF 轉換成長圖

  • 方便預覽:很多即時通訊工具或社交平臺不支持 PDF 直接預覽,但圖片可以直接展示。
  • 便于分享:將 PDF 轉成長圖,用戶無需安裝 PDF 閱讀器,直接在瀏覽器或手機中查看即可。
  • 統(tǒng)一排版:長圖在不同平臺上不會因為字體缺失、排版不兼容而錯位。

二、實現(xiàn)思路

要把 PDF 轉換成長圖,主要分為兩步:

  • 將 PDF 每一頁轉為單獨的圖片
  • 將這些圖片縱向拼接成長圖

Python 中有兩個非常好用的庫:

  • pdf2image:把 PDF 轉換為圖片。
  • Pillow:Python 圖像處理庫,用于拼接圖片。

三、環(huán)境準備

首先,你需要安裝必要的依賴。

1. 安裝 Python 包

pip install pdf2image pillow

2. 安裝 Poppler

pdf2image 底層依賴 Poppler 來解析 PDF。

macOS

brew install poppler

Ubuntu / Debian

sudo apt-get install poppler-utils

Windows

  • 下載 Poppler for Windows
  • 解壓到本地目錄,例如 C:\poppler-xx\
  • C:\poppler-xx\bin 添加到系統(tǒng)環(huán)境變量 PATH

四、完整代碼示例

下面是一個完整的 Python 程序,可以直接運行:

from pdf2image import convert_from_path
from PIL import Image


def pdf_to_long_png(pdf_path, output_path="output.png", dpi=200):
    # 1. 將 PDF 轉為圖片列表
    pages = convert_from_path(pdf_path, dpi=dpi)

    # 獲取寬度和總高度
    widths, heights = zip(*(i.size for i in pages))
    max_width = max(widths)
    total_height = sum(heights)

    # 2. 創(chuàng)建一個空白長圖
    long_image = Image.new("RGB", (max_width, total_height), "white")

    # 3. 拼接每一頁
    y_offset = 0
    for page in pages:
        long_image.paste(page, (0, y_offset))
        y_offset += page.height

    # 4. 保存為 PNG
    long_image.save(output_path, "PNG")
    print(f"? 已生成長圖: {output_path}")


if __name__ == "__main__":
    pdf_file = "example.pdf"   # 輸入 PDF 文件
    pdf_to_long_png(pdf_file, "long_image.png")

代碼說明

  • convert_from_path(pdf_path, dpi):將 PDF 轉換為 PIL 圖片對象列表,dpi 決定分辨率。
  • Image.new():創(chuàng)建一個空白畫布(寬度 = 最大頁寬度,高度 = 所有頁高度總和)。
  • paste():逐頁粘貼到畫布上,從而拼成長圖。
  • save():最終輸出 PNG 文件。

五、運行效果

  • 輸入:一個多頁 PDF 文件。
  • 輸出:一張 long_image.png,包含 PDF 所有頁面的完整內(nèi)容。

這樣,你就可以在社交平臺、微信公眾號、博客里直接展示一份 PDF 內(nèi)容,而無需上傳 PDF 文件本身。

六、進階優(yōu)化

1.支持命令行參數(shù)

使用 argparse,讓用戶通過命令行輸入 PDF 路徑和輸出文件名。

2.分段長圖

如果 PDF 頁數(shù)太多,長圖可能過大,可以考慮分段拼接成多張圖。

3.背景透明

Image.new("RGB", ...) 改成 Image.new("RGBA", ...),可以生成帶透明背景的 PNG。

4.指定頁碼范圍

convert_from_path(pdf_path, first_page=1, last_page=5) 可只轉換前 5 頁。

七、總結

通過 Python 的 pdf2image + Pillow,我們可以輕松實現(xiàn) PDF → PNG 長圖 的轉換:

  • 適用于合同、簡歷、教程、報告等文件。
  • 代碼簡潔,幾行即可實現(xiàn)。
  • 可擴展性強,可以根據(jù)需求做更多定制化優(yōu)化。

如果你也有類似需求,不妨嘗試一下這段代碼,把你的 PDF 文件轉成長圖吧!

到此這篇關于Python實現(xiàn)把PDF文件轉換成長圖PNG格式輸出圖片的文章就介紹到這了,更多相關Python PDF轉長圖PNG內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 在paddle中安裝python-bidi出錯問題及解決

    在paddle中安裝python-bidi出錯問題及解決

    在Paddle中安裝python-bidi時遇到Rust和Cargo缺失的問題,通過安裝舊版本的python-bidi(0.4.0)解決了問題
    2025-02-02
  • Python圖片處理之圖片采樣處理詳解

    Python圖片處理之圖片采樣處理詳解

    這篇文章將詳細為大家講解圖像采樣處理,包括原理知識、代碼實現(xiàn)和局部馬賽克處理。文中的示例代碼講解詳細,感興趣的可以跟隨小編一起動手試一試
    2022-02-02
  • Python+numpy實現(xiàn)一個蜘蛛紙牌游戲

    Python+numpy實現(xiàn)一個蜘蛛紙牌游戲

    蜘蛛紙牌大家玩過沒有?之前的電腦上自帶的游戲,用他來摸魚過的舉個手。但是現(xiàn)在的電腦上已經(jīng)沒有蜘蛛紙牌了。所以本文就來用Python做一個吧,需要的可以參考一下
    2022-12-12
  • python dataframe實現(xiàn)統(tǒng)計行列中零值的個數(shù)

    python dataframe實現(xiàn)統(tǒng)計行列中零值的個數(shù)

    這篇文章主要介紹了python dataframe實現(xiàn)統(tǒng)計行列中零值的個數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Python快速實現(xiàn)一鍵摳圖功能的全過程

    Python快速實現(xiàn)一鍵摳圖功能的全過程

    你有沒想過,Python也能成為這樣的一種工具:在只有一張圖片,需要細致地摳出人物的情況下,能幫你減少摳圖步驟,這篇文章主要給大家介紹了關于Python快速實現(xiàn)一鍵摳圖功能的相關資料,需要的朋友可以參考下
    2021-06-06
  • 如何在mac下配置python虛擬環(huán)境

    如何在mac下配置python虛擬環(huán)境

    這篇文章主要介紹了如何mac下配置python虛擬環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • tensorflow實現(xiàn)測試時讀取任意指定的check point的網(wǎng)絡參數(shù)

    tensorflow實現(xiàn)測試時讀取任意指定的check point的網(wǎng)絡參數(shù)

    今天小編就為大家分享一篇tensorflow實現(xiàn)測試時讀取任意指定的check point的網(wǎng)絡參數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 聊聊Pytorch torch.cat與torch.stack的區(qū)別

    聊聊Pytorch torch.cat與torch.stack的區(qū)別

    這篇文章主要介紹了Pytorch torch.cat與torch.stack的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python實現(xiàn)QQ郵箱發(fā)送郵件

    python實現(xiàn)QQ郵箱發(fā)送郵件

    這篇文章主要為大家詳細介紹了python實現(xiàn)QQ郵箱發(fā)送郵件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Django跨域資源共享問題(推薦)

    Django跨域資源共享問題(推薦)

    跨域資源共享(CORS) 是一種機制,它使用額外的 HTTP 頭來告訴瀏覽器 讓運行在一個 origin (domain) 上的Web應用被準許訪問來自不同源服務器上的指定的資源。這篇文章主要介紹了Django跨域資源共享問題小結,需要的朋友可以參考下
    2020-03-03

最新評論

林口县| 阿拉善左旗| 武宣县| 湾仔区| 富平县| 明水县| 寻甸| 那曲县| 泗阳县| 临泉县| 乌兰县| 积石山| 民权县| 巴彦淖尔市| 明溪县| 扎囊县| 广元市| 柯坪县| 酒泉市| 遂溪县| 富民县| 株洲县| 和顺县| 维西| 遂宁市| 晋中市| 辽源市| 平度市| 昌都县| 台中县| 高唐县| 昭平县| 平武县| 盐亭县| 濉溪县| 五莲县| 炎陵县| 醴陵市| 剑川县| 霞浦县| 界首市|