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

使用Python將圖片轉(zhuǎn)換為PDF格式的三種常見方法

 更新時間:2025年08月18日 10:03:58   作者:detayun  
在日常工作和學(xué)習(xí)中,我們經(jīng)常需要將多張圖片合并成一個PDF文件,以便于分享或打印,Python提供了多種庫來實現(xiàn)這一需求,本文將詳細(xì)介紹三種常用的方法:img2pdf庫、Pillow庫和PyMuPDF庫,并附上完整的代碼示例,需要的朋友可以參考下

引言

在日常工作和學(xué)習(xí)中,我們經(jīng)常需要將多張圖片合并成一個PDF文件,以便于分享或打印。Python提供了多種庫來實現(xiàn)這一需求,本文將詳細(xì)介紹三種常用的方法:img2pdf庫Pillow庫PyMuPDF庫,并附上完整的代碼示例。

方法一:使用img2pdf庫

簡介

img2pdf是一個專門用于將圖片轉(zhuǎn)換為PDF的高效工具,支持多種圖片格式(如JPEG、PNG等),且轉(zhuǎn)換過程中不會損失圖片質(zhì)量。

安裝

pip install img2pdf

代碼示例

import img2pdf

# 定義圖片路徑列表
image_paths = ['image1.jpg', 'image2.png', 'image3.jpeg']

# 將圖片轉(zhuǎn)換為PDF字節(jié)流
pdf_bytes = img2pdf.convert(image_paths)

# 保存為PDF文件
with open('output.pdf', 'wb') as f:
    f.write(pdf_bytes)

print("PDF文件已成功生成!")

優(yōu)勢

  • 高效快速:直接將圖片數(shù)據(jù)嵌入PDF,無需重新編碼。
  • 無損轉(zhuǎn)換:保持原始圖片質(zhì)量。
  • 支持多圖:自動將多張圖片分頁到同一PDF中。

方法二:使用Pillow庫

簡介

Pillow是Python中常用的圖像處理庫,支持打開、編輯和保存多種圖片格式,也可用于將圖片轉(zhuǎn)換為PDF。

安裝

pip install Pillow

代碼示例(單張圖片)

from PIL import Image

# 打開圖片
image = Image.open('input.jpg')

# 保存為PDF(默認(rèn)分辨率72DPI)
image.save('output.pdf', 'PDF', resolution=300)  # 設(shè)置分辨率為300DPI

print("單張圖片已轉(zhuǎn)換為PDF!")

代碼示例(多張圖片合并)

from PIL import Image
import os

# 定義圖片路徑列表
image_paths = ['image1.jpg', 'image2.png', 'image3.jpeg']

# 打開所有圖片并轉(zhuǎn)換為RGB模式
images = [Image.open(img).convert('RGB') for img in image_paths]

# 保存第一張圖片為PDF,并追加剩余圖片
images[0].save(
    'combined.pdf',
    'PDF',
    save_all=True,
    append_images=images[1:]
)

print("多張圖片已合并為PDF!")

注意事項

  • 分辨率調(diào)整:通過resolution參數(shù)可優(yōu)化PDF清晰度。
  • 模式轉(zhuǎn)換:確保圖片為RGB模式,否則可能無法保存為PDF。

方法三:使用PyMuPDF庫

簡介

PyMuPDF(即fitz)是一個功能強大的PDF處理庫,支持添加圖片、調(diào)整頁面布局等高級操作。

安裝

pip install pymupdf

代碼示例

import fitz  # PyMuPDF的別名

# 創(chuàng)建空白PDF文檔
doc = fitz.open()

# 添加圖片到PDF
for img_path in ['image1.jpg', 'image2.png']:
    img = fitz.open(img_path)  # 打開圖片
    rect = fitz.Rect(0, 0, img.media_box.width, img.media_box.height)
    page = doc.new_page(width=rect.width, height=rect.height)  # 創(chuàng)建新頁面
    page.insert_image(rect, filename=img_path)  # 插入圖片

# 保存PDF
doc.save('output.pdf')
doc.close()

print("PDF文件已生成!")

優(yōu)勢

  • 靈活布局:可自定義頁面大小、邊距等。
  • 高級功能:支持添加水印、合并PDF等操作。

方案對比

方法適用場景優(yōu)點缺點
img2pdf批量轉(zhuǎn)換、追求速度和無損質(zhì)量快速、高效、無損僅支持基礎(chǔ)轉(zhuǎn)換
Pillow單張圖片轉(zhuǎn)換、簡單合并輕量級、易用多圖合并需額外處理
PyMuPDF需要定制PDF布局或高級功能功能強大、靈活學(xué)習(xí)成本稍高

常見問題解答

1. 如何調(diào)整PDF的頁面大?。?/h3>
  • img2pdf:通過layout_fun參數(shù)自定義布局(需指定紙張尺寸)。
  • PyMuPDF:在new_page中設(shè)置widthheight參數(shù)。

2. 轉(zhuǎn)換后的PDF文件過大怎么辦?

  • 使用img2pdf時,確保圖片格式為JPEG或PNG(已壓縮格式)。
  • 通過Pillowsavefig參數(shù)調(diào)整分辨率(如dpi=150)。

3. 支持哪些圖片格式?

  • 所有方法均支持JPEG、PNG、BMP等常見格式。
  • img2pdf還支持TIFF、WebP等格式。

總結(jié)

  • 推薦方案
    • 批量轉(zhuǎn)換:優(yōu)先使用img2pdf庫。
    • 簡單需求:選擇Pillow庫。
    • 高級定制:使用PyMuPDF庫。

通過本文的三種方法,您可以輕松實現(xiàn)圖片到PDF的轉(zhuǎn)換,并根據(jù)具體需求選擇最合適的工具。

到此這篇關(guān)于使用Python將圖片轉(zhuǎn)換為PDF格式的三種常見方法的文章就介紹到這了,更多相關(guān)Python將圖片轉(zhuǎn)為PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何在Python中編寫接口和請求外部接口

    如何在Python中編寫接口和請求外部接口

    這篇文章主要介紹了如何在Python中編寫接口和請求外部接口,requests庫來請求外部接口,按照請求方法分為get請求和post請求,下面和小編一起進(jìn)入文章了解更多的具體內(nèi)容吧
    2022-02-02
  • Python及Pycharm安裝方法圖文教程

    Python及Pycharm安裝方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Python及Pycharm安裝方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法

    用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法

    今天小編就為大家分享一篇用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Ubuntu下Python2與Python3的共存問題

    Ubuntu下Python2與Python3的共存問題

    Linux系統(tǒng)一般自帶Python,有時候又自己下載了Python,因此有可能Python2和Python3同時存在。那么當(dāng)我們在Terminal鍵入python的時候,會調(diào)出哪個Python呢?本文即解決這個問題
    2018-10-10
  • Python實現(xiàn)一個簡單的畢業(yè)生信息管理系統(tǒng)的示例代碼

    Python實現(xiàn)一個簡單的畢業(yè)生信息管理系統(tǒng)的示例代碼

    這篇文章主要介紹了Python實現(xiàn)一個簡單的畢業(yè)生信息管理系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • python文字轉(zhuǎn)語音實現(xiàn)過程解析

    python文字轉(zhuǎn)語音實現(xiàn)過程解析

    這篇文章主要介紹了python文字轉(zhuǎn)語音實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Python3 批量掃描端口的例子

    Python3 批量掃描端口的例子

    今天小編就為大家分享一篇Python3 批量掃描端口的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python的線程之線程同步

    Python的線程之線程同步

    這篇文章主要為大家介紹了Python線程同步,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python和Anaconda和Pycharm安裝教程圖文詳解

    Python和Anaconda和Pycharm安裝教程圖文詳解

    PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,這篇文章主要介紹了Python和Anaconda和Pycharm安裝教程,需要的朋友可以參考下
    2020-02-02
  • Python利用AI接口實現(xiàn)摳圖并改圖片底色

    Python利用AI接口實現(xiàn)摳圖并改圖片底色

    時候我們的證件照需要換底色,又來不及去照相館拍照,用ps也不好摳圖,所以今天給你們分享一下如何用python來摳圖,并換底色,需要的可以參考一下
    2022-09-09

最新評論

花莲市| 报价| 深水埗区| 邯郸市| 绍兴县| 涡阳县| 沅江市| 庆城县| 甘德县| 平谷区| 新化县| 兴山县| 苗栗县| 交口县| 徐闻县| 香港 | 沙雅县| 新民市| 温宿县| 昆明市| 塔城市| 喀什市| 定州市| 彭阳县| 哈尔滨市| 浦北县| 奉新县| 金沙县| 黄石市| 清涧县| 云霄县| 南乐县| 临洮县| 永州市| 大冶市| 莱州市| 都昌县| 靖宇县| 长白| 阜新| 西华县|