欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)PDF與多種圖片格式之間互轉(zhuǎn)(PNG, JPG, BMP, EMF, SVG)

 更新時間:2025年03月19日 10:53:13   作者:nuclear2011  
PDF和圖片是我們?nèi)粘I詈凸ぷ髦谐S玫奈募袷?有時候,我們可能需要將PDF和圖片進行格式互轉(zhuǎn)來滿足不同的應用場景和使用需求,這篇文章將探討如何使用Python實現(xiàn)PDF與多種圖片格式之間的相互轉(zhuǎn)換,需要的朋友可以參考下

一、介紹

PDF和圖片是我們?nèi)粘I詈凸ぷ髦谐S玫奈募袷健S袝r候,我們可能需要將PDF和圖片進行格式互轉(zhuǎn)來滿足不同的應用場景和使用需求。例如,將PDF轉(zhuǎn)換為圖片更有利于在網(wǎng)頁上或幻燈片中展示文件內(nèi)容,而將圖片轉(zhuǎn)換為PDF可以將多個圖片整合到一個文檔中,方便進行文檔歸檔、電子書制作、打印或共享等操作。這篇文章將探討如何使用Python實現(xiàn)PDF與多種圖片格式之間的相互轉(zhuǎn)換。

二、安裝Python庫

我們需要借助Python類庫來實現(xiàn)PDF與圖片格式互轉(zhuǎn)。本文使用的類庫是Spire.PDF for Python,它可以把多種圖片格式轉(zhuǎn)換為PDF,也可以把PDF轉(zhuǎn)換成多種圖片格式。安裝過程比較簡單,使用pip命令即可:

pip install Spire.PDF

下面我們來看如何借助這個庫實現(xiàn)PDF和圖片互轉(zhuǎn)。

三、Python實現(xiàn)多種圖片格式轉(zhuǎn)PDF

圖片轉(zhuǎn)PDF可以有不同的場景,比如我們可以把單張圖片轉(zhuǎn)換為PDF,也可以把多張圖片轉(zhuǎn)換為一個PDF。下面將分別介紹這兩種場景。

1、單張圖片轉(zhuǎn)換為PDF

將單張圖片轉(zhuǎn)換為PDF的原理是將圖片繪制到PDF,下面是大概步驟:

  • 新建PDF。
  • 加載圖片,獲取圖片的寬高。
  • 添加一個與圖片寬高一致的頁面到PDF。
  • 把圖片繪制到頁面上。
  • 保存文檔。

代碼:

from spire.pdf.common import *
from spire.pdf import *
 
# 創(chuàng)建PdfDocument實例
doc = PdfDocument()
 
# 刪除頁邊距
doc.PageSettings.SetMargins(0.0)
 
# 加載一張圖片
image = PdfImage.FromFile("C:/Users/Administrator/Desktop/image.jpg")
 
# 獲取圖片的寬度和高度
width = image.PhysicalDimension.Width
height = image.PhysicalDimension.Height
 
# 添加頁面到PDF,設置頁面的寬度和高度與圖片一致
page = doc.Pages.Add(SizeF(width, height))       
 
# 把圖片繪制到頁面上
page.Canvas.DrawImage(image, 0.0, 0.0, width, height)
 
# 保存文檔
doc.SaveToFile("圖片轉(zhuǎn)PDF.pdf")
doc.Close()

注意,上面的代碼適用于PNG/JPG/BMP/EMF等格式,但不適用于SVG。如果需要將SVG轉(zhuǎn)換為PDF,參考以下代碼:

from spire.pdf.common import *
from spire.pdf import *
 
# 創(chuàng)建PdfDocument實例
doc = PdfDocument()
# 加載SVG
doc.LoadFromSvg("測試.svg")
 
# 保存SVG為PDF
doc.SaveToFile("SVG轉(zhuǎn)PDF.pdf", FileFormat.PDF)
doc.Close()

2、多張圖片轉(zhuǎn)換為一個PDF

多張圖片轉(zhuǎn)PDF的原理與單張圖片轉(zhuǎn)PDF一樣,就是添加多個頁面到PDF,然后依次將每個圖片繪制到對應頁面上去。步驟與上面類似,此處省略。

代碼:

from spire.pdf.common import *
from spire.pdf import *
import os
 
# 創(chuàng)建PdfDocument實例
doc = PdfDocument()
 
# 刪除頁邊距
doc.PageSettings.SetMargins(0.0)
 
# 指定圖片文件夾路徑
image_dir = "C:/Users/Administrator/Desktop/圖片/"
 
# 遍歷文件夾中的圖片
for fileName in os.listdir(image_dir):
    image_path = os.path.join(image_dir, fileName)
 
    # 加載圖片
    image = PdfImage.FromFile(image_path)    
    # 獲取圖片寬高
    width = image.PhysicalDimension.Width
    height = image.PhysicalDimension.Height
 
    # 添加一個與圖片寬高一致的頁面到PDF
    page = doc.Pages.Add(SizeF(width, height))
 
    # 把圖片繪制到頁面上
    page.Canvas.DrawImage(image, 0.0, 0.0, width, height)
      
# 保存文檔
doc.SaveToFile("多張圖片轉(zhuǎn)PDF.pdf")
doc.Dispose()

四、Python實現(xiàn)PDF轉(zhuǎn)多種圖片格式

除了把多種圖片格式轉(zhuǎn)換為PDF,我們也可以把PDF轉(zhuǎn)換為PNG/JPG/BMP/EMF/SVG等多種圖片格式。

將PDF轉(zhuǎn)換為PNG/JPG/BMP/EMF的大致步驟如下:

  • 加載PDF。
  • 遍歷文檔頁面。
  • 將每個頁面轉(zhuǎn)換為圖片。

下面是將PDF轉(zhuǎn)換為PNG/JPG/BMP/EMF的代碼:

from spire.pdf.common import *
from spire.pdf import *
 
# 創(chuàng)建PdfDocument實例
doc = PdfDocument()
# 加載PDF文檔
doc.LoadFromFile("測試.pdf")
 
# 遍歷文檔頁面
for i in range(doc.Pages.Count):
    # 將每個頁面分別轉(zhuǎn)換為圖片(要轉(zhuǎn)換到其他的圖片格式,修改圖片后綴即可)
    fileName = "輸出/圖片-{0:d}.png".format(i)
    with doc.SaveAsImage(i) as imageS:
        imageS.Save(fileName)
 
doc.Close()

如要將PDF轉(zhuǎn)換為SVG,則不需要遍歷頁面,加載文檔后,可以直接使用類庫提供的方法來轉(zhuǎn)換,此外還可以設置轉(zhuǎn)換的SVG的尺寸:

from spire.pdf.common import *
from spire.pdf import *
 
# 創(chuàng)建PdfDocument實例
doc = PdfDocument()
# 加載PDF文檔
doc.LoadFromFile("測試.pdf")
 
# 指定轉(zhuǎn)換的SVG文件的尺寸
doc.ConvertOptions.SetPdfToSvgOptions(600.0, 600.0)
 
# 將每個頁面分別轉(zhuǎn)換為SVG
doc.SaveToFile("PDF轉(zhuǎn)SVG.svg", FileFormat.SVG)
doc.Close()

希望以上關于使用Python實現(xiàn)PDF和多種圖片格式互轉(zhuǎn)的內(nèi)容能對你有所幫助。

到此這篇關于Python實現(xiàn)PDF與多種圖片格式之間互轉(zhuǎn)(PNG, JPG, BMP, EMF, SVG)的文章就介紹到這了,更多相關Python PDF與多種圖片格式互轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python實現(xiàn)由數(shù)組生成對稱矩陣

    python實現(xiàn)由數(shù)組生成對稱矩陣

    本文給大家分享的是由數(shù)組生成對稱矩陣的思路并附上了使用Python實現(xiàn)的代碼,希望大家能夠喜歡
    2021-05-05
  • python實現(xiàn)校園網(wǎng)自動登錄的示例講解

    python實現(xiàn)校園網(wǎng)自動登錄的示例講解

    下面小編就為大家分享一篇python實現(xiàn)校園網(wǎng)自動登錄的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python Pandas數(shù)據(jù)中對時間的操作

    Python Pandas數(shù)據(jù)中對時間的操作

    這篇文章主要介紹了Python Pandas數(shù)據(jù)中對時間的操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • python如何通過openpyxl讀寫Excel文件

    python如何通過openpyxl讀寫Excel文件

    python操作excel的庫有很多,有的庫只能讀取xsl格式,比如xlrd庫,有的庫只能寫xsl格式,比如xlwt庫,有的只能讀寫xslx格式,比如openpyxl庫,綜合各庫及 xslx 格式比較常見,所以本文主要講解openpyxl庫對xslx格式的excel操作,需要的朋友可以參考下
    2023-10-10
  • Python使用CuPy模塊實現(xiàn)高效數(shù)值計算

    Python使用CuPy模塊實現(xiàn)高效數(shù)值計算

    CuPy是一個基于Python的GPU加速計算庫,它提供了與NumPy相似的接口,可以在GPU上進行高效的數(shù)值計算,本文主要介紹一下CuPy的應用場景,并給出一些Python代碼案例,需要的可以參考下
    2024-02-02
  • python使用numpy尋找二維數(shù)組的最值及其下標方法分析

    python使用numpy尋找二維數(shù)組的最值及其下標方法分析

    這篇文章主要為大家介紹了python使用numpy尋找二維數(shù)組的最值及其下標實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • python 輸出列表元素實例(以空格/逗號為分隔符)

    python 輸出列表元素實例(以空格/逗號為分隔符)

    今天小編就為大家分享一篇python 輸出列表元素實例(以空格/逗號為分隔符),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python實現(xiàn)超市管理系統(tǒng)(后臺管理)

    python實現(xiàn)超市管理系統(tǒng)(后臺管理)

    這篇文章主要為大家詳細介紹了python實現(xiàn)超市管理系統(tǒng),增加后臺管理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python判斷一個list中是否包含另一個list全部元素的方法分析

    Python判斷一個list中是否包含另一個list全部元素的方法分析

    這篇文章主要介紹了Python判斷一個list中是否包含另一個list全部元素的方法,結(jié)合實例形式對比分析了Python針對列表list元素包含關系的相關轉(zhuǎn)換、判斷操作技巧,需要的朋友可以參考下
    2018-12-12
  • Django中Aggregation聚合的基本使用方法

    Django中Aggregation聚合的基本使用方法

    這篇文章主要給大家介紹了關于Django中Aggregation聚合的基本使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Django具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-07-07

最新評論