print_settings.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from __future__ import absolute_import
  2. # Copyright (c) 2010-2019 openpyxl
  3. from openpyxl.descriptors.serialisable import Serialisable
  4. from openpyxl.descriptors import (
  5. Float,
  6. Typed,
  7. Alias,
  8. )
  9. from openpyxl.worksheet.page import PrintPageSetup
  10. from openpyxl.worksheet.header_footer import HeaderFooter
  11. class PageMargins(Serialisable):
  12. """
  13. Identical to openpyxl.worksheet.page.Pagemargins but element names are different :-/
  14. """
  15. tagname = "pageMargins"
  16. l = Float()
  17. left = Alias('l')
  18. r = Float()
  19. right = Alias('r')
  20. t = Float()
  21. top = Alias('t')
  22. b = Float()
  23. bottom = Alias('b')
  24. header = Float()
  25. footer = Float()
  26. def __init__(self, l=0.75, r=0.75, t=1, b=1, header=0.5, footer=0.5):
  27. self.l = l
  28. self.r = r
  29. self.t = t
  30. self.b = b
  31. self.header = header
  32. self.footer = footer
  33. class PrintSettings(Serialisable):
  34. tagname = "printSettings"
  35. headerFooter = Typed(expected_type=HeaderFooter, allow_none=True)
  36. pageMargins = Typed(expected_type=PageMargins, allow_none=True)
  37. pageSetup = Typed(expected_type=PrintPageSetup, allow_none=True)
  38. __elements__ = ("headerFooter", "pageMargins", "pageMargins")
  39. def __init__(self,
  40. headerFooter=None,
  41. pageMargins=None,
  42. pageSetup=None,
  43. ):
  44. self.headerFooter = headerFooter
  45. self.pageMargins = pageMargins
  46. self.pageSetup = pageSetup