Guest User

Untitled

a guest
Aug 17th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. # Rotate a pdf file
  2. import os
  3. from tempfile import NamedTemporaryFile
  4. from pdfrw import PdfReader, PdfWriter
  5.  
  6.  
  7. def add_suffix(file_path, suffix, sep):
  8. split = os.path.basename(file_path).rsplit('.', 1)
  9. return os.path.join(os.path.dirname(file_path), split[0] + sep + suffix + '.' + split[1])
  10.  
  11.  
  12. def rotate(file_name, rotate, suffix='rotated', tempdir=None):
  13. """Rotate PDF by increments of 90 degrees."""
  14. # Set output file name
  15. if tempdir:
  16. outfn = NamedTemporaryFile(suffix='.pdf', dir=tempdir, delete=False).name
  17. elif suffix:
  18. outfn = os.path.join(os.path.dirname(file_name), add_suffix(file_name, suffix))
  19. else:
  20. outfn = NamedTemporaryFile(suffix='.pdf').name
  21.  
  22. trailer = PdfReader(file_name)
  23. pages = trailer.pages
  24.  
  25. ranges = [[1, len(pages)]]
  26.  
  27. for onerange in ranges:
  28. onerange = (onerange + onerange[-1:])[:2]
  29. for pagenum in range(onerange[0] - 1, onerange[1]):
  30. pages[pagenum].Rotate = (int(pages[pagenum].inheritable.Rotate or 0) + rotate) % 360
  31.  
  32. outdata = PdfWriter(outfn)
  33. outdata.trailer = trailer
  34. outdata.write()
  35. return outfn
  36.  
  37.  
  38. def main():
  39. pdf = 'your/path/to/doc.pdf'
  40. r = 90
  41. rotate(pdf, r)
  42.  
  43.  
  44. if __name__ == '__main__':
  45. main()
Add Comment
Please, Sign In to add comment