-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathsplitpages.py
More file actions
55 lines (40 loc) · 1.87 KB
/
splitpages.py
File metadata and controls
55 lines (40 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from PyPDF2 import PdfWriter, PdfReader
# Rotate all pages in a PDF 180 degrees clockwise and save as a new file
def rotate_pages(filename):
try:
with open(filename, 'rb') as pdf_in:
reader = PdfReader(pdf_in)
writer = PdfWriter()
for page in reader.pages:
page.rotate(180) # Rotate page 180 degrees clockwise
writer.add_page(page)
output_file = filename[:-4] + "_rotated.pdf"
with open(output_file, 'wb') as pdf_out:
writer.write(pdf_out)
print(f"Rotation complete: {output_file}")
except Exception as e:
print(f"Error: rotation failed – {e}")
# Split PDF into two parts after a given page number
def split_pdf(filename, split_after_page):
try:
with open(filename, "rb") as file:
pdf_reader = PdfReader(file)
if split_after_page >= len(pdf_reader.pages):
raise ValueError("Split page number exceeds total pages")
pdf_writer1 = PdfWriter()
pdf_writer2 = PdfWriter()
# Add pages up to split_after_page (exclusive) to first part
for page_num in range(split_after_page):
pdf_writer1.add_page(pdf_reader.pages[page_num])
# Add remaining pages to second part
for page_num in range(split_after_page, len(pdf_reader.pages)):
pdf_writer2.add_page(pdf_reader.pages[page_num])
out1 = f'{filename[:-4]}_part_1.pdf'
out2 = f'{filename[:-4]}_part_2.pdf'
with open(out1, 'wb') as file1:
pdf_writer1.write(file1)
with open(out2, 'wb') as file2:
pdf_writer2.write(file2)
print(f"Split complete: {out1}, {out2}")
except Exception as e:
print(f"Error splitting PDF: {e}")