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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Jul 20 15:16:35 UTC 2018


 vcl/source/gdi/pdfwriter_impl.cxx |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

New commits:
commit 4a627a5724c9a9a4e469921d032376703260fbff
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Jul 20 14:49:17 2018 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Jul 20 17:16:11 2018 +0200

    implement pdf export of underline for outlined font
    
    just the simplest case of a straight solid line which is outlined,
    i.e. border in font color and filled with white
    
    Change-Id: I7d670a543475b6457cb2827e74a05bba6c4a91ea
    Reviewed-on: https://gerrit.libreoffice.org/57778
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index f623344d06e0..3071fb1371f4 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -7408,6 +7408,27 @@ void PDFWriterImpl::drawStraightTextLine( OStringBuffer& aLine, long nWidth, Fon
     if ( !nLineHeight )
         return;
 
+    // outline attribute ?
+    if (m_aCurrentPDFState.m_aFont.IsOutline() && eTextLine == LINESTYLE_SINGLE)
+    {
+        appendStrokingColor(aColor, aLine); // stroke with text color
+        aLine.append( " " );
+        Color aNonStrokeColor(COL_WHITE);   // fill with white
+        appendNonStrokingColor(aNonStrokeColor, aLine);
+        aLine.append( "\n" );
+        aLine.append( "0.25 w \n" ); // same line thickness as in drawLayout
+
+        // draw rectangle instead
+        aLine.append( "0 " );
+        m_aPages.back().appendMappedLength( static_cast<sal_Int32>(-nLinePos * 1.5), aLine );
+        aLine.append( " " );
+        m_aPages.back().appendMappedLength( static_cast<sal_Int32>(nWidth), aLine, false );
+        aLine.append( ' ' );
+        m_aPages.back().appendMappedLength( static_cast<sal_Int32>(nLineHeight), aLine );
+        aLine.append( " re h B\n" );
+        return;
+    }
+
     m_aPages.back().appendMappedLength( static_cast<sal_Int32>(nLineHeight), aLine );
     aLine.append( " w " );
     appendStrokingColor( aColor, aLine );


More information about the Libreoffice-commits mailing list