Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # See: https://ask.libreoffice.org/t/macro-calc-in-page-style-shows-attribute-error-class-attributeerror-firstisshared/92209/2
- from __future__ import annotations
- import uno
- from ooodev.office.calc import Calc
- from ooodev.utils.gui import GUI
- from ooodev.utils.kind.zoom_kind import ZoomKind
- from ooodev.utils.lo import Lo
- def main() -> int:
- with Lo.Loader(connector=Lo.ConnectPipe()):
- doc = Calc.create_doc()
- GUI.set_visible(True, doc)
- Lo.delay(500)
- Calc.zoom(doc, ZoomKind.ZOOM_100_PERCENT)
- test_header()
- Lo.delay(1_000)
- Lo.close_doc(doc)
- return 0
- def test_header(*args):
- doc = Lo.XSCRIPTCONTEXT.getDocument()
- sheets = doc.Sheets
- main_sheet = sheets[0]
- # Create new Page Style
- pg_styles = doc.StyleFamilies["PageStyles"]
- if pg_styles.hasByName("Custom") == False:
- page_style = doc.createInstance("com.sun.star.style.PageStyle")
- pg_styles.insertByName("Custom", page_style)
- # Apply Page Style
- main_sheet.PageStyle = "Custom"
- # Modify Page Style
- custom_pg_style = pg_styles[main_sheet.PageStyle]
- custom_pg_style.HeaderOn = True # it works
- custom_pg_style.HeaderIsShared = True # it works
- # https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1style_1_1PageProperties.html#a7381f863bce3a1e7a0ba3838a2636364
- custom_pg_style.FirstPageHeaderIsShared = True
- assert custom_pg_style.FirstPageHeaderIsShared == True
- if __name__ == "__main__":
- SystemExit(main())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement