[Libreoffice-commits] core.git: sdext/source

Vort vvort at yandex.ru
Mon Mar 3 07:21:20 PST 2014


 sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx |   19 +++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

New commits:
commit 7963d2b0f6fe006c215607eda1c51acf1d7273b5
Author: Vort <vvort at yandex.ru>
Date:   Sun Mar 2 13:01:05 2014 +0200

    fdo#40513 PDF Import: Hack: Replace incorrect values of font's ascent property
    
    Change-Id: Ib7bd6e15fff5213b5d935c6f03f2c65ea3f6ca50
    Reviewed-on: https://gerrit.libreoffice.org/8416
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
index 391f755..c5b145f 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
@@ -792,12 +792,29 @@ void PDFOutDev::drawChar(GfxState *state, double x, double y,
     if( u == NULL )
         return;
 
+    GfxFont* font = state->getFont();
+    double ascent = font->getAscent();
+    GooString* fontName = font->getName();
+
+    // Hackfix until incorrect ascent values are fixed in poppler (fdo#75667)
+    if ((fontName->cmpN("Arial", 5) == 0) &&
+        (ascent > 0.717) && (ascent < 0.719))
+    {
+        ascent = 0.905;
+    }
+    else if ((fontName->cmpN("Times New Roman", 15) == 0) &&
+        (ascent > 0.682) && (ascent < 0.684))
+    {
+        ascent = 0.891;
+    }
+
     // normalize coordinates: correct from baseline-relative to upper
     // left corner of glyphs
     double x2(0.0), y2(0.0);
     state->textTransformDelta( 0.0,
-                               state->getFont()->getAscent(),
+                               ascent,
                                &x2, &y2 );
+
     const double fFontSize(state->getFontSize());
     x += x2*fFontSize;
     y += y2*fFontSize;


More information about the Libreoffice-commits mailing list