from os import listdir
from os.path import join
import fitz,os
from PIL import Image
import shutil,time
fapiao= 'D:\\python\\发票\\1'
pngs = 'D:\\python\\发票\\2'
hebing = 'D:\\python\\发票\\3'
IMAGE_width = 1050
IMAGE_height = 1486
IMAGE_ROW = 2
IMAGE_COLUMN = 1
re_width = int(IMAGE_width / IMAGE_COLUMN)
re_height = int(IMAGE_height / IMAGE_ROW)
all_files = [fn for fn in listdir(fapiao)]
if not os.path.exists(pngs):
os.makedirs(pngs)
if not os.path.exists(hebing):
os.makedirs(hebing)
for fn in all_files:
if fn.endswith('pdf'):
pdf = fitz.Document(join(fapiao,fn))
page = pdf[0]
trans = fitz.Matrix(2.0, 2.0).prerotate(0)
pm = page.get_pixmap(matrix=trans, alpha=False)
img_path = join(pngs,fn.replace('pdf','png'))
print(img_path)
pm.save(img_path)
pdf.close()
"""
其它格式
elif fn.endswith('jpg'):
pm = Image.open(join(fapiao,fn))
pm.save(join(pngs,fn.replace('jpg','png')))
elif fn.endswith('png'):
shutil.copy(join(fapiao,fn),join(pngs,fn))
"""
k = 0
png_files = [fn for fn in listdir(pngs)]
for i in range(1,len(png_files)+1):
print(re_height)
from_image = Image.open(join(pngs , png_files[i-1])).resize((re_width, re_height),Image.ANTIALIAS)
if i % IMAGE_ROW == 1:
k = k + 1
filename = '%s-%s-%s-%s.png' % (time.localtime().tm_mday,time.localtime().tm_hour,time.localtime().tm_min,k)
to_image = Image.new('RGB', (IMAGE_width, IMAGE_height) , '#ffffff')
to_image.paste(from_image, (0, re_height*(i%IMAGE_ROW)))
to_image.save(join(hebing,filename))