Hi,
I have problem in libreoffice code. Libreoffice is not releasing memory after
converting document to pdf. Can someone explain me how to release memory. which
function is called for this.
Thanks and Regards,
Mahesh
sample code
input is word document and output is pdf document
nbsp;nbsp;nbsp; OUString aInURL = translateExternalUris(aInputURL);
nbsp;nbsp;nbsp; OUString aOutURL = translateExternalUris(aOutputURL);
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; Referencelt; XDesktop2 gt; xDesktop = Desktop::create(
::comphelper::getProcessComponentContext() );
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; // create parameter array
nbsp;nbsp;nbsp; sal_Int32 nCount = 5;
nbsp;nbsp;nbsp; const desktop::CommandLineArgsamp; rArgs =
desktop::Desktop::GetCommandLineArgs();
nbsp;nbsp;nbsp; aOutURL = desktop::GetURL_Impl( aOutURL, rArgs.getCwdUrl());
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; Sequence lt; PropertyValue gt; aArgs( nCount );
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; // mark request as user interaction from outside
nbsp;nbsp;nbsp; aArgs[0].Name = Referer;
nbsp;nbsp;nbsp; aArgs[0].Value lt;lt;= OUString(private:OpenEvent);
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; aArgs[1].Name = ReadOnly;
nbsp;nbsp;nbsp; aArgs[2].Name = OpenNewView;
nbsp;nbsp;nbsp; aArgs[3].Name = Hidden;
nbsp;nbsp;nbsp; aArgs[4].Name = Silent;
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; OUString aName(desktop::GetURL_Impl( aInURL,
rArgs.getCwdUrl()) );
nbsp;nbsp;nbsp; OUString aTarget(_default);
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; // documents opened for printing are opened readonly because
they must be opened as a new document and this
nbsp;nbsp;nbsp; // document could be open already
nbsp;nbsp;nbsp; aArgs[1].Value lt;lt;= sal_True;
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; // always open a new document for printing, because it must
be disposed afterwards
nbsp;nbsp;nbsp; aArgs[2].Value lt;lt;= sal_True;
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; // printing is done in a hidden view
nbsp;nbsp;nbsp; aArgs[3].Value lt;lt;= sal_True;
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; // load document for printing without user interaction
nbsp;nbsp;nbsp; aArgs[4].Value lt;lt;= sal_True;
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; // hidden documents should never be put into open tasks
nbsp;nbsp;nbsp; aTarget = _blank;
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; // load the document ... if they are loadable!
nbsp;nbsp;nbsp; // Otherwise try to dispatch it ...
nbsp;nbsp;nbsp; Reference lt; XPrintable gt; xDoc;
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; // This is a synchron loading of a component so we don't
have to deal with our statusChanged listener mechanism.
nbsp;nbsp;nbsp; try
nbsp;nbsp;nbsp; {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; xDoc = Reference lt; XPrintable
gt;( ::comphelper::SynchronousDispatch::dispatch( xDesktop, aName, aTarget, 0,
aArgs ), UNO_QUERY );
nbsp;nbsp;nbsp; }
nbsp;nbsp;nbsp; catch (const
::com::sun::star::lang::IllegalArgumentExceptionamp; iae)
nbsp;nbsp;nbsp; {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; SAL_WARN(
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
desktop.app,
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
Dispatchwatcher IllegalArgumentException while calling
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
loadComponentFromURL: \ lt;lt; iae.Message lt;lt; \);
nbsp;nbsp;nbsp; }
nbsp;nbsp;nbsp; catch (const com::sun::star::io::IOExceptionamp; ioe)
nbsp;nbsp;nbsp; {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; SAL_WARN(
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
desktop.app,
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
Dispatchwatcher IOException while calling
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
loadComponentFromURL: \ lt;lt; ioe.Message lt;lt; \);
nbsp;nbsp;nbsp; }
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp; if (xDoc.is() )
nbsp;nbsp;nbsp; {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; Referencelt; XStorable gt;
xStorable( xDoc, UNO_QUERY );
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; if ( xStorable.is() )
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; {
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; OUString
aFilter = impl_GuessFilter( aName, aOutURL );
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
Sequencelt;PropertyValuegt; conversionProperties( 2 );
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
conversionProperties[0].Name = Overwrite;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
conversionProperties[0].Value lt;lt;= sal_True;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
conversionProperties[1].Name = FilterName;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
conversionProperties[1].Value lt;lt;= aFilter;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; OUString
aTempName;