print_settings.py 1.4 KB

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