美文网首页
Python将多张图片组成pdf

Python将多张图片组成pdf

作者: 几时见得清梦 | 来源:发表于2020-02-26 12:02 被阅读0次

安装packages:
pip install fitz
pip install PyPDF2

import fitz
import os
import cv2
import PyPDF2


def pic2pdf():
    doc = fitz.open()
    imgs = os.listdir('pic2pdf')
    for i in range(len(imgs)):
        img = os.path.join('pic2pdf', f'{i+1}.jpg')
        print(img)
        imgdoc = fitz.open(img)                 # 打开图片
        pdfbytes = imgdoc.convertToPDF()        # 使用图片创建单页的 PDF
        imgpdf = fitz.open("pdf", pdfbytes)
        doc.insertPDF(imgpdf)                   # 将当前页插入文档
    if os.path.exists("maitu.pdf"):
        os.remove("maitu.pdf")
    doc.save("maitu.pdf")                   # 保存pdf文件
    doc.close()


def rotate_pdf():

    # 输入文件
    getFile = open('maitu.pdf', 'rb')
    pdfReader = PyPDF2.PdfFileReader(getFile)
    pdfWriter = PyPDF2.PdfFileWriter()

    for i in range(17):
        page = pdfReader.getPage(i)
        if i in [5, 10, 13]:
            # 页面旋转90度
            page.rotateClockwise(90)
        pdfWriter.addPage(page)

    # 输出文件
    outFile = open('rotate.pdf', 'wb')
    pdfWriter.write(outFile)
    outFile.close()


def resize_img():
    img_dir = 'pic2pdf'
    img_names = os.listdir(img_dir)
    for i in range(len(img_names)):
        img_path = os.path.join('pic2pdf', f'{i+1}.jpg')
        img = cv2.imread(img_path)
        res = cv2.resize(img, (4002, 3002))
        cv2.imwrite(img_path, res)


if __name__ == '__main__':
    pic2pdf()

相关文章

网友评论

      本文标题:Python将多张图片组成pdf

      本文链接:https://www.haomeiwen.com/subject/tmrmchtx.html