From d8b7ac327cfe39f46aaa871cfa7a8fdc8b2b6b54 Mon Sep 17 00:00:00 2001 From: Miklos Vajna <vmiklos@collabora.co.uk> Date: Wed, 1 Aug 2018 08:34:42 +0200 Subject: pdfium: replace FPDFTextObj_GetColor() patch with backport Upstream already got FPDFPageObj_GetFillColor() and FPDFPageObj_GetStrokeColor(), so what was necessary is just a FPDFText_GetTextRenderMode() to find out which one to use. Change-Id: I2f31fcadee8a4377b890e01ea62ed96bce275f2b Reviewed-on: https://gerrit.libreoffice.org/58381 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins --- svx/source/svdraw/svdpdf.cxx | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'svx') diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx index 5b664eb23c65..b6bc08ce7d10 100644 --- a/svx/source/svdraw/svdpdf.cxx +++ b/svx/source/svdraw/svdpdf.cxx @@ -867,9 +867,32 @@ void ImpSdrPdfImport::ImportText(FPDF_PAGEOBJECT pPageObject, FPDF_TEXTPAGE pTex } Color aTextColor(COL_TRANSPARENT); - unsigned int nR, nG, nB, nA; - if (FPDFTextObj_GetColor(pPageObject, &nR, &nG, &nB, &nA)) - aTextColor = Color(nR, nG, nB); + bool bFill = false; + bool bUse = true; + switch (FPDFText_GetTextRenderMode(pPageObject)) + { + case FPDF_TEXTRENDERMODE_FILL: + case FPDF_TEXTRENDERMODE_FILL_CLIP: + case FPDF_TEXTRENDERMODE_FILL_STROKE: + case FPDF_TEXTRENDERMODE_FILL_STROKE_CLIP: + bFill = true; + break; + case FPDF_TEXTRENDERMODE_STROKE: + case FPDF_TEXTRENDERMODE_STROKE_CLIP: + break; + case FPDF_TEXTRENDERMODE_INVISIBLE: + case FPDF_TEXTRENDERMODE_CLIP: + bUse = false; + break; + } + if (bUse) + { + unsigned int nR, nG, nB, nA; + bool bRet = bFill ? FPDFPageObj_GetFillColor(pPageObject, &nR, &nG, &nB, &nA) + : FPDFPageObj_GetStrokeColor(pPageObject, &nR, &nG, &nB, &nA); + if (bRet) + aTextColor = Color(nR, nG, nB); + } if (aTextColor != mpVD->GetTextColor()) { -- cgit