Python多图片合并PDF的方法

yipeiwu_com5年前Python基础

python多图片合并pdf

起因

一个做美工的朋友需要将多个图片jpg 、png 合并起来,PS操作太慢了所以用了python进行完成这个任务

代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : 2.py
# @Author: huifer
# @Date : 2018/12/20
from PIL import Image
import os
def rea(pdf_name):
  file_list = os.listdir('.')
  pic_name = []
  im_list = []
  for x in file_list:
    if "jpg" in x or 'png' in x or 'jpeg' in x:
      pic_name.append(x)
  pic_name.sort()
  new_pic = []
  for x in pic_name:
    if "jpg" in x:
      new_pic.append(x)
  for x in pic_name:
    if "png" in x:
      new_pic.append(x)
  print("hec", new_pic)
  im1 = Image.open(new_pic[0])
  new_pic.pop(0)
  for i in new_pic:
    img = Image.open(i)
    # im_list.append(Image.open(i))
    if img.mode == "RGBA":
      img = img.convert('RGB')
      im_list.append(img)
    else:
      im_list.append(img)
  im1.save(pdf_name, "PDF", resolution=100.0, save_all=True, append_images=im_list)
  print("输出文件名称:", pdf_name)
if __name__ == '__main__':
  tttt = """
 _____ _____ _____  _______ ____  _____ _____ ______ 
 | __ \_  _/ ____| |__  __/ __ \ | __ \| __ \| ____|
 | |__) || || |     | | | | | | | |__) | | | | |__  
 | ___/ | || |     | | | | | | | ___/| | | | __| 
 | |  _| || |____   | | | |__| | | |  | |__| | |   
 |_|  |_____\_____|  |_| \____/ |_|  |_____/|_|   
"""
  print(tttt)
  print("合成")
  pdf_name = input("请输入合成PDF文件名称:")
  if ".pdf" in pdf_name:
    rea(pdf_name=pdf_name)
  else:
    rea(pdf_name="{}.pdf".format(pdf_name))
  input("按任意键结束")

合成后

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对【听图阁-专注于Python设计】的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

一篇文章快速了解Python的GIL

一篇文章快速了解Python的GIL

前言:博主在刚接触Python的时候时常听到GIL这个词,并且发现这个词经常和Python无法高效的实现多线程划上等号。本着不光要知其然,还要知其所以然的研究态度,博主搜集了各方面的资料...

python调用cmd复制文件代码分享

复制代码 代码如下:import os def load() :    filename = os.getcwd() + r'\fromto.txt'&nb...

Python中逗号的三种作用实例分析

本文实例讲述了Python中逗号的三种作用。分享给大家供大家参考。具体分析如下: 最近研究python  遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中...

python使用协程实现并发操作的方法详解

本文实例讲述了python使用协程实现并发操作的方法。分享给大家供大家参考,具体如下: 协程 协程是一种用户态的轻量级线程,又称微线程。 协程拥有自己的寄存器上下文和栈,调度切换时,将寄...

浅谈django model postgres的json字段编码问题

django model的json字段的编码器不能有效编码诸如uuid,datetime等数据类型,当直接存储此类型的对象到json字段中为抛出编码异常,这时可以通过JSONField字...