summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2020-06-15 14:01:49 +0200
committerTomaž Vajngerl <quikee@gmail.com>2020-06-20 13:11:02 +0200
commit4fa45de60601d34b3a821b35b5aca72f494a7487 (patch)
tree93b715600cfbf5dab239e2c817b0f7e589f6af08
parent526b09604399a71c17b15ee80bab48967563bfb6 (diff)
vcl: use pdfium c++ wraper classes in ImportPDFUnloaded
Change-Id: I1d0d97f4b981fa62aa38dc5ceaf89d3976bbccbe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96754 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r--vcl/source/filter/ipdf/pdfread.cxx17
1 files changed, 7 insertions, 10 deletions
diff --git a/vcl/source/filter/ipdf/pdfread.cxx b/vcl/source/filter/ipdf/pdfread.cxx
index 2a7e7ce04198..10caf1a975f5 100644
--- a/vcl/source/filter/ipdf/pdfread.cxx
+++ b/vcl/source/filter/ipdf/pdfread.cxx
@@ -247,28 +247,27 @@ size_t ImportPDFUnloaded(const OUString& rURL, std::vector<std::pair<Graphic, Si
auto pPdfium = vcl::pdf::PDFiumLibrary::get();
// Load the buffer using pdfium.
- FPDF_DOCUMENT pPdfDocument
- = FPDF_LoadMemDocument(pGfxLink->GetData(), pGfxLink->GetDataSize(), /*password=*/nullptr);
+ auto pPdfDocument = pPdfium->openDocument(pGfxLink->GetData(), pGfxLink->GetDataSize());
+
if (!pPdfDocument)
return 0;
- const int nPageCount = FPDF_GetPageCount(pPdfDocument);
+ const int nPageCount = pPdfDocument->getPageCount();
if (nPageCount <= 0)
return 0;
for (int nPageIndex = 0; nPageIndex < nPageCount; ++nPageIndex)
{
- double fPageWidth = 0;
- double fPageHeight = 0;
- if (FPDF_GetPageSizeByIndex(pPdfDocument, nPageIndex, &fPageWidth, &fPageHeight) == 0)
+ basegfx::B2DSize aPageSize = pPdfDocument->getPageSize(nPageIndex);
+ if (aPageSize.getX() <= 0.0 || aPageSize.getY() <= 0.0)
continue;
// Returned unit is points, convert that to twip
// 1 pt = 20 twips
constexpr double pointToTwipconversionRatio = 20;
- long nPageWidth = convertTwipToMm100(fPageWidth * pointToTwipconversionRatio);
- long nPageHeight = convertTwipToMm100(fPageHeight * pointToTwipconversionRatio);
+ long nPageWidth = convertTwipToMm100(aPageSize.getX() * pointToTwipconversionRatio);
+ long nPageHeight = convertTwipToMm100(aPageSize.getY() * pointToTwipconversionRatio);
auto aVectorGraphicDataPtr = std::make_shared<VectorGraphicData>(
aPdfDataArray, OUString(), VectorGraphicDataType::Pdf, nPageIndex);
@@ -282,8 +281,6 @@ size_t ImportPDFUnloaded(const OUString& rURL, std::vector<std::pair<Graphic, Si
rGraphics.emplace_back(std::move(aGraphic), Size(nPageWidth, nPageHeight));
}
- FPDF_CloseDocument(pPdfDocument);
-
return rGraphics.size();
#else
(void)rURL;