diff --git a/svx/source/unodraw/unomod.cxx b/svx/source/unodraw/unomod.cxx index f8af587091aa..3ae9b269b336 100644 --- a/svx/source/unodraw/unomod.cxx +++ b/svx/source/unodraw/unomod.cxx @@ -49,6 +49,7 @@ #include #include #include +#include #include @@ -183,6 +184,13 @@ uno::Reference< uno::XInterface > SAL_CALL SvxUnoDrawMSFactory::createInstance( return uno::Reference< uno::XInterface >( (drawing::XShape*) SvxDrawPage::CreateShapeByTypeAndInventor( nT, nI ) ); } } + else if ( rServiceSpecifier == "com.sun.star.document.ImportGraphicObjectResolver" ) + { + SvXMLGraphicHelper* pGraphicHelper = SvXMLGraphicHelper::Create( GRAPHICHELPER_MODE_READ ); + uno::Reference< uno::XInterface> xRet( static_cast< ::cppu::OWeakObject* >( pGraphicHelper ) ); + pGraphicHelper->release(); + return xRet; + } uno::Reference< uno::XInterface > xRet( createTextField( rServiceSpecifier ) ); if( !xRet.is() ) diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx index fb457b6cf76c..1a4bb7a0adc6 100644 --- a/xmloff/source/text/txtimp.cxx +++ b/xmloff/source/text/txtimp.cxx @@ -1167,8 +1167,12 @@ void XMLTextImportHelper::InsertTextContent( DBG_ASSERT(m_pImpl->m_xCursorAsRange.is(), "no range"); if (m_pImpl->m_xText.is()) { - m_pImpl->m_xText->insertTextContent( - m_pImpl->m_xCursorAsRange, xContent, sal_False); + try { + m_pImpl->m_xText->insertTextContent( m_pImpl->m_xCursorAsRange, xContent, sal_False); + } catch ( const lang::IllegalArgumentException & ) + { + SAL_WARN( "xmloff", "Cannot import part of the text - probably an image in the text frame?" ); + } } }