You are on page 1of 8

16.

Write a program to demonstrate creating, encrypting, decrypting, merging and rotating pages

with respect to pdf

import PyPDF2

print("Menu\n1)Create\n2)Encrypt\n3)Decrypt\n4)Merge\n5)Rotate page\n6)Exit\n")
choice= int(input("Enter your choice"))
if(choice == 1):
    r1 = open('orpdf1.pdf', 'rb')
    r2 = PyPDF2.PdfFileReader(r1)
    pw = PyPDF2.PdfFileWriter()
    for pageNum in range(len(r2.pages)):
        pageObj = r2.pages[pageNum]
        pw.addPage(pageObj)
    pdfOutputFile = open('newpdf.pdf', 'wb')
    pw.write(pdfOutputFile)
    pdfOutputFile.close()
    r1.close()
 
elif (choice == 2):
    pdfFile = open('orpdf1.pdf', 'rb')
    pdfReader = PyPDF2.PdfFileReader(pdfFile)
    pdfWriter = PyPDF2.PdfFileWriter()
    for pageNum in range (len(pdfReader.pages)):
        pdfWriter.addPage(pdfReader.pages[pageNum])
    pdfWriter.encrypt('123456')
    resultPdf = open('newencrypt.pdf', 'wb')
    pdfWriter.write(resultPdf)
    resultPdf.close()

elif (choice ==3):


    r1= open("newencrypt.pdf",'rb')

    reader = PyPDF2.PdfFileReader(r1)
    writer = PyPDF2.PdfFileWriter()
    if reader.isEncrypted:
        reader.decrypt("123456")
    for page in reader.pages:
        writer.addPage(page)
    with open("newdecrypt.pdf", "wb") as f:
        writer.write(f)

elif (choice == 4):


    def PDFmerge(pdfs, output):
        pdfMerger = PyPDF2.PdfFileMerger()
        for pdf in pdfs:
            pdfMerger.append(pdf)
        with open(output, 'wb') as f:
            pdfMerger.write(f)
    def main():
        pdfs = ['orpdf1.pdf', 'orpdf2.pdf']
        output = 'mergedpdf.pdf'
        PDFmerge(pdfs=pdfs, output=output)
    main()
       

elif (choice == 5):


    def PDFrotater(origFileName, newFileName, rotation):
        pdfFileObj = open(origFileName, 'rb')
        pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
        pdfWriter = PyPDF2.PdfFileWriter()
        for pageNum in range (len(pdfReader.pages)):
            pageObj = pdfReader.pages[pageNum]
            pageObj.rotateClockwise(rotation)
            pdfWriter.addPage(pageObj)
        newFile = open(newFileName, 'wb')
        pdfWriter.write(newFile)
        pdfFileObj.close()
        newFile.close()
    def main():
        origFileName = 'orpdf1.pdf'
        newFileName = 'rotateodf1.pdf'
        rotation = 90
        PDFrotater(origFileName, newFileName, rotation)
    main()

elif choice == 6:
    quit()
else :
    print("invalid input")

1.
2.
3.
4.
5.
6.exit
17.Write a program to demonstrate adding paragraphs and runs, headings, line and page breaks,

and pictures to Word documents

You might also like