Skip to content

Instantly share code, notes, and snippets.

@Lh4cKg
Created August 27, 2024 13:12
Show Gist options
  • Save Lh4cKg/1c674336c70f4eae8fda33a4af6d233f to your computer and use it in GitHub Desktop.
Save Lh4cKg/1c674336c70f4eae8fda33a4af6d233f to your computer and use it in GitHub Desktop.
Merge Pdf Files & Merger & Python
from pathlib import Path
from PyPDF2 import PdfMerger, PdfWriter, PdfReader
OUTPUT_FILE_NAME = 'Out File Name'
PDF_FILES = Path(f'/absolue_path/{OUTPUT_FILE_NAME}/').resolve()
PDF_FILE = PDF_FILES / f'{OUTPUT_FILE_NAME}.pdf'
def sort_by_enumeration(file):
name = file.name[0:2]
if name.endswith('.'):
name = name[:-1]
try:
return int(name) + 10
except ValueError:
return file.name
def pdf_merger(files):
merger = PdfMerger()
for file in sorted(files, key=sort_by_enumeration):
print(file.name)
if file.is_file and file.suffix == '.pdf':
merger.append(file)
merger.write(f'{OUTPUT_FILE_NAME}.pdf')
def remove_pages(in_file, pages):
reader = PdfReader(in_file, 'rb')
writer = PdfWriter()
for i in range(len(reader.pages)):
if i not in pages:
p = reader.pages[i]
writer.add_page(p)
with open(f'{COURSE}.pdf', 'wb') as f:
writer.write(f)
if __name__ == '__main__':
pdf_merger(PDF_FILES.iterdir())
del_pages = [
6, 7, 8, 11, 39, 47, 113, 132, 137, 205, 306, 361
]
del_pages1 = [i - 1 for i in del_pages]
remove_pages(PDF_FILE, del_pages1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment