□各会社ごとの提供ファイルの仕様を確認
□PDFのPWを解除する
■PDFの各ページを画像として取り出す
□画像から対象箇所をマスキングする(OCRもできるはず)
・住所
・名前
□その画像をプレビューする(マスキングが正しいか)
■その画像を結合して1つの画像にする(ここでは不要)
□マスキングした画像をExcelにペーストするか、再PDFにする
□ExcelorPDFを保存する(PWも自動)
目次
PDFを画像に変換
# https://khufrudamonotes.com/pdf-to-image-python
'''
PdfToImage
├ image_file ←変換した画像ファイルが出力されるフォルダ
├ pdf_file ←変換したいpdfを入れるフォルダ
├ poppler ←ダウンロードしたpopplerの中身を入れるフォルダ
│ ├ bin
│ ├ include
│ ├ lib
│ └ share
└ pdf_to_image.py ←Pythonの実行ファイル
'''
import os
from pathlib import Path
from pdf2image import convert_from_path
import glob
parent = Path('/Users/〜/Desktop/PdfToImage')
dir_pdf_file = parent / Path('pdf_file')
dir_image_file = parent / Path('image_file')
for f_p in dir_pdf_file.glob('*.pdf'):
# pdfから画像に変換する
pages = convert_from_path(str(f_p), dpi=150)
for i, page in enumerate(pages):
file_name = f'{f_p.stem}_{i+1}.png'
image_path = dir_image_file / file_name
page.save(str(image_path), 'PNG')
画像ファイルを1つに結合する
- PPTXなどの一覧を確認したい場合に使える
# https://note.nkmk.me/python-pillow-concat-images/
from PIL import Image
import pathlib
p = pathlib.Path('/Users/〜/Desktop/PdfToImage/image_file')
im_list = [Image.open(f_p) for f_p in p.glob('*.png')]
def get_concat_v_blank(im1, im2, color=(0, 0, 0)):
dst = Image.new('RGB', (max(im1.width, im2.width), im1.height + im2.height), color)
dst.paste(im1, (0, 0))
dst.paste(im2, (0, im1.height))
return dst
def get_concat_v_multi_blank(im_list):
# 末尾から結合(pop(0)だと結合後に逆さまになる)
_im = im_list.pop(-1)
for im in im_list:
_im = get_concat_v_blank(_im, im)
return _im
get_concat_v_multi_blank(im_list).save('/Users/〜/Desktop/aaa/test2.png')