Python将多张图片组成pdf
2020-02-26 本文已影响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()