vcl/source/gdi/pdfwriter_impl.cxx |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

New commits:
commit 34ec5319af16c2380d636d79a43eef6d96f9b2bb
Author:     Julien Nabet <[email protected]>
AuthorDate: Sun Feb 28 22:23:30 2021 +0100
Commit:     Thorsten Behrens <[email protected]>
CommitDate: Thu Oct 6 17:58:53 2022 +0200

    tdf#127217: Fix buttons in forms not working in Adobe Reader
    
    Regression from 76b5dca9dc0ff60f8f62cbecdee68f8f3b287ceb:
    author  Thorsten Behrens <[email protected]>      2019-04-09 02:19:14 
+0200
    committer       Katarina Behrens <[email protected]>      2019-07-03 
14:48:45 +0200
    commit  76b5dca9dc0ff60f8f62cbecdee68f8f3b287ceb (patch)
    tree    e778dad33073a228eb61ab62ce5f38e2a26d07ca
    parent  1e8a9c19a6f7b82c9e0c481aee0c04c0780f4433 (diff)
    tdf#113448 don't export any font for radio buttons
    
    Don't let only color value in m_aDAString since it'll go here:
            if( !rWidget.m_aDAString.isEmpty() )
            {
                if( !rWidget.m_aDRDict.isEmpty() )
                {
                    aLine.append( "/DR<<" );
                    aLine.append( rWidget.m_aDRDict );
                    aLine.append( ">>\n" );
                }
                else
                {
                    aLine.append( "/DR<</Font<<" );
                    appendBuildinFontsToDict( aLine );
                    aLine.append( ">>>>\n" );
                }
                aLine.append( "/DA" );
                appendLiteralStringEncrypt( rWidget.m_aDAString, 
rWidget.m_nObject, aLine );
                aLine.append( "\n" );
                if( rWidget.m_nTextStyle & DrawTextFlags::Center )
                    aLine.append( "/Q 1\n" );
                else if( rWidget.m_nTextStyle & DrawTextFlags::Right )
                    aLine.append( "/Q 2\n" );
            }
    
    But if we shouldn't have /DR at all since we don't want fonts for 
radiobutton, it also means
    we don't want /DA too.
    Indeed at the end of 12.7.3.3 
https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf:
    The default appearance string (DA) contains any graphics state or text 
state operators needed to establish the
    graphics state parameters, such as text size and colour, for displaying the 
field’s variable text. Only operators
    that are allowed within text objects shall occur in this string (see Figure 
9). At a minimum, the string shall
    include a Tf (text font) operator along with its two operands, font and 
size. The specified font value shall match
    a resource name in the Font entry of the default resource dictionary 
(referenced from the DR entry of the
    interactive form dictionary; see Table 218).
    
    Change-Id: Ib350495d7fc5a7a4fba88d710614a0f67a0b1553
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111724
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <[email protected]>
    (cherry picked from commit a0d63ee5df921e5f1ac915ada783fdef0dbbb057)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140959
    Tested-by: Thorsten Behrens <[email protected]>

diff --git a/vcl/source/gdi/pdfwriter_impl.cxx 
b/vcl/source/gdi/pdfwriter_impl.cxx
index a2a3f5ca9a5b..ff1196637ed9 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -4036,9 +4036,6 @@ void PDFWriterImpl::createDefaultRadioButtonAppearance( 
PDFWidget& rBox, const P
 
     pop();
 
-    OStringBuffer aDA( 256 );
-    appendNonStrokingColor( replaceColor( rWidget.TextColor, 
rSettings.GetRadioCheckTextColor() ), aDA );
-    rBox.m_aDAString = aDA.makeStringAndClear();
     //to encrypt this (el)
     rBox.m_aMKDict = "/CA";
     //after this assignment, to m_aMKDic cannot be added anything
@@ -4051,6 +4048,7 @@ void PDFWriterImpl::createDefaultRadioButtonAppearance( 
PDFWidget& rBox, const P
     SvMemoryStream* pCheckStream = new SvMemoryStream( 256, 256 );
 
     beginRedirect( pCheckStream, aCheckRect );
+    OStringBuffer aDA( 256 );
     aDA.append( "/Tx BMC\nq BT\n" );
     appendNonStrokingColor( replaceColor( rWidget.TextColor, 
rSettings.GetRadioCheckTextColor() ), aDA );
     aDA.append( ' ' );

Reply via email to