From ac6e6753bd3b94df1780b011efae829964262587 Mon Sep 17 00:00:00 2001 From: Ashod Nakashian Date: Sat, 3 Mar 2018 13:10:49 -0500 Subject: pdf: refactor poppler importer This paves the way to add pdf parsing via pdfium. Change-Id: I384687bcdce3011682ebeec18ee3de44759feb1a Reviewed-on: https://gerrit.libreoffice.org/51254 Tested-by: Jenkins Reviewed-by: Ashod Nakashian --- sdext/source/pdfimport/wrapper/wrapper.cxx | 21 +++++++++++++++++++++ vcl/source/filter/ipdf/pdfread.cxx | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/sdext/source/pdfimport/wrapper/wrapper.cxx b/sdext/source/pdfimport/wrapper/wrapper.cxx index d79ffc3c99fb..7d3d68901e37 100644 --- a/sdext/source/pdfimport/wrapper/wrapper.cxx +++ b/sdext/source/pdfimport/wrapper/wrapper.cxx @@ -1001,6 +1001,14 @@ public: } }; +bool xpdf_ImportFromFile_Poppler(const OUString& aSysUPath, + const ContentSinkSharedPtr& rSink, + const uno::Reference& xIHdl, + const bool bIsEncrypted, + const OUString& aPwd, + const uno::Reference& xContext, + const OUString& rFilterOptions); + bool xpdf_ImportFromFile( const OUString& rURL, const ContentSinkSharedPtr& rSink, const uno::Reference< task::XInteractionHandler >& xIHdl, @@ -1031,6 +1039,19 @@ bool xpdf_ImportFromFile( const OUString& rURL, return false; } + return xpdf_ImportFromFile_Poppler(aSysUPath, rSink, xIHdl, bIsEncrypted, aPwd, xContext, rFilterOptions); +} + +/// Parse PDf file using libpoppler, which is quite limited +/// to be phased out in favor of pdfium. +bool xpdf_ImportFromFile_Poppler(const OUString& aSysUPath, + const ContentSinkSharedPtr& rSink, + const uno::Reference& /*xIHdl*/, + const bool bIsEncrypted, + const OUString& aPwd, + const uno::Reference& xContext, + const OUString& rFilterOptions) +{ // Determine xpdfimport executable URL: OUString converterURL("$BRAND_BASE_DIR/" LIBO_BIN_FOLDER "/xpdfimport"); rtl::Bootstrap::expandMacros(converterURL); //TODO: detect failure diff --git a/vcl/source/filter/ipdf/pdfread.cxx b/vcl/source/filter/ipdf/pdfread.cxx index 5597e851c6ea..4bdca2f02783 100644 --- a/vcl/source/filter/ipdf/pdfread.cxx +++ b/vcl/source/filter/ipdf/pdfread.cxx @@ -228,7 +228,7 @@ bool ImportPDF(SvStream& rStream, Graphic& rGraphic) { uno::Sequence aPdfData; Bitmap aBitmap; - bool bRet = ImportPDF(rStream, aBitmap, aPdfData); + const bool bRet = ImportPDF(rStream, aBitmap, aPdfData); rGraphic = aBitmap; rGraphic.setPdfData(aPdfData); return bRet; -- cgit