123456789101112131415161718192021222324252627282930313233343536 |
- import config
- from PyPDF2 import PdfMerger
- from pathlib import Path
- import re
- import json
- def pdf_merge(base_dir: str, report_name):
- report_prefix = re.sub(r"\[([^\]]+)\]", "", report_name)
- target = f"{base_dir}/{report_prefix}_0.pdf"
- if Path(target).exists():
- Path(target).unlink()
- pdfs = [f for f in Path(base_dir).glob(report_prefix + "*.pdf")]
- if len(pdfs) > 0:
- with PdfMerger() as merger:
- for pdf in sorted(pdfs, key=lambda f: f.stat().st_mtime):
- merger.append(pdf)
- merger.write(target)
- def get_reports(reports_file, folder):
- with open(reports_file, "r") as frh:
- reports = json.load(frh)
- return [r["name"] for r in reports if r["path"].startswith(folder)]
- def merge_reports_in_folder(cfg: config.Config, folder="Team Content/ReportOutput"):
- reports = get_reports(cfg.cognos11.reports_file, folder)
- print(folder)
- for r in reports:
- print(r)
- pdf_merge(cfg.cognos11.reportoutput_dir, r)
- if __name__ == "__main__":
- merge_reports_in_folder(config.Config())
|