123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import uno
- import traceback
- class TextSectionHandler(object):
- '''Creates a new instance of TextSectionHandler'''
- def __init__(self, xMSF, xTextDocument):
- self.xMSFDoc = xMSF
- self.xTextDocument = xTextDocument
- self.xText = xTextDocument.Text
- def removeTextSectionbyName(self, SectionName):
- try:
- xAllTextSections = self.xTextDocument.TextSections
- if xAllTextSections.hasByName(SectionName):
- oTextSection = self.xTextDocument.TextSections.getByName(
- SectionName)
- self.removeTextSection(oTextSection)
- except Exception:
- traceback.print_exc()
- def hasTextSectionByName(self, SectionName):
- xAllTextSections = self.xTextDocument.TextSections
- return xAllTextSections.hasByName(SectionName)
- def removeTextSection(self, _oTextSection):
- try:
- self.xText.removeTextContent(_oTextSection)
- except Exception:
- traceback.print_exc()
- def removeAllTextSections(self):
- try:
- TextSectionCount = self.xTextDocument.TextSections.Count
- xAllTextSections = self.xTextDocument.TextSections
- for i in range(TextSectionCount - 1, -1, -1):
- xTextContentTextSection = xAllTextSections.getByIndex(i)
- self.xText.removeTextContent(xTextContentTextSection)
- except Exception:
- traceback.print_exc()
- def breakLinkOfTextSection(self, oTextSection):
- try:
- oSectionLink = \
- uno.createUnoStruct('com.sun.star.text.SectionFileLink')
- oSectionLink.FileURL = ""
- uno.invoke(oTextSection, "setPropertyValues",
- (("FileLink", "LinkRegion"), (oSectionLink, "")))
- except Exception:
- traceback.print_exc()
- def linkSectiontoTemplate(
- self, TemplateName, SectionName, oTextSection=None):
- try:
- if not oTextSection:
- oTextSection = self.xTextDocument.TextSections.getByName(
- SectionName)
- oSectionLink = \
- uno.createUnoStruct('com.sun.star.text.SectionFileLink')
- oSectionLink.FileURL = TemplateName
- uno.invoke(oTextSection, "setPropertyValues",
- (("FileLink", "LinkRegion"), (oSectionLink, SectionName)))
- NewSectionName = oTextSection.Name
- if NewSectionName is not SectionName:
- oTextSection.Name = SectionName
- except Exception:
- traceback.print_exc()
- def insertTextSection(self, GroupName, TemplateName, _bAddParagraph):
- try:
- if _bAddParagraph:
- xTextCursor = self.xText.createTextCursor()
- self.xText.insertControlCharacter(
- xTextCursor, ControlCharacter.PARAGRAPH_BREAK, False)
- xTextCursor.collapseToEnd()
- xSecondTextCursor = self.xText.createTextCursor()
- xSecondTextCursor.gotoEnd(False)
- insertTextSection(GroupName, TemplateName, xSecondTextCursor)
- except Exception:
- traceback.print_exc()
- def insertTextSection(self, sectionName, templateName, position):
- try:
- if self.xTextDocument.TextSections.hasByName(sectionName):
- xTextSection = \
- self.xTextDocument.TextSections.getByName(sectionName)
- else:
- xTextSection = self.xMSFDoc.createInstance(
- "com.sun.star.text.TextSection")
- position.getText().insertTextContent(
- position, xTextSection, False)
- linkSectiontoTemplate(xTextSection, templateName, sectionName)
- except Exception:
- traceback.print_exc()
|