From 18c70ffe3ea8e8d0f0e81a9af9e2464cd1f8686e Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Tue, 26 Nov 2024 02:22:36 +0100 Subject: [PATCH] Allow setting resolution for ToQTextDocument converter --- novelwriter/core/docbuild.py | 2 +- novelwriter/formats/toqdoc.py | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/novelwriter/core/docbuild.py b/novelwriter/core/docbuild.py index 4d17ebd6..f21fa1b9 100644 --- a/novelwriter/core/docbuild.py +++ b/novelwriter/core/docbuild.py @@ -178,7 +178,7 @@ class NWBuildDocument: makeObj = ToQTextDocument(self._project) makeObj.disableAnchors() filtered = self._setupBuild(makeObj) - makeObj.initDocument() + makeObj.initDocument(resolution=1200) yield from self._iterBuild(makeObj, filtered) makeObj.closeDocument() diff --git a/novelwriter/formats/toqdoc.py b/novelwriter/formats/toqdoc.py index e4231dfd..0030a3be 100644 --- a/novelwriter/formats/toqdoc.py +++ b/novelwriter/formats/toqdoc.py @@ -85,6 +85,7 @@ class ToQTextDocument(Tokenizer): self._pageSize = QPageSize(QPageSize.PageSizeId.A4) self._pageMargins = QMarginsF(20.0, 20.0, 20.0, 20.0) + self._resolution = 96 return @@ -123,9 +124,10 @@ class ToQTextDocument(Tokenizer): # Class Methods ## - def initDocument(self) -> None: + def initDocument(self, resolution: int = 96) -> None: """Initialise all computed values of the document.""" super().initDocument() + self._resolution = resolution self._document.setUndoRedoEnabled(False) self._document.blockSignals(True) @@ -168,8 +170,8 @@ class ToQTextDocument(Tokenizer): self._mMeta = (fPx * self._marginMeta[0], fPx * self._marginMeta[1]) self._mSep = (fPx * self._marginSep[0], fPx * self._marginSep[1]) - self._mIndent = fPx * 2.0 - self._tIndent = fPx * self._firstWidth + self._mIndent = fPx * self._resolution/96 * 2.0 + self._tIndent = fPx * self._resolution/96 * self._firstWidth # Text Formats # ============ @@ -265,6 +267,7 @@ class ToQTextDocument(Tokenizer): printer = QPrinter(QPrinter.PrinterMode.HighResolution) printer.setDocName(self._project.data.name) printer.setCreator(f"novelWriter/{__version__}") + printer.setResolution(self._resolution) printer.setOutputFormat(QPrinter.OutputFormat.PdfFormat) printer.setPageSize(self._pageSize) printer.setPageMargins(m.left(), m.top(), m.right(), m.bottom(), QPrinter.Unit.Millimeter)