From 860ea6c6693608165cfde42656d6c48c3bde91eb Mon Sep 17 00:00:00 2001 From: Ashod Nakashian Date: Sun, 28 Mar 2021 09:38:01 -0400 Subject: vcl: allow for overriding the default PDF rendering resolution Change-Id: Ibd75c6dd71d93322bd77995547e735c2d4849602 Signed-off-by: Ashod Nakashian Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113255 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky --- vcl/source/filter/ipdf/pdfread.cxx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/vcl/source/filter/ipdf/pdfread.cxx b/vcl/source/filter/ipdf/pdfread.cxx index 2fb7a11bb681..e4af2a0e865b 100644 --- a/vcl/source/filter/ipdf/pdfread.cxx +++ b/vcl/source/filter/ipdf/pdfread.cxx @@ -146,11 +146,27 @@ VectorGraphicDataArray createVectorGraphicDataArray(SvStream& rStream) namespace vcl { +/// Get the default PDF rendering resolution in DPI. +static double getDefaultPdfResolutionDpi() +{ + // If an overriding default is set, use it. + const char* envar = ::getenv("PDFIMPORT_RESOLUTION_DPI"); + if (envar) + { + const double dpi = atof(envar); + if (dpi > 0) + return dpi; + } + + // Fallback to a sensible default. + return 96.; +} + size_t RenderPDFBitmaps(const void* pBuffer, int nSize, std::vector& rBitmaps, const size_t nFirstPage, int nPages, const basegfx::B2DTuple* pSizeHint) { #if HAVE_FEATURE_PDFIUM - const double fResolutionDPI = 96; + static const double fResolutionDPI = getDefaultPdfResolutionDpi(); auto pPdfium = vcl::pdf::PDFiumLibrary::get(); // Load the buffer using pdfium. -- cgit v1.2.3