之前同事找图片转pdf的软件,想着之前做过一个命令行的, 于是想写成一个界面工具。
之前代码写的用的是img2pdf。本来想着也用这个库,实际测试下来发现很多问题。弃用。google了下,发现有人用Pillow完成这个功能,于是改了下代码,加上pyqt5,就写成了一个简单的界面工具
核心代码
def cover_to_pdf(self, pdf_path, images):
images = copy.deepcopy(images)
resize_page_size = tuple(self.resize_page_size)
page_size = tuple(self.page_size)
a4im = Image.new('RGB',
page_size,
(255, 255, 255))
first_image = images.pop(0)
img = Image.open(first_image)
img = img.convert('RGB')
image_resize = self.get_resize(resize_page_size[0], resize_page_size[1], img.size[0], img.size[1])
img = img.resize(image_resize, Image.ANTIALIAS)
image_site = int(self.page_size[0] - image_resize[0]) // 2, int(self.page_size[1] - image_resize[1]) // 2
a4im.paste(img, image_site)
other_images = []
for i in images:
a4im2 = Image.new('RGB',
page_size,
(255, 255, 255))
img_2 = Image.open(i)
img_2 = img_2.convert('RGB')
image_resize = self.get_resize(resize_page_size[0], resize_page_size[1], img_2.size[0], img_2.size[1])
img_2 = img_2.resize(image_resize, Image.ANTIALIAS)
image_site = int(self.page_size[0] - image_resize[0]) // 2, int(self.page_size[1] - image_resize[1]) // 2
# print("self.image_site", image_site)
a4im2.paste(img_2, image_site)
other_images.append(a4im2)
a4im.save(pdf_path, save_all=True, append_images=other_images)
代码看着冗余,懒得改了。
exe下载地址:download url
代码:https://github.com/woshimanong1990/image_to_pdf
补充:
建了一个qq群:389954854,主要目的是互帮互助,通过交流促进python技术。很多初学者往往不知道如何下手,还等什么,快快加入进来吧!
或者关注微信公众号:python码码有趣的