Skip to content

Latest commit

 

History

History
38 lines (38 loc) · 2.41 KB

3. PDF operations.md

File metadata and controls

38 lines (38 loc) · 2.41 KB

PDF operations

Library for PDF

import PyPDF2                                                 #importing PyPDF2 library
from PyPDF2 import PdfFileReader, PdfFileWriter               #importing reading and writing components

Merging 2 PDF files

pdf_list = ["path1","path2"]                                  #list of PDFs
write_obj = PdfFileWriter()                                   #the result file content
for i in pdf_list:                                            #for loop
  read_obj = PdfFileReader(i)                                 #reads first pdf
  pages = read_obj.getNumPages()                              #gets number of pages of that file
  for j in range(pages):                                      #nested for loop
    p = read_obj.getPage(j)                                   #gets the info in pages
    write_obj.addPage(p)                                      #adds that page in the resulting file's content
pdf_file = open("path of new file","wb")                      #opens/creates new pdf in "wb"(since pdf and not txt) mode
write_obj.write(pdf_file)                                     #transfers the resulting content to the new PDF file

Encrypting PDF file

write_obj.encrypt("userpassword","ownerpassword",True)        #True for 128 bit encryption otherwise 40 bit

Adding Watermark

pdf_obj = PdfFileReader("path")                               #file without watermark
watermark_obj = PdfFileReader("path")                         #watermark file
new_pdf = PdfFileWriter()                                     #the result file content
page_wm = watermark_obj.getPage(0)                            #gets first page of watermark
pages = pdf_obj_getNumPages()                                 #gets number of pages in first file
for i in range(pages):                                        #for loop
  page = pdf_obj.getPage(i)                                   #gets each page
  page.mergePage(page_wm)                                     #merges each page content with watermark content
  new_pdf.addPage(page)                                       #adds info to resulting file content
pdf_file = open("path of new file","wb")                      #oens/creates new pdf in "wb" mode
new_pdf.write(pdf_file)                                       #writes the resulting file content to new file
pdf_file.close()                                              #closes the file