当前位置: 首页 > 科技观察

太实用了!Python将多张图片合成为PDF格式!

时间:2023-03-14 16:44:26 科技观察

在macOS系统下,预览软件可以轻松做到这一点。同时打开图片到预览窗口,点击导出PDF,导出成功。但是Windows系统并没有这么方便的软件来实现这一点。网上有很多合成PDF的网站,但是这些网站无一例外都需要上传PDF进行合成,在我看来是非常不安全的。因此,最安全的方式是编写Python脚本来实现合成功能。一、准备工作请选择以下任意一种方式输入命令安装依赖项:1、Windows环境打开Cmd(开始-运行-CMD)。2.在MacOS环境下,打开Terminal(command+空格进入Terminal)。3.如果你使用的是VSCode编辑器或者Pycharm,可以直接使用界面下方的Terminal.pipinstallpillow。2.组成原理Pillow模块,即PIL:PythonImagingLibrary,已经是Python平台上事实上的图像处理标准库。PIL非常强大,但是API非常简单易用。通过它,我们可以轻松地操作图像并将它们导出为不同的格式。我们从一个简单的例子开始,我们将打开一张图片并保存为pdf格式:fromPILimportImageimportosdefconvert_img_pdf(filepath,output_path):"""将图片转换为pdf格式args:filepath(str):文件路径output_path(str):输出路径"""output=Image.open(filepath)output.save(output_path,"pdf",save_all=True)if__name__=="__main__":convert_img_pdf("1.jpeg","./test.pdf")用一张图片测试一下:运行代码后,成功转换成PDF文件:几行代码就完成了转换,比那些上传照片到云端的网站安全多了.3.多张照片合并为PDF有了照片转PDF的基础知识,下面的多张照片合并为PDF的代码就很容易看懂了。实际上,使用了.save的一个特殊参数append_images:output.save(pdfFilePath,"pdf",save_all=True,append_images=sources)通过将所有图像存储在一个"sources"数组中,我们可以轻松地将这些图像合成为PDF.fromPILimportImageimportosdefcombine_imgs_pdf(folder_path,pdf_file_path):"""合并文件夹中的所有图像都是pdfArgs:folder_path(str):源文件夹pdf_file_path(str):输出路径"""files=os.listdir(folder_path)png_files=[]sources=[]forfileinfiles:如果文件中有“png”或文件中有“jpg”:png_files.append(folder_path+file)png_files.sort()output=Image.open(png_files[0])png_files.pop(0)对于png_files中的文件:png_file=Image.open(file)ifpng_file.mode=="RGB":png_file=png_file.convert("RGB")sources.append(png_file)output.save(pdf_file_path,"pdf",save_all=True,append_images=sources)if__name__=="__main__":folder=r"G:\certificate\\"pdfFile=r"G:\certificate\IDcard.pdf"combine_imgs_pdf(文件夹,pdfFile)这样,只要将证件照放在一个文件夹中,运行这段Python代码,它就可以自动将这些证件照合成为PDF,并输出到你指定的路径中。非常简单方便。有需要的朋友,照着代码试试吧!读一百遍,读一千遍,还不如自己打字!