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

Python自動(dòng)化辦公之圖片轉(zhuǎn)PDF的實(shí)現(xiàn)

 更新時(shí)間:2022年04月14日 07:57:03   作者:Python 集中營(yíng)  
實(shí)現(xiàn)圖片轉(zhuǎn)換成PDF文檔的操作方法有很多,綜合對(duì)比以后感覺fpdf這個(gè)模塊用起來比較方便而且代碼量相當(dāng)少。所以本文將利用Python語言實(shí)現(xiàn)圖片轉(zhuǎn)PDF,感興趣的可以了解一下

安裝的方式很常規(guī),直接使用pip安裝就行了。

pip install fpdf

將需要使用的三方模塊導(dǎo)入進(jìn)來

from fpdf import FPDF  # PDF文檔對(duì)象操作庫
import os  # 文件路徑操作庫

初始化PDF文檔對(duì)象

PDF = FPDF()

關(guān)閉自動(dòng)分頁

PDF.set_auto_page_break(0)

設(shè)置需要轉(zhuǎn)換的批量圖片路徑

path = r'C:/imgs'

遍歷圖片到數(shù)組

images = [i for i in os.listdir(path)]

設(shè)置多少?gòu)垐D片在PDF中占一頁

NUM = int(input('參數(shù)設(shè)置: 請(qǐng)輸入多少?gòu)垐D片占用一頁: \n'))

設(shè)置圖片的寬度和高度

width = int(input('參數(shù)設(shè)置: 請(qǐng)輸入每張圖片的寬度: \n'))
height = int(input('參數(shù)設(shè)置: 請(qǐng)輸入每張圖片的高度: \n'))

遍歷圖片并向文檔中添加圖片

for index, image in enumerate(images):
    if index == 0:
        PDF.add_page()
    elif index % NUM == 0:
        PDF.add_page()
    PDF.image(os.path.join(path, image), w=width, h=height)

保存PDF文檔

PDF.output(os.path.join(path, "圖片文檔.pdf"), "F")

print('圖片到PDF轉(zhuǎn)換完成!')

實(shí)現(xiàn)效果圖

補(bǔ)充

當(dāng)然Python還能實(shí)現(xiàn)多張圖片合并轉(zhuǎn)PDF格式

下面是實(shí)現(xiàn)的示例代碼

from PIL import Image
import os
import img2pdf

flag = False
while not flag:
    dirname = input("請(qǐng)輸入圖片文件夾所在路徑(例如d:/wlzcool):")
    flag = os.path.exists(dirname)
    if not flag:
        print("圖片文件夾所在路徑不存在!")
saveflag = False
while not saveflag:
    savedirname = input("請(qǐng)輸入目標(biāo)圖片文件夾所在路徑(例如d:/wlzcool2):")
    saveflag = os.path.exists(savedirname)
    if not saveflag:
        print("圖片文件夾所在路徑不存在!")
        automakedir = input("是否自動(dòng)創(chuàng)建對(duì)應(yīng)文件夾?(是Y/否N):")
        if automakedir.strip().upper() == "Y":
            os.makedirs(savedirname)
            saveflag = True
files = os.listdir(dirname)
reductionFactor = int(input("請(qǐng)輸入長(zhǎng)寬壓縮比(例如3):"))
if reductionFactor <= 0:
    reductionFactor = 3
isConvertBlack = input("是否輸出黑白版本?(是Y/否N):").strip().upper() == "Y"
for fname in files:
    if not fname.endswith(".jpg"):
        continue
    path = os.path.join(dirname, fname)
    savePath = os.path.join(savedirname, fname)
    if os.path.isdir(path):
        continue
    img = Image.open(path)    
    if img.size[0] > img.size[1]:
        im_rotate = img.rotate(90, expand=True)
        size = (int(im_rotate.size[0] / reductionFactor), int(im_rotate.size[1] / reductionFactor))
        im_rotate = im_rotate.resize(size)
        if isConvertBlack:
            im_rotate = im_rotate.convert("L")
        im_rotate.save(savePath, quality=95)
    else:
        size = (int(img.size[0] / reductionFactor), int(img.size[1] / reductionFactor))
        img = img.resize(size)
        if isConvertBlack:
            img = img.convert("L")
        img.save(savePath, quality=95)
filename = input("請(qǐng)輸入輸出文件名(例如:第一章):")
with open(filename + ".pdf", "wb") as f:
    imgs = []
    files = os.listdir(savedirname)
    for fname in files:
        if not fname.endswith(".jpg"):
            continue
        path = os.path.join(savedirname, fname)
        if os.path.isdir(path):
            continue
        imgs.append(path)
    f.write(img2pdf.convert(imgs))

到此這篇關(guān)于Python自動(dòng)化辦公之圖片轉(zhuǎn)PDF的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python圖片轉(zhuǎn)PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • TensorFlow如何實(shí)現(xiàn)反向傳播

    TensorFlow如何實(shí)現(xiàn)反向傳播

    這篇文章主要為大家詳細(xì)介紹了TensorFlow如何實(shí)現(xiàn)反向傳播,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • python3 QT5 端口轉(zhuǎn)發(fā)工具兩種場(chǎng)景分析

    python3 QT5 端口轉(zhuǎn)發(fā)工具兩種場(chǎng)景分析

    這篇文章主要介紹了python3 QT5 端口轉(zhuǎn)發(fā)工具,功能是打開本機(jī)端口,映射到指定IP的端口,接下來通過兩種場(chǎng)景給大家詳細(xì)介紹,感興趣的朋友一起看看吧
    2022-01-01
  • Python中使用json.load()和json.loads()加載json數(shù)據(jù)的方法實(shí)例

    Python中使用json.load()和json.loads()加載json數(shù)據(jù)的方法實(shí)例

    在python編程中,我們經(jīng)常要用到j(luò)son對(duì)象作為數(shù)據(jù)交換格式,下面這篇文章主要給大家介紹了關(guān)于Python中使用json.load()和json.loads()加載json數(shù)據(jù)的方法實(shí)例,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • python sys,os,time模塊的使用(包括時(shí)間格式的各種轉(zhuǎn)換)

    python sys,os,time模塊的使用(包括時(shí)間格式的各種轉(zhuǎn)換)

    這篇文章主要介紹了python sys,os,time模塊的使用(包括時(shí)間格式的各種轉(zhuǎn)換),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • 解決tensorflow由于未初始化變量而導(dǎo)致的錯(cuò)誤問題

    解決tensorflow由于未初始化變量而導(dǎo)致的錯(cuò)誤問題

    今天小編就為大家分享一篇解決tensorflow由于未初始化變量而導(dǎo)致的錯(cuò)誤問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Matplotlib條形圖之分組條形圖和堆疊條形圖詳解

    Matplotlib條形圖之分組條形圖和堆疊條形圖詳解

    這篇文章主要為大家詳細(xì)介紹了Matplotlib條形圖之分組條形圖和堆疊條形圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python中的反射知識(shí)點(diǎn)總結(jié)

    Python中的反射知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于Python中的反射知識(shí)點(diǎn)總結(jié)內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-11-11
  • python繪圖庫Matplotlib的安裝

    python繪圖庫Matplotlib的安裝

    這篇文章主要介紹了python庫繪圖Matplotlib的安裝,需要的朋友可以參考下
    2014-07-07
  • Kotlin 中的 apply 函數(shù)用法詳解

    Kotlin 中的 apply 函數(shù)用法詳解

    apply 函數(shù)是 Kotlin 中一個(gè)十分方便的工具,它使得對(duì)對(duì)象進(jìn)行初始化和配置變得更加簡(jiǎn)潔、清晰,通過與 Java 的對(duì)比,我們可以看出 Kotlin 在處理類似情況時(shí)具有更高的表現(xiàn)力和簡(jiǎn)潔性,本文給大家介紹Kotlin apply 函數(shù)的用法,感興趣的朋友一起看看吧
    2024-03-03
  • Python plt.imshow函數(shù)及其參數(shù)使用

    Python plt.imshow函數(shù)及其參數(shù)使用

    plt.imshow()是Matplotlib庫中的一個(gè)函數(shù),主要用于顯示圖像或矩陣數(shù)據(jù),本文主要介紹了Python plt.imshow函數(shù)及其參數(shù)使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02

最新評(píng)論