[Libreoffice-commits] core.git: svx/source
Tomaž Vajngerl (via logerrit)
logerrit at kemper.freedesktop.org
Sun May 3 09:09:34 UTC 2020
svx/source/svdraw/svdpdf.cxx | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
New commits:
commit d4190effb9068dff5ebd3c01c7e3073b1af78b2d
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Thu Apr 30 19:07:44 2020 +0200
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Sun May 3 11:08:59 2020 +0200
SdrPdfImport: fix garbled text at breaking the PDF graphic
The text size of OUString expects no. of characters, but we give
the number of bytes as that is what we get from PDFium. Best to
just not give the text size at all and let OUString determine
that as the text shouldbe terminated correctly.
Change-Id: Icc5cd6e851a9d2920faa9ca2eb6d827465483e72
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93330
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx
index 806e82ebf5ac..296d2b53f31b 100644
--- a/svx/source/svdraw/svdpdf.cxx
+++ b/svx/source/svdraw/svdpdf.cxx
@@ -798,16 +798,19 @@ void ImpSdrPdfImport::ImportText(FPDF_PAGEOBJECT pPageObject, FPDF_TEXTPAGE pTex
const tools::Rectangle aRect = PointsToLogic(aTextRect.getMinX(), aTextRect.getMaxX(),
aTextRect.getMinY(), aTextRect.getMaxY());
- const int nChars = FPDFTextObj_GetText(pPageObject, pTextPage, nullptr, 0);
- std::unique_ptr<sal_Unicode[]> pText(new sal_Unicode[nChars]);
+ const int nBytes = FPDFTextObj_GetText(pPageObject, pTextPage, nullptr, 0);
+ std::unique_ptr<sal_Unicode[]> pText(new sal_Unicode[nBytes]);
- const int nActualChars = FPDFTextObj_GetText(pPageObject, pTextPage, pText.get(), nChars);
- if (nActualChars <= 0)
+ const int nActualBytes = FPDFTextObj_GetText(pPageObject, pTextPage, pText.get(), nBytes);
+ if (nActualBytes <= 0)
{
return;
}
- OUString sText(pText.get(), nActualChars);
+ // Let's rely on null-terminaton for the length of the string. We
+ // just know the number of bytes the string takes, but in OUString
+ // needs the number of charaters.
+ OUString sText(pText.get());
const double dFontSize = FPDFTextObj_GetFontSize(pPageObject);
double dFontSizeH = fabs(sqrt2(matrix.a, matrix.c) * dFontSize);
More information about the Libreoffice-commits
mailing list