summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2021-02-28 22:23:30 +0100
committerAdolfo Jayme Barrientos <fitojb@ubuntu.com>2021-03-24 14:49:43 +0100
commit830fac3743c02ccd76fe2ca3b0a81e79ec697857 (patch)
tree9adb81983494c1a35fe676a0a57e23fd174c3751
parenttdf#140539 don't allow help to be relaunched during launch (diff)
downloadcore-830fac3743c02ccd76fe2ca3b0a81e79ec697857.tar.gz
core-830fac3743c02ccd76fe2ca3b0a81e79ec697857.zip
tdf#127217: Fix buttons in forms not working in Adobe Reader
Regression from 76b5dca9dc0ff60f8f62cbecdee68f8f3b287ceb: author Thorsten Behrens <Thorsten.Behrens@CIB.de> 2019-04-09 02:19:14 +0200 committer Katarina Behrens <Katarina.Behrens@cib.de> 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 (cherry picked from commit a0d63ee5df921e5f1ac915ada783fdef0dbbb057) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112305 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit fc337124c9bb7498fc84a1c60250d7c043e8c7a6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112513 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> Tested-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
-rw-r--r--vcl/source/gdi/pdfwriter_impl.cxx4
1 files changed, 1 insertions, 3 deletions
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index eeeb4305a181..6c6fc7c8923b 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -4023,9 +4023,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
@@ -4038,6 +4035,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( ' ' );