diff --git a/modules/serviceCenter/services/serviceGeneration/renderers/rendererDocx.py b/modules/serviceCenter/services/serviceGeneration/renderers/rendererDocx.py index 9d7b24ff..28e6fd65 100644 --- a/modules/serviceCenter/services/serviceGeneration/renderers/rendererDocx.py +++ b/modules/serviceCenter/services/serviceGeneration/renderers/rendererDocx.py @@ -120,9 +120,11 @@ class RendererDocx(BaseRenderer): doc = Document() self.logger.debug(f"_generateDocxFromJson: Document created in {time.time() - start_time:.2f}s") - # Apply unified style (always provided by mainServiceGeneration.renderReport) style_start = time.time() self.logger.debug("_generateDocxFromJson: About to get style set") + if not unifiedStyle: + from modules.serviceCenter.services.serviceGeneration.styleDefaults import resolveStyle + unifiedStyle = resolveStyle(None) styleSet = self._convertUnifiedStyleToInternal(unifiedStyle) self._unifiedStyle = unifiedStyle self._styleSet = styleSet diff --git a/modules/serviceCenter/services/serviceGeneration/renderers/rendererPdf.py b/modules/serviceCenter/services/serviceGeneration/renderers/rendererPdf.py index fc6bd51b..425da644 100644 --- a/modules/serviceCenter/services/serviceGeneration/renderers/rendererPdf.py +++ b/modules/serviceCenter/services/serviceGeneration/renderers/rendererPdf.py @@ -229,11 +229,9 @@ class RendererPdf(BaseRenderer): # memory simultaneously. Collected here, deleted after the build. self._tempImageFiles = [] try: - self._unifiedStyle = unifiedStyle - if unifiedStyle: - styles = self._convertUnifiedStyleToInternal(unifiedStyle) - else: - styles = self._convertUnifiedStyleToInternal({}) + from modules.serviceCenter.services.serviceGeneration.styleDefaults import resolveStyle + self._unifiedStyle = unifiedStyle or resolveStyle(None) + styles = self._convertUnifiedStyleToInternal(self._unifiedStyle) for level in range(1, 7): hKey = f"heading{level}" if hKey not in styles: @@ -934,7 +932,7 @@ class RendererPdf(BaseRenderer): code = _normalizePdfMonospaceText(code) elements = [] fs = code_style_def.get("font_size", 9) - mono = code_style_def.get("font", "Courier") + mono = _resolveFontFamily(code_style_def.get("font", "Courier")) textColorFallback = styles.get("colors", {}).get("primary", "#24292e") diff --git a/modules/serviceCenter/services/serviceGeneration/renderers/rendererPptx.py b/modules/serviceCenter/services/serviceGeneration/renderers/rendererPptx.py index 7064ea1e..112f1bf0 100644 --- a/modules/serviceCenter/services/serviceGeneration/renderers/rendererPptx.py +++ b/modules/serviceCenter/services/serviceGeneration/renderers/rendererPptx.py @@ -92,7 +92,8 @@ class RendererPptx(BaseRenderer): import re if not style: - style = {} + from modules.serviceCenter.services.serviceGeneration.styleDefaults import resolveStyle + style = resolveStyle(None) internalStyle = self._convertUnifiedStyleToInternal(style) styles = internalStyle self._styles = styles diff --git a/modules/serviceCenter/services/serviceGeneration/renderers/rendererXlsx.py b/modules/serviceCenter/services/serviceGeneration/renderers/rendererXlsx.py index 0b544dd8..44d491d7 100644 --- a/modules/serviceCenter/services/serviceGeneration/renderers/rendererXlsx.py +++ b/modules/serviceCenter/services/serviceGeneration/renderers/rendererXlsx.py @@ -136,7 +136,9 @@ class RendererXlsx(BaseRenderer): self.services.utils.debugLogToFile(f"EXCEL JSON CONTENT TYPE: {type(jsonContent)}", "EXCEL_RENDERER") self.services.utils.debugLogToFile(f"EXCEL JSON CONTENT KEYS: {list(jsonContent.keys()) if isinstance(jsonContent, dict) else 'Not a dict'}", "EXCEL_RENDERER") - # Store unified style for use by inline-run helpers + if not style: + from modules.serviceCenter.services.serviceGeneration.styleDefaults import resolveStyle + style = resolveStyle(None) self._unifiedStyle = style # Convert unified style to internal format diff --git a/tests/unit/services/test_renderer_pdf_smoke.py b/tests/unit/services/test_renderer_pdf_smoke.py index 33324572..60c1a2ef 100644 --- a/tests/unit/services/test_renderer_pdf_smoke.py +++ b/tests/unit/services/test_renderer_pdf_smoke.py @@ -232,8 +232,9 @@ def test_normalize_pdf_monospace_replaces_box_drawing(): def test_pdf_heading_font_sizes_strictly_decrease(): """H3 must not fall back to H1 styles (previous bug: ## smaller than ###).""" + from modules.serviceCenter.services.serviceGeneration.styleDefaults import resolveStyle renderer = RendererPdf(services=_fakeServices()) - styles = renderer._getDefaultStyleSet() + styles = renderer._convertUnifiedStyleToInternal(resolveStyle(None)) assert styles["heading1"]["font_size"] > styles["heading2"]["font_size"] > styles["heading3"]["font_size"] assert renderer._defaultHeadingStyleDef(2)["font_size"] > renderer._defaultHeadingStyleDef(3)["font_size"] if REPORTLAB_AVAILABLE: