import PyPDF2 #importing PyPDF2 library
from PyPDF2 import PdfFileReader, PdfFileWriter #importing reading and writing components
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
write_obj.encrypt("userpassword","ownerpassword",True) #True for 128 bit encryption otherwise 40 bit
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