I have a lot of images, but if I try to back them up as they are, the transfer time is slow, probably because it becomes a random wallet. So I decided to make it a sequential file. Even if you try to zip it, the upper limit is 4GB. If you try to make all one file using 7zip, it is too big and difficult to handle Even if you try to convert from a batch file at once, some folders may not be created properly due to bad folder names. Then I searched for a program with the intention of converting it to pdf.
Convert multiple images to PDF file with python I found this, but it was a little difficult to use.
This program is a little easier to use. The basic code remains the same.
Image summary
├── 2015
│ ├── img1.jpg
│ ├── img2.jpg
│ ├── img3.jpg
├── 2016
│ ├── img10.jpg
│ ├── img11.jpg
│ ├── img12.jpg
├── 20170
│ ├── img21.jpg
│ ├── img22.jpg
│ ├── img23.jpg
├── 2018
│ ├── img42.jpg
│ ├── img125.jpg
│ ├── img1000.jpg
When there was such a folder
Image summary
├── 2015.pdf
├── 2016.pdf
├── 2017.pdf
├── 2018.pdf
Use this when you want to convert to pdf at once.
Anaconda python3.7 windows10 Probably does not work on mac, Linux
pip install img2pdf
makingpdf1.1.py
import img2pdf
from pathlib import Path
#Single processing
def ImageToPdf(outputpath, imagepath):
'''
outputpath: pathlib.Path()
imagepath: pathlib.Path()
'''
lists = list(imagepath.glob("**/*"))#Search in a single folder
#Create pdf
with open(outputpath,"wb") as f:
#jpg,Combine only png files into pdf
#Pathlib.WindowsPath()Error if not converted to string type
f.write(img2pdf.convert([str(i) for i in lists if i.match("*.jpg ") or i.match("*.png ") or i.match("*.jpeg ")]))
print(outputpath.name + " :Done")
#Loop through multiple folders
while True:
#Working folder
base_path = input("Folder d&P")
base_path = base_path.strip(" \' ")
#Extract only the directories in the working folder
glob = Path(base_path).glob("*")
imagefolderlist = list([item for item in list(glob) if item.is_dir()])
#Specify the same name as the specified directory in outputpath
outputpathlist = list([item.with_name(item.name + ".pdf") for item in imagefolderlist])
#Perform loop processing
for outputpath,imagepath in zip(outputpathlist,imagefolderlist):
try:
ImageToPdf(outputpath,imagepath)
except:
pass
Convert multiple images to PDF file with python In this program, only one folder can be specified, and the path must be written in advance, which is difficult to use. Therefore, I dragged and dropped the folder so that it could be converted more and more. Also, since it did not support the .jpeg extension, it was supported.
Image summary
├── 2015
│ ├── img1.jpg
│ ├── img2.jpg
│ ├── img3.jpg
├── 2016
│ ├── img10.jpg
│ ├── img11.jpg
│ ├── img12.jpg
├── 20170
│ ├── img21.jpg
│ ├── img22.jpg
│ ├── img23.jpg
├── 2018
│ ├── img42.jpg
│ ├── img125.jpg
│ ├── img1000.jpg
When there was such a folder
When you run the code
Folder d&P
Will appear, so drag and drop the folder ___ that contains the folder you want to make into ___pdf and press enter. In the above example, drag and drop the "Image Summary" folder instead of the "2018" folder where you want to convert the contents to pdf. Then, pdf will be created in the "Image Summary" folder.
In the case of png file, it cannot be converted to pdf if it contains an alpha channel.
Useful when converting images divided by folders to pdf at once.
Recommended Posts