Add page offset option to ODT build (#1505)

This commit is contained in:
Veronica Berglyd Olsen
2024-01-28 15:52:38 +01:00
parent 116409bb8d
commit 1ec0bff159
6 changed files with 28 additions and 11 deletions
+2
View File
@@ -80,6 +80,7 @@ SETTINGS_TEMPLATE = {
"format.rightMargin": (float, 2.0),
"odt.addColours": (bool, True),
"odt.pageHeader": (str, nwHeadFmt.ODT_AUTO),
"odt.pageCountOffset": (int, 0),
"html.addStyles": (bool, True),
}
@@ -127,6 +128,7 @@ SETTINGS_LABELS = {
"odt": QT_TRANSLATE_NOOP("Builds", "Open Document (.odt)"),
"odt.addColours": QT_TRANSLATE_NOOP("Builds", "Add Highlight Colours"),
"odt.pageHeader": QT_TRANSLATE_NOOP("Builds", "Page Header"),
"odt.pageCountOffset": QT_TRANSLATE_NOOP("Builds", "Page Counter Offset"),
"html": QT_TRANSLATE_NOOP("Builds", "HTML (.html)"),
"html.addStyles": QT_TRANSLATE_NOOP("Builds", "Add CSS Styles"),
+3 -1
View File
@@ -284,7 +284,9 @@ class NWBuildDocument:
if isinstance(bldObj, ToOdt):
bldObj.setColourHeaders(self._build.getBool("odt.addColours"))
bldObj.setLanguage(self._project.data.language)
bldObj.setHeaderFormat(self._build.getStr("odt.pageHeader"))
bldObj.setHeaderFormat(
self._build.getStr("odt.pageHeader"), self._build.getInt("odt.pageCountOffset")
)
scale = nwLabels.UNIT_SCALE.get(self._build.getStr("format.pageUnit"), 1.0)
pW, pH = nwLabels.PAPER_SIZE.get(self._build.getStr("format.pageSize"), (-1.0, -1.0))
+7 -4
View File
@@ -137,6 +137,7 @@ class ToOdt(Tokenizer):
self._textFixed = False
self._colourHead = False
self._headerFormat = ""
self._pageOffset = 0
# Internal
self._fontFamily = "'Liberation Serif'"
@@ -222,9 +223,10 @@ class ToOdt(Tokenizer):
self._mDocRight = f"{right/10.0:.3f}cm"
return
def setHeaderFormat(self, format: str) -> None:
def setHeaderFormat(self, format: str, offset: int) -> None:
"""Set the document header format."""
self._headerFormat = format.strip()
self._pageOffset = offset
return
##
@@ -1023,9 +1025,10 @@ class ToOdt(Tokenizer):
})
xPar.text = pre
if page:
xTail = ET.SubElement(xPar, _mkTag("text", "page-number"), attrib={
_mkTag("text", "select-page"): "current"
})
attrib = {_mkTag("text", "select-page"): "current"}
if self._pageOffset > 0:
attrib = {_mkTag("text", "page-adjust"): str(0 - self._pageOffset)}
xTail = ET.SubElement(xPar, _mkTag("text", "page-number"), attrib=attrib)
xTail.text = "2"
xTail.tail = post
else: