Bug 137247 - Unable to detach embedded font from base form when editing one
Summary: Unable to detach embedded font from base form when editing one
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
Version:
(earliest affected)
6.3.5.2 release
Hardware: All All
: high major
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-10-04 16:26 UTC by philnsicab
Modified: 2022-12-13 11:58 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
Base file you can test the bug on (221.83 KB, application/vnd.sun.xml.base)
2022-12-13 11:12 UTC, philnsicab
Details

Note You need to log in before you can comment on or make changes to this bug.
Description philnsicab 2020-10-04 16:26:42 UTC
Hi,

I wanted to have the same Look and feel within my base form in windows, mac and linux as I use the form in all platforms.

I ticked the "Embed font in document" in the properties dialog of base forms.

My base file size was less than 1 Mo and it is now 37 Mo ! What's more, it is now very slow when saving the file.

I tried different strategies to detach the fonts this :

1. I unticked to detach the fonts but it doesn't work.

2. I unzipped the base file, deleted the embedded fonts and zipped the file back to ods but then the file is corrupted.

3. I made a copy of the file. And deleted all the forms in the original file. Then the file size is back to normal (600 Ko). Then I added back the forms one by one, saving the base file each time. So I identified the form which is 37 Mo. Then I made a copy of a normal form I had, renamed it to the name of the BigSizeForm, edited it, deleting every control inside, and copied the controls from the BigSizeForm in the base file copy. I have everything back to normal : the base file size is 700 Ko and it saves superfastly. So problem solved.

Other than my third step, I don't see a safe way to detach those fonts. There should at least a warning that you cannot undo it! And it would be better if it was possible.
Comment 1 Robert Großkopf 2020-10-19 07:42:18 UTC
Have tested this one. Seems to be the same reason as in bug 50816 with pictures in forms. Bug also appears with OpenSUSE 15.1 64bit rpm Linux and LO 7.0.2.2. Think it will be a bug inherited by OOo.

For the description:
You could choose to add the fonts in the form by using "File" → "Properties" → "Font"
You could uncheck the possibility to "Embed fonts in the document" but the folder with the fonts wont be deleted in the *.odb-file

... and this behavior is the same as the behavior with pictures. You could delete a picture in a form and save the form - but the picture will always be part of the form in the *.odb-file.

You could remove the fonts by opening the *.odb-file with a packing program, go to forms → Obj...  and delete the folder "Fonts".
Comment 2 Julien Nabet 2020-12-09 22:31:09 UTC
It seems starting here:
https://opengrok.libreoffice.org/xref/core/xmloff/source/style/XMLFontAutoStylePool.cxx?r=6b3089df#447

but I don't see any existing mechanism which would be able to remove fonts as if it hadn't been planned at all. (unless I missed it?)

The worst is as soon as you enabled "embed font in document", it'll save fonts after each time you edit (even without changing anything at all=>it's another existing bug I think) the form then the whole odb file.

Let's increase a bit importance since:
- it's not specific to an env
- it silenciously make file unusable
- fixing the file isn't obvious
Comment 3 Julien Nabet 2020-12-11 19:18:24 UTC
Mike: you were right with https://bugs.documentfoundation.org/show_bug.cgi?id=138797#c2

I put a break at xmloff/source/style/XMLFontAutoStylePool.cxx:405
During form edition in an odb file, if you enable embedded fonts, you must save the form to come back to the odb file, you got 2 bts:
1)
#0  XMLFontAutoStylePool::exportXML() (this=0x7826b30) at xmloff/source/style/XMLFontAutoStylePool.cxx:405
#1  0x00007fb650bf2f3d in SvXMLExport::ExportFontDecls_() (this=0x92a3c20) at xmloff/source/core/xmlexp.cxx:1504
#2  0x00007fb606d18f2f in SwXMLExport::ExportFontDecls_() (this=0x92a3c20) at sw/source/filter/xml/xmlexp.cxx:325
#3  0x00007fb650bf19f9 in SvXMLExport::exportDoc(xmloff::token::XMLTokenEnum) (this=0x92a3c20, eClass=xmloff::token::XML_TEXT) at xmloff/source/core/xmlexp.cxx:1390
#4  0x00007fb606d18479 in SwXMLExport::exportDoc(xmloff::token::XMLTokenEnum) (this=0x92a3c20, eClass=xmloff::token::XML_TEXT) at sw/source/filter/xml/xmlexp.cxx:278
#5  0x00007fb650bed0ef in SvXMLExport::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x92a3c20, aDescriptor=empty uno::Sequence) at xmloff/source/core/xmlexp.cxx:797
#6  0x00007fb606d1433f in SwXMLWriter::WriteThroughComponent(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> const&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, char const*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (xOutputStream=uno::Reference to (OWriteStream *) 0x6d27ce0, xComponent=uno::Reference to (SwXTextDocument *) 0x87db5b0, rxContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x9b9070, pServiceName=0x7fb60773aeed "com.sun.star.comp.Writer.XMLOasisStylesExporter", rArguments=uno::Sequence of length 3 = {...}, rMediaDesc=empty uno::Sequence) at sw/source/filter/xml/wrtxml.cxx:559
#7  0x00007fb606d134ad in SwXMLWriter::WriteThroughComponent(com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, char const*, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, char const*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x7011680, xComponent=uno::Reference to (SwXTextDocument *) 0x87db5b0, pStreamName=0x7fb607739ca5 "styles.xml", rxContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x9b9070, pServiceName=0x7fb60773aeed "com.sun.star.comp.Writer.XMLOasisStylesExporter", rArguments=uno::Sequence of length 3 = {...}, rMediaDesc=empty uno::Sequence) at sw/source/filter/xml/wrtxml.cxx:509
#8  0x00007fb606d11f2d in SwXMLWriter::Write_(com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator> const&, rtl::OUString const&)
    (this=0x7011680, xStatusIndicator=empty uno::Reference, aDocHierarchicalName="Obj11") at sw/source/filter/xml/wrtxml.cxx:349
#9  0x00007fb606d1380e in SwXMLWriter::WriteMedium(SfxMedium&) (this=0x7011680, aTargetMedium=...) at sw/source/filter/xml/wrtxml.cxx:453
#10 0x00007fb606cdd639 in StgWriter::Write(SwPaM&, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, rtl::OUString const*, SfxMedium*)
    (this=0x7011680, rPaM=SwPaM = {...}, rStg=uno::Reference to (OStorage *) 0x7941708, pFName=0x0, pMedium=0x7654670) at sw/source/filter/writer/writer.cxx:531
#11 0x00007fb606d1391c in SwXMLWriter::Write(SwPaM&, SfxMedium&, rtl::OUString const*) (this=0x7011680, rPaM=SwPaM = {...}, rMed=..., pFileName=0x0) at sw/source/filter/xml/wrtxml.cxx:460
#12 0x00007fb606b4f47e in SwWriter::Write(tools::SvRef<Writer> const&, rtl::OUString const*) (this=0x7fff26384848, rxWriter=..., pRealFileName=0x0) at sw/source/filter/basflt/shellio.cxx:859
#13 0x00007fb606db71bf in SwDocShell::Save() (this=0x40a5810) at sw/source/uibase/app/docsh.cxx:332
#14 0x00007fb659a3fdd4 in SfxObjectShell::DoSave() (this=0x40a5810) at sfx2/source/doc/objstor.cxx:1059
#15 0x00007fb659ab313e in SfxBaseModel::storeToStorage(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x87db520, xStorage=uno::Reference to (OStorage *) 0x7941708, aMediaDescriptor=uno::Sequence of length 5 = {...}) at sfx2/source/doc/sfxbasemodel.cxx:3759
#16 0x00007fb601013072 in OCommonEmbeddedObject::StoreDocToStorage_Impl(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, int, rtl::OUString const&, bool)
    (this=0x3cfce10, xStorage=uno::Reference to (OStorage *) 0x7941708, rMediaArgs=uno::Sequence of length 1 = {...}, rObjArgs=empty uno::Sequence, nStorageFormat=6800, aHierarchName="Obj11", bAttachToTheStorage=true) at embeddedobj/source/commonembedding/persistence.cxx:782
#17 0x00007fb60101a7d0 in OCommonEmbeddedObject::storeOwn() (this=0x3cfce10) at embeddedobj/source/commonembedding/persistence.cxx:1588
#18 0x00007fb6415f6f91 in dbaccess::ODocumentDefinition::save(bool, com::sun::star::uno::Reference<com::sun::star::awt::XTopWindow> const&) (this=0x7187860, _bApprove=false, rDialogParent=empty uno::Reference)
    at dbaccess/source/core/dataaccess/documentdefinition.cxx:1279
#19 0x00007fb64161109b in dbaccess::OInterceptor::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x85b7490, URL=..., Arguments=empty uno::Sequence) at dbaccess/source/core/dataaccess/intercept.cxx:105
#20 0x00007fb656c82a51 in svt::(anonymous namespace)::AsyncAccelExec::impl_ts_asyncCallback(LinkParamNone*) (this=0x7b64dc0) at svtools/source/misc/acceleratorexecute.cxx:481
#21 0x00007fb656c82740 in svt::(anonymous namespace)::AsyncAccelExec::LinkStubimpl_ts_asyncCallback(void*, LinkParamNone*) (instance=0x7b64dc0, data=0x0) at svtools/source/misc/acceleratorexecute.cxx:473
#22 0x00007fb6544df018 in Link<LinkParamNone*, void>::Call(LinkParamNone*) const (this=0x7b64e60, data=0x0) at include/tools/link.hxx:111

with m_bTryToEmbedFonts = false
notice there's sw/source/filter/xml/wrtxml.cxx:349
LO exports style:
    349     if( !WriteThroughComponent(
    350             xModelComp, "styles.xml", xContext,
    351             (bOASIS ? "com.sun.star.comp.Writer.XMLOasisStylesExporter"
    352                     : "com.sun.star.comp.Writer.XMLStylesExporter"),
    353             aFilterArgs, aProps ) )
    354     {
    355         bErr = true;
    356         sErrFile = "styles.xml";
    357     }

2)
#0  XMLFontAutoStylePool::exportXML() (this=0x926aad0) at xmloff/source/style/XMLFontAutoStylePool.cxx:405
#1  0x00007fb650bf2f3d in SvXMLExport::ExportFontDecls_() (this=0x92a3c20) at xmloff/source/core/xmlexp.cxx:1504
#2  0x00007fb606d18f2f in SwXMLExport::ExportFontDecls_() (this=0x92a3c20) at sw/source/filter/xml/xmlexp.cxx:325
#3  0x00007fb650bf19f9 in SvXMLExport::exportDoc(xmloff::token::XMLTokenEnum) (this=0x92a3c20, eClass=xmloff::token::XML_TEXT) at xmloff/source/core/xmlexp.cxx:1390
#4  0x00007fb606d18479 in SwXMLExport::exportDoc(xmloff::token::XMLTokenEnum) (this=0x92a3c20, eClass=xmloff::token::XML_TEXT) at sw/source/filter/xml/xmlexp.cxx:278
#5  0x00007fb650bed0ef in SvXMLExport::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x92a3c20, aDescriptor=empty uno::Sequence) at xmloff/source/core/xmlexp.cxx:797
#6  0x00007fb606d1433f in SwXMLWriter::WriteThroughComponent(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> const&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, char const*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (xOutputStream=uno::Reference to (OWriteStream *) 0x91ced90, xComponent=uno::Reference to (SwXTextDocument *) 0x87db5b0, rxContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x9b9070, pServiceName=0x7fb60773af48 "com.sun.star.comp.Writer.XMLOasisContentExporter", rArguments=uno::Sequence of length 3 = {...}, rMediaDesc=empty uno::Sequence) at sw/source/filter/xml/wrtxml.cxx:559
#7  0x00007fb606d134ad in SwXMLWriter::WriteThroughComponent(com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, char const*, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, char const*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x7011680, xComponent=uno::Reference to (SwXTextDocument *) 0x87db5b0, pStreamName=0x7fb60764601a "content.xml", rxContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x9b9070, pServiceName=0x7fb60773af48 "com.sun.star.comp.Writer.XMLOasisContentExporter", rArguments=uno::Sequence of length 3 = {...}, rMediaDesc=empty uno::Sequence) at sw/source/filter/xml/wrtxml.cxx:509
#8  0x00007fb606d1201d in SwXMLWriter::Write_(com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator> const&, rtl::OUString const&)
    (this=0x7011680, xStatusIndicator=empty uno::Reference, aDocHierarchicalName="Obj11") at sw/source/filter/xml/wrtxml.cxx:361
#9  0x00007fb606d1380e in SwXMLWriter::WriteMedium(SfxMedium&) (this=0x7011680, aTargetMedium=...) at sw/source/filter/xml/wrtxml.cxx:453
#10 0x00007fb606cdd639 in StgWriter::Write(SwPaM&, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, rtl::OUString const*, SfxMedium*)
    (this=0x7011680, rPaM=SwPaM = {...}, rStg=uno::Reference to (OStorage *) 0x7941708, pFName=0x0, pMedium=0x7654670) at sw/source/filter/writer/writer.cxx:531
#11 0x00007fb606d1391c in SwXMLWriter::Write(SwPaM&, SfxMedium&, rtl::OUString const*) (this=0x7011680, rPaM=SwPaM = {...}, rMed=..., pFileName=0x0) at sw/source/filter/xml/wrtxml.cxx:460
#12 0x00007fb606b4f47e in SwWriter::Write(tools::SvRef<Writer> const&, rtl::OUString const*) (this=0x7fff26384848, rxWriter=..., pRealFileName=0x0) at sw/source/filter/basflt/shellio.cxx:859
#13 0x00007fb606db71bf in SwDocShell::Save() (this=0x40a5810) at sw/source/uibase/app/docsh.cxx:332
#14 0x00007fb659a3fdd4 in SfxObjectShell::DoSave() (this=0x40a5810) at sfx2/source/doc/objstor.cxx:1059
#15 0x00007fb659ab313e in SfxBaseModel::storeToStorage(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x87db520, xStorage=uno::Reference to (OStorage *) 0x7941708, aMediaDescriptor=uno::Sequence of length 5 = {...}) at sfx2/source/doc/sfxbasemodel.cxx:3759
#16 0x00007fb601013072 in OCommonEmbeddedObject::StoreDocToStorage_Impl(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, int, rtl::OUString const&, bool)
    (this=0x3cfce10, xStorage=uno::Reference to (OStorage *) 0x7941708, rMediaArgs=uno::Sequence of length 1 = {...}, rObjArgs=empty uno::Sequence, nStorageFormat=6800, aHierarchName="Obj11", bAttachToTheStorage=true) at embeddedobj/source/commonembedding/persistence.cxx:782
#17 0x00007fb60101a7d0 in OCommonEmbeddedObject::storeOwn() (this=0x3cfce10) at embeddedobj/source/commonembedding/persistence.cxx:1588
#18 0x00007fb6415f6f91 in dbaccess::ODocumentDefinition::save(bool, com::sun::star::uno::Reference<com::sun::star::awt::XTopWindow> const&) (this=0x7187860, _bApprove=false, rDialogParent=empty uno::Reference)
    at dbaccess/source/core/dataaccess/documentdefinition.cxx:1279
#19 0x00007fb64161109b in dbaccess::OInterceptor::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x85b7490, URL=..., Arguments=empty uno::Sequence) at dbaccess/source/core/dataaccess/intercept.cxx:105
#20 0x00007fb656c82a51 in svt::(anonymous namespace)::AsyncAccelExec::impl_ts_asyncCallback(LinkParamNone*) (this=0x7b64dc0) at svtools/source/misc/acceleratorexecute.cxx:481
#21 0x00007fb656c82740 in svt::(anonymous namespace)::AsyncAccelExec::LinkStubimpl_ts_asyncCallback(void*, LinkParamNone*) (instance=0x7b64dc0, data=0x0) at svtools/source/misc/acceleratorexecute.cxx:473
#22 0x00007fb6544df018 in Link<LinkParamNone*, void>::Call(LinkParamNone*) const (this=0x7b64e60, data=0x0) at include/tools/link.hxx:111

with m_bTryToEmbedFonts = true
notice there's sw/source/filter/xml/wrtxml.cxx:361
LO exports content
    359     if( !m_bOrganizerMode && !bErr )
    360     {
    361         if( !WriteThroughComponent(
    362                 xModelComp, "content.xml", xContext,
    363                 (bOASIS ? "com.sun.star.comp.Writer.XMLOasisContentExporter"
    364                         : "com.sun.star.comp.Writer.XMLContentExporter"),
    365                 aFilterArgs, aProps ) )
    366         {
    367             bErr = true;
    368             sErrFile = "content.xml";
    369         }
    370     }

Then you can close LO to come back to main panel of Base
Now if you save from main panel you got:
#0  XMLFontAutoStylePool::exportXML() (this=0x7f6a6f0) at xmloff/source/style/XMLFontAutoStylePool.cxx:405
#1  0x00007fb650bf2f3d in SvXMLExport::ExportFontDecls_() (this=0x781ad80) at xmloff/source/core/xmlexp.cxx:1504
#2  0x00007fb6419060b8 in dbaxml::ODBExport::ExportFontDecls_() (this=0x781ad80) at dbaccess/source/filter/xml/xmlExport.cxx:1327
#3  0x00007fb650bf19f9 in SvXMLExport::exportDoc(xmloff::token::XMLTokenEnum) (this=0x781ad80, eClass=xmloff::token::XML_DATABASE) at xmloff/source/core/xmlexp.cxx:1390
#4  0x00007fb650bed0ef in SvXMLExport::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x781ad80, aDescriptor=uno::Sequence of length 6 = {...})
    at xmloff/source/core/xmlexp.cxx:797
#5  0x00007fb64158478a in dbaccess::ODatabaseDocument::WriteThroughComponent(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> const&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, char const*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) const
    (this=0x2667020, xOutputStream=uno::Reference to (OWriteStream *) 0x95dd360, xComponent=uno::Reference to (dbaccess::ODatabaseDocument *) 0x2667088, pServiceName=0x7fb64172ed36 "com.sun.star.comp.sdb.DBExportFilter", _rArguments=uno::Sequence of length 1 = {...}, rMediaDesc=uno::Sequence of length 6 = {...}) at dbaccess/source/core/dataaccess/databasedocument.cxx:1609
#6  0x00007fb641584244 in dbaccess::ODatabaseDocument::WriteThroughComponent(com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, char const*, char const*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) const
    (this=0x2667020, xComponent=uno::Reference to (dbaccess::ODatabaseDocument *) 0x2667088, pStreamName=0x7fb64172e039 "content.xml", pServiceName=0x7fb64172ed36 "com.sun.star.comp.sdb.DBExportFilter", _rArguments=uno::Sequence of length 1 = {...}, rMediaDesc=uno::Sequence of length 6 = {...}, _xStorageToSaveTo=uno::Reference to (OStorage *) 0x2a55a58) at dbaccess/source/core/dataaccess/databasedocument.cxx:1578
#7  0x00007fb641581247 in dbaccess::ODatabaseDocument::impl_writeStorage_throw(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, comphelper::NamedValueCollection const&) const
    (this=0x2667020, _rxTargetStorage=uno::Reference to (OStorage *) 0x2a55a58, _rMediaDescriptor=...) at dbaccess/source/core/dataaccess/databasedocument.cxx:1690
#8  0x00007fb64157a3df in dbaccess::ODatabaseDocument::impl_storeToStorage_throw(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, dbaccess::DocumentGuard&) const (this=0x2667020, _rxTargetStorage=uno::Reference to (OStorage *) 0x2a55a58, _rMediaDescriptor=uno::Sequence of length 6 = {...}, _rDocGuard=...)
    at dbaccess/source/core/dataaccess/databasedocument.cxx:1222
#9  0x00007fb64157ee4d in dbaccess::ODatabaseDocument::impl_storeAs_throw(rtl::OUString const&, comphelper::NamedValueCollection const&, dbaccess::ODatabaseDocument::StoreType, dbaccess::DocumentGuard&)
    (this=0x2667020, _rURL="file:///tmp/testjul.odb", _rArguments=..., _eType=dbaccess::ODatabaseDocument::SAVE, _rGuard=...) at dbaccess/source/core/dataaccess/databasedocument.cxx:1066
#10 0x00007fb64157e561 in dbaccess::ODatabaseDocument::store() (this=0x2667020) at dbaccess/source/core/dataaccess/databasedocument.cxx:968
#11 0x00007fb6409bf521 in dbaui::OApplicationController::Execute(unsigned short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x2d46210, _nId=5505, aArgs=uno::Sequence of length 1 = {...}) at dbaccess/source/ui/app/AppController.cxx:1067
#12 0x00007fb640ad159e in dbaui::OGenericUnoController::executeChecked(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x2d46210, _rCommand=..., aArgs=uno::Sequence of length 1 = {...}) at dbaccess/source/ui/browser/genericcontroller.cxx:1038
#13 0x00007fb640acde9d in dbaui::OGenericUnoController::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x2d46210, _aURL=..., aArgs=uno::Sequence of length 1 = {...}) at dbaccess/source/ui/browser/genericcontroller.cxx:648
#14 0x00007fb656d82871 in svt::ToolboxController::execute(short) (this=0x2dd5240, KeyModifier=0) at svtools/source/uno/toolboxcontroller.cxx:354
#15 0x00007fb65aaf5bd3 in framework::ToolBarManager::Select(ToolBox*) (this=0x2b5f740) at framework/source/uielement/toolbarmanager.cxx:1864
#16 0x00007fb65aae8400 in framework::ToolBarManager::LinkStubSelect(void*, ToolBox*) (instance=0x2b5f740, data=0x2b89930) at framework/source/uielement/toolbarmanager.cxx:1850
#17 0x00007fb654376888 in Link<ToolBox*, void>::Call(ToolBox*) const (this=0x2b89ea0, data=0x2b89930) at include/tools/link.hxx:111

and here m_bTryToEmbedFonts=false

Then I tried to apply what you suggested by putting m_bTryToEmbedFonts=false at the second bt and m_bTryToEmbedFonts=true at the last bt.
The pb is odb file size doesn't increase when we embed fonts as if there was no effect (unless I missed something?)
Comment 4 Julien Nabet 2020-12-12 16:33:52 UTC
I tested again and unzipped the resulted file.
First time I embed fonts, I got this (when grepping on fonts):
./Fonts/Font_FreeSans_1.ttf
./Fonts/Font_FreeSans_2.ttf
./Fonts/Font_Liberation_Sans_1.ttf
./Fonts/Font_Liberation_Sans_2.ttf
./Fonts/Font_Liberation_Sans_3.ttf
./Fonts/Font_Liberation_Sans_4.ttf
./Fonts/Font_Liberation_Serif_1.ttf
./Fonts/Font_Liberation_Serif_2.ttf
./Fonts/Font_Liberation_Serif_3.ttf
./Fonts/Font_Liberation_Serif_4.ttf

Then I edited the form again and saved without changing anything (so with still embed fonts):
./forms/Obj11/Fonts/Font_FreeSans_1.ttf
./forms/Obj11/Fonts/Font_FreeSans_2.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_1.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_2.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_3.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_4.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_1.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_2.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_3.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_4.ttf

another time:
./forms/Obj11/Fonts/Font_FreeSans_1.ttf
./forms/Obj11/Fonts/Font_FreeSans_2.ttf
./forms/Obj11/Fonts/Font_FreeSans_3.ttf
./forms/Obj11/Fonts/Font_FreeSans_4.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_1.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_2.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_3.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_4.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_5.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_6.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_7.ttf
./forms/Obj11/Fonts/Font_Liberation_Sans_8.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_1.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_2.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_3.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_4.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_5.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_6.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_7.ttf
./forms/Obj11/Fonts/Font_Liberation_Serif_8.ttf

So 2 pbs:
1) why first time fonts are directly in ./Fonts then they're in forms/Obj11/Fonts ?
2) between test2 and test3, why does it embed again all the fonts again?
Comment 5 QA Administrators 2022-12-13 03:19:21 UTC Comment hidden (obsolete)
Comment 6 philnsicab 2022-12-13 11:12:20 UTC
Created attachment 184126 [details]
Base file you can test the bug on
Comment 7 philnsicab 2022-12-13 11:16:25 UTC
On Windows 7, I still can reproduce the bug :
1. Open the database and edit the first formular.
2. In file > properties > Tick the two top crosses to include the fonts in the file.
3. Close and save the form, Close and save the file.
File is now about 9 MB.

4. Redo the steps 1,2,3 with the second form.
File is now about 19 MB.

And so on I guess !
Comment 8 philnsicab 2022-12-13 11:20:38 UTC
(In reply to philnsicab from comment #7)
> On Windows 7, I still can reproduce the bug :
> 1. Open the database and edit the first formular.
> 2. In file > properties > Tick the two top crosses to include the fonts in
> the file.
> 3. Close and save the form, Close and save the file.
> File is now about 9 MB.
> 
> 4. Redo the steps 1,2,3 with the second form.
> File is now about 19 MB.
> 
> And so on I guess !

5. Reopen the file and modify the two forms by unticking the crosses you crossed.
Save and close. File is still 19 MB.
Comment 9 Mike Kaganski 2022-12-13 11:23:24 UTC Comment hidden (noise, rant)
Comment 10 philnsicab 2022-12-13 11:41:59 UTC
On Ubuntu 22.04, bug is present :
size increases from 227 ko to 1 MO, and then 2.5 MO.
When unticking, file size remains 2.5 MO.
Comment 11 philnsicab 2022-12-13 11:48:41 UTC
Bug present on Windows 11 :
File size goes to 10.5 MO, and then to 22.6 MO.
When unticking, file size remains 22.6 MO.
Comment 12 philnsicab 2022-12-13 11:55:21 UTC
(In reply to philnsicab from comment #11)
> Bug present on Windows 11, with LO version 7.3.7.2 :
> File size goes to 10.5 MO, and then to 22.6 MO.
> When unticking, file size remains 22.6 MO.
Comment 13 philnsicab 2022-12-13 11:58:43 UTC Comment hidden (noise, rant)