test_merger.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import os
  2. import binascii
  3. import sys
  4. import PyPDF2
  5. TESTS_ROOT = os.path.abspath(os.path.dirname(__file__))
  6. PROJECT_ROOT = os.path.dirname(TESTS_ROOT)
  7. RESOURCE_ROOT = os.path.join(PROJECT_ROOT, "Resources")
  8. sys.path.append(PROJECT_ROOT)
  9. def test_merge():
  10. pdf_path = os.path.join(RESOURCE_ROOT, "crazyones.pdf")
  11. outline = os.path.join(RESOURCE_ROOT, "pdflatex-outline.pdf")
  12. file_merger = PyPDF2.PdfFileMerger()
  13. # string path:
  14. file_merger.append(pdf_path)
  15. file_merger.append(outline)
  16. file_merger.append(pdf_path, pages=PyPDF2.pagerange.PageRange(slice(0, 0)))
  17. # PdfFileReader object:
  18. file_merger.append(PyPDF2.PdfFileReader(pdf_path, "rb"))
  19. # Is merging encrypted files broken?
  20. # encrypted = os.path.join(RESOURCE_ROOT, "libreoffice-writer-password.pdf")
  21. # reader = PyPDF2.PdfFileReader(pdf_path, "rb")
  22. # reader.decrypt("openpassword")
  23. # file_merger.append(reader)
  24. # File handle
  25. fh = open(pdf_path, "rb")
  26. file_merger.append(fh)
  27. file_merger.addBookmark("A bookmark", 0)
  28. file_merger.write("dont_commit_merged.pdf")
  29. file_merger.close()