0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python如何合成多張圖片到PDF格式

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-30 10:33 ? 次閱讀

在日常生活中,經(jīng)常會(huì)遇到需要提交身份證正反面證明資料的情況,而且這些網(wǎng)站大部分只接受pdf格式,這時(shí)候我們就需要把身份證正反面兩張圖片合成為一個(gè)pdf文件。

在macOS系統(tǒng)下,預(yù)覽軟件可以輕松做到這一點(diǎn),同時(shí)打開圖片到一個(gè)預(yù)覽窗口下,點(diǎn)擊導(dǎo)出PDF就能成功導(dǎo)出。但是Windows系統(tǒng)就沒有這么方便的軟件可以實(shí)現(xiàn)這一點(diǎn),網(wǎng)上有很多合成PDF的網(wǎng)站,但是這些網(wǎng)站無一例外需要上傳PDF進(jìn)行合成,個(gè)人認(rèn)為非常地不安全。

因此,最安全的方法,還是我們自己寫一個(gè)Python腳本實(shí)現(xiàn)合成功能。

1.準(zhǔn)備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install pillow

2.合成原理

Pillow模塊,即PIL:Python Imaging Library,已經(jīng)是Python平臺事實(shí)上的圖像處理標(biāo)準(zhǔn)庫了。PIL功能非常強(qiáng)大,但API卻非常簡單易用。通過它,我們能很輕松地操作圖像,并導(dǎo)出為不同格式。

首先來一個(gè)簡單的示例,我們將打開一張圖片,并將其保存為pdf格式:

from PIL import Image
import os


def convert_img_pdf(filepath, output_path):
    """
    轉(zhuǎn)換圖片為pdf格式

    Args:
        filepath (str): 文件路徑
        output_path (str): 輸出路徑
    """
    output = Image.open(filepath)
    output.save(output_path, "pdf", save_all=True)
    
    
if __name__ == "__main__":
    convert_img_pdf("1.jpeg", "./test.pdf")

幾行代碼便完成了這個(gè)轉(zhuǎn)換,這個(gè)可比那些把照片上傳到云端的網(wǎng)站安全多了。

3.多張照片合成PDF

有了前面照片轉(zhuǎn)化PDF的基礎(chǔ)知識,想要理解下面的多圖合成PDF的代碼就非常簡單了。

其實(shí)就是使用了.save的一個(gè)特殊參數(shù) append_images:

output.save(pdfFilePath, "pdf", save_all=True, append_images=sources)

通過把圖片都存入到一個(gè)"sources"數(shù)組中,我們就能很輕易地合成這些圖像到PDF中。

from PIL import Image
import os

def combine_imgs_pdf(folder_path, pdf_file_path):
    """
    合成文件夾下的所有圖片為pdf

    Args:
        folder_path (str): 源文件夾
        pdf_file_path (str): 輸出路徑
    """
    files = os.listdir(folder_path)
    png_files = []
    sources = []
    for file in files:
        if 'png' in file or 'jpg' in file:
            png_files.append(folder_path + file)
    png_files.sort()

    output = Image.open(png_files[0])
    png_files.pop(0)
    for file in png_files:
        png_file = Image.open(file)
        if png_file.mode == "RGB":
            png_file = png_file.convert("RGB")
        sources.append(png_file)
    output.save(pdf_file_path, "pdf", save_all=True, append_images=sources)

if __name__ == "__main__":
    folder = r"G:證件"
    pdfFile = r"G:證件身份證.pdf"
    combine_imgs_pdf(folder, pdfFile)

這樣,只要將你的證件照都放在一個(gè)文件夾中,運(yùn)行這個(gè)Python代碼,它就能自動(dòng)將這些證件合成到一個(gè)PDF中,并輸出到你指定的路徑。非常簡單方便。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 網(wǎng)站
    +關(guān)注

    關(guān)注

    1

    文章

    256

    瀏覽量

    23060
  • PDF
    PDF
    +關(guān)注

    關(guān)注

    1

    文章

    166

    瀏覽量

    33570
  • 數(shù)據(jù)分析
    +關(guān)注

    關(guān)注

    2

    文章

    1393

    瀏覽量

    33909
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84077
收藏 人收藏

    評論

    相關(guān)推薦

    LCD如何顯示多張圖片

    多張圖片數(shù)組太大,編譯不通過,所以如何燒寫到nandflash中?
    發(fā)表于 01-09 14:31

    怎么把多個(gè)圖片合成一個(gè)控件

    `合成后,點(diǎn)那個(gè)控件有多張圖片能選擇,這怎么弄`
    發(fā)表于 06-01 13:02

    pdf轉(zhuǎn)換成jpg格式的快速轉(zhuǎn)換方法

    `  看到自己的圖片正想另存為的時(shí)候發(fā)現(xiàn)該圖片保存在pdf格式里。遇到這種情況相信大多數(shù)朋友都會(huì)抓狂吧,不知道該怎樣不損畫質(zhì)的將圖片保存下來
    發(fā)表于 10-28 11:27

    jpg轉(zhuǎn)換成pdf格式該如何轉(zhuǎn)換比較簡便

    `  jpg轉(zhuǎn)換成pdf文件的簡單步驟?我們現(xiàn)在生活在一個(gè)效率時(shí)代,為了工作上的需要,都會(huì)學(xué)習(xí)很多新的技能,像是文件轉(zhuǎn)換,這就是我們每天會(huì)遇到的問題!平時(shí)我們儲(chǔ)存資料都會(huì)越來越多,像是圖片格式
    發(fā)表于 11-01 15:42

    labview機(jī)器視覺中對多張圖片的離線處理。

    有時(shí)候我們拍了一大組圖片,我們可以利用查找范例中NI 連續(xù)對圖片處理的方法來進(jìn)行,也可以自己編寫簡單的小程序來實(shí)現(xiàn)對多張圖片的處理來看實(shí)際效果,放個(gè)截圖給大家參考一下。
    發(fā)表于 12-17 19:35

    手機(jī)里jpg格式圖片能轉(zhuǎn)換成pdf格式

    PDF轉(zhuǎn)換器”。迅捷PDF轉(zhuǎn)換器可方便的將各種流行的圖片文件格式如JPG,BMP,TIF,PNG,GIF等轉(zhuǎn)換成PDF文件。只需要將您的JP
    發(fā)表于 03-21 14:15

    圖片格式轉(zhuǎn)換成ICON格式是怎么轉(zhuǎn)換的

    先打開電腦瀏覽器,然后輸入迅捷pdf在線編輯。然后選擇網(wǎng)頁中的pdf轉(zhuǎn)換,再選擇圖片轉(zhuǎn)換,之后再上傳我們想要更改格式圖片,就可以對
    發(fā)表于 07-06 15:54

    圖片設(shè)計(jì)圖紙PDF格式如何轉(zhuǎn)DWG格式

    一般我們在做建筑、工程和機(jī)械等行業(yè),都會(huì)使用的圖紙和圖片設(shè)計(jì)等。在圖紙或圖片的設(shè)計(jì)使用中,經(jīng)常就會(huì)要進(jìn)行格式的轉(zhuǎn)換,pdf轉(zhuǎn)dwg格式就是其
    發(fā)表于 07-19 11:43

    利用PythonPDF轉(zhuǎn)化為圖片的方法

    python的功能真是強(qiáng)大,可以做詞云圖、可以優(yōu)雅地八卦、可以做游戲外掛、還可以將PDF轉(zhuǎn)化成圖片,這個(gè)功能你還不知道吧,趕緊隨小編我一起來看看吧:之前收集了很多優(yōu)秀的 PDF文檔,但
    發(fā)表于 07-11 17:37

    安卓系統(tǒng)如何查看HEIC格式圖片

    進(jìn)去。? ? ? ? 3.等待添加完成,這界面中我們可以預(yù)覽剛剛添加的HEIC文件,接下來就是進(jìn)行轉(zhuǎn)換的設(shè)置了,在輸出格式選項(xiàng)中我們可以選擇JPG、PNG、BMP格式。? ? ? ? 4.還可以對轉(zhuǎn)換后
    發(fā)表于 08-08 17:32 ?1037次閱讀

    HEIC格式圖片怎么打開?電腦如何打開HEIC圖片

    ? ? ? ? ?HEIC格式是蘋果手機(jī)專有的圖片格式,只有蘋果手機(jī)可以打開,想要打開HEIC格式要用到轉(zhuǎn)換成萬能的jpg等格式,那HEIC格式
    發(fā)表于 08-22 18:30 ?568次閱讀

    HEIC格式圖片怎么打開?電腦如何打開HEIC圖片?

    ,我們可以看到添加圖片按鈕,點(diǎn)擊將需要轉(zhuǎn)換的HEIC文件添加進(jìn)去。? ? ?3.等待添加完成,這界面中我們可以預(yù)覽剛剛添加的HEIC文件,接下來就是進(jìn)行轉(zhuǎn)換的設(shè)置了,在輸出格式選項(xiàng)中我們可以選擇JPG
    發(fā)表于 08-22 18:31 ?556次閱讀

    HEIC格式圖片轉(zhuǎn)換器有哪些

    可以看到添加圖片按鈕,點(diǎn)擊將需要轉(zhuǎn)換的HEIC文件添加進(jìn)去。? ? ?3.等待添加完成,這界面中我們可以預(yù)覽剛剛添加的HEIC文件,接下來就是進(jìn)行轉(zhuǎn)換的設(shè)置了,在輸出格式選項(xiàng)中我們可以選擇JPG
    發(fā)表于 09-06 18:28 ?397次閱讀

    PDF文件如何轉(zhuǎn)換為PNG,重點(diǎn)在于輸出圖片格式

    PDF文件怎么轉(zhuǎn)換成PNG?PNG是圖片格式的一種,和其他格式最大的區(qū)別在于PNG是一種無損壓縮的為圖片格式。支持真實(shí)色彩和阿爾法通道的P
    發(fā)表于 05-27 11:00 ?4891次閱讀
    <b class='flag-5'>PDF</b>文件如何轉(zhuǎn)換為PNG,重點(diǎn)在于輸出<b class='flag-5'>圖片格式</b>

    Python基本格式

    Python 初識 1. Python基本格式 縮進(jìn)風(fēng)格 恰當(dāng)?shù)目崭?,縮進(jìn)問題 邏輯行首的空白(空格和制表符)用來決定邏輯行的縮進(jìn)層次,從而用來決定語句的分組。 語句從新行的第一列開始。 縮進(jìn)風(fēng)格
    的頭像 發(fā)表于 03-05 17:06 ?2679次閱讀
    <b class='flag-5'>Python</b>基本<b class='flag-5'>格式</b>