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

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

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

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

pip install fpdf

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

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

初始化PDF文檔對象

PDF = FPDF()

關(guān)閉自動分頁

PDF.set_auto_page_break(0)

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

path = r'C:/imgs'

遍歷圖片到數(shù)組

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

設(shè)置多少張圖片在PDF中占一頁

NUM = int(input('參數(shù)設(shè)置: 請輸入多少張圖片占用一頁: \n'))

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

width = int(input('參數(shù)設(shè)置: 請輸入每張圖片的寬度: \n'))
height = int(input('參數(shù)設(shè)置: 請輸入每張圖片的高度: \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)換完成!')

實現(xiàn)效果圖

補充

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

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

from PIL import Image
import os
import img2pdf

flag = False
while not flag:
    dirname = input("請輸入圖片文件夾所在路徑(例如d:/wlzcool):")
    flag = os.path.exists(dirname)
    if not flag:
        print("圖片文件夾所在路徑不存在!")
saveflag = False
while not saveflag:
    savedirname = input("請輸入目標圖片文件夾所在路徑(例如d:/wlzcool2):")
    saveflag = os.path.exists(savedirname)
    if not saveflag:
        print("圖片文件夾所在路徑不存在!")
        automakedir = input("是否自動創(chuàng)建對應(yīng)文件夾?(是Y/否N):")
        if automakedir.strip().upper() == "Y":
            os.makedirs(savedirname)
            saveflag = True
files = os.listdir(dirname)
reductionFactor = int(input("請輸入長寬壓縮比(例如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("請輸入輸出文件名(例如:第一章):")
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自動化辦公之圖片轉(zhuǎn)PDF的實現(xiàn)的文章就介紹到這了,更多相關(guān)Python圖片轉(zhuǎn)PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論