pdf_merge.py 987 B

123456789101112131415161718192021222324252627282930
  1. from PyPDF2 import PdfMerger
  2. from pathlib import Path
  3. import re
  4. import json
  5. def pdf_merge(base_dir: str, report_name):
  6. report_prefix = re.sub(r'\[([^\]]+)\]', '', report_name)
  7. target = f"{base_dir}\\{report_prefix}_0.pdf"
  8. if Path(target).exists():
  9. Path(target).unlink()
  10. pdfs = [f for f in Path(base_dir).glob(report_prefix + '*.pdf')]
  11. if len(pdfs) > 0:
  12. with PdfMerger() as merger:
  13. for pdf in sorted(pdfs, key=lambda f: f.stat().st_mtime):
  14. merger.append(pdf)
  15. merger.write(target)
  16. def get_reports(config_dir, folder):
  17. filename = config_dir + '\\reports.json'
  18. reports = json.load(open(filename, 'r'))
  19. return [r['name'] for r in reports if r['path'].startswith(folder)]
  20. if __name__ == '__main__':
  21. reports = get_reports('C:\\GlobalCube\\Tasks\\gctools\\logs\\config', 'Team Content/ReportOutput')
  22. for r in reports:
  23. print(r)
  24. pdf_merge('C:\\GlobalCube\\ReportOutput\\raw', r)