20 #include <com/sun/star/text/XTextDocument.hpp>
21 #include <com/sun/star/drawing/XDrawPageSupplier.hpp>
22 #include <com/sun/star/beans/XPropertySet.hpp>
23 #include <com/sun/star/container/XIndexContainer.hpp>
24 #include <com/sun/star/document/IndexedPropertyValues.hpp>
25 #include <com/sun/star/xforms/XFormsSupplier.hpp>
26 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
41 #include <drawdoc.hxx>
49 #include <unotext.hxx>
81 const uno::Reference< uno::XComponentContext >& rContext,
86 m_bShowProgress( true ),
87 m_bSavedShowChanges( false ),
107 const OUString sAutoTextMode(
"AutoTextMode");
108 if( rInfoSet->getPropertySetInfo()->hasPropertyByName(
111 Any aAny = rInfoSet->getPropertyValue(sAutoTextMode);
125 if(
getExportFlags() & (SvXMLExportFlags::FONTDECLS|SvXMLExportFlags::STYLES|
126 SvXMLExportFlags::MASTERSTYLES|SvXMLExportFlags::CONTENT))
146 for(
int j=0; j < nWhichIds; ++j )
148 const sal_uInt16 nWhichId = aWhichIds[j];
152 OSL_ENSURE( pUnknown,
"illegal attribute container item" );
153 if( pUnknown && (pUnknown->GetAttrCount() > 0) )
155 sal_uInt16 nIdx = pUnknown->GetFirstNamespaceIndex();
159 pUnknown->GetNamespace( nIdx ) );
160 nIdx = pUnknown->GetNextNamespaceIndex( nIdx );
211 if(
getExportFlags() & (SvXMLExportFlags::MASTERSTYLES|SvXMLExportFlags::CONTENT))
246 SvXMLEmbeddedObjectHelperMode::Write );
254 bool(
getExportFlags() & (SvXMLExportFlags::CONTENT|SvXMLExportFlags::STYLES) );
263 bSaveRedline = ! rInfoSet->getPropertySetInfo()->hasPropertyByName(
286 if (xGraphicStorageHandler)
287 xGraphicStorageHandler->dispose();
288 xGraphicStorageHandler.clear();
289 if( xEmbeddedResolver )
290 xEmbeddedResolver->dispose();
291 xEmbeddedResolver.clear();
293 OSL_ENSURE( !
m_pTableLines,
"there are table columns infos left" );
306 Reference < XDrawPageSupplier > xDPS(
GetModel(), UNO_QUERY );
309 Reference < XShapes > xShapes = xDPS->getDrawPage();
332 PropertyValue *pValue = aProps.getArray();
335 pValue[0].Name =
"Views";
336 pValue[0].Value <<= xBox;
343 OSL_ENSURE( bTwip,
"Map unit for visible area is not in TWIPS!" );
345 pValue[1].Name =
"ViewAreaTop";
348 pValue[2].Name =
"ViewAreaLeft";
351 pValue[3].Name =
"ViewAreaWidth";
354 pValue[4].Name =
"ViewAreaHeight";
364 const OUString sShowChanges(
"ShowChanges" );
365 if( xInfoSet->getPropertySetInfo()->hasPropertyByName( sShowChanges ) )
367 bShowRedlineChanges = *o3tl::doAccess<bool>(xInfoSet->
372 pValue[5].Name =
"ShowRedlineChanges";
373 pValue[5].Value <<= bShowRedlineChanges;
375 pValue[6].Name =
"InBrowseMode";
381 Reference< XMultiServiceFactory > xFac(
GetModel(), UNO_QUERY );
393 uno::Sequence<beans::PropertyValue> aXFormsSettings;
394 Reference< XFormsSupplier > xXFormsSupp(
GetModel(), UNO_QUERY );
396 if ( xXFormsSupp.is() )
397 xXForms = xXFormsSupp->getXForms().get();
414 OUStringBuffer sBuffer;
417 sBuffer.makeStringAndClear());
424 Reference<XDrawPageSupplier> xDrawPageSupplier(
GetModel(), UNO_QUERY);
425 if (xDrawPageSupplier.is())
428 Reference<XDrawPage> xPage = xDrawPageSupplier->getDrawPage();
451 Any aAny = xPropSet->getPropertyValue(
"TwoDigitYear" );
452 aAny <<= sal_Int16(1930);
465 Reference < XTextDocument > xTextDoc(
GetModel(), UNO_QUERY );
466 Reference < XText > xText = xTextDoc->getText();
474 class theSwXMLExportUnoTunnelId :
public rtl::Static< UnoTunnelIdInit, theSwXMLExportUnoTunnelId > {};
484 if( isUnoTunnelId<SwXMLExport>(rId) )
486 return sal::static_int_cast< sal_Int64 >(
reinterpret_cast< sal_IntPtr
>(
this) );
488 return SvXMLExport::getSomething( rId );
495 Reference < XTextDocument > xTextDoc(
GetModel(), UNO_QUERY );
498 SAL_WARN(
"sw.filter",
"Problem of mismatching filter for export.");
502 Reference < XText > xText = xTextDoc->getText();
503 Reference<XUnoTunnel> xTextTunnel( xText, UNO_QUERY);
504 assert( xTextTunnel.is());
507 assert( pText !=
nullptr );
518 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
520 css::uno::Sequence<css::uno::Any>
const &)
522 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLExporter",
523 SvXMLExportFlags::ALL));
526 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
528 css::uno::Sequence<css::uno::Any>
const &)
530 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLStylesExporter",
531 SvXMLExportFlags::STYLES | SvXMLExportFlags::MASTERSTYLES | SvXMLExportFlags::AUTOSTYLES |
532 SvXMLExportFlags::FONTDECLS));
535 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
537 css::uno::Sequence<css::uno::Any>
const &)
539 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLContentExporter",
540 SvXMLExportFlags::SCRIPTS | SvXMLExportFlags::CONTENT | SvXMLExportFlags::AUTOSTYLES |
541 SvXMLExportFlags::FONTDECLS));
544 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
546 css::uno::Sequence<css::uno::Any>
const &)
548 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLMetaExporter",
549 SvXMLExportFlags::META));
552 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
554 css::uno::Sequence<css::uno::Any>
const &)
556 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLSettingsExporter",
557 SvXMLExportFlags::SETTINGS));
560 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
562 css::uno::Sequence<css::uno::Any>
const &)
564 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLOasisExporter",
565 SvXMLExportFlags::ALL | SvXMLExportFlags::OASIS));
568 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
570 css::uno::Sequence<css::uno::Any>
const &)
572 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLOasisStylesExporter",
573 SvXMLExportFlags::STYLES | SvXMLExportFlags::MASTERSTYLES | SvXMLExportFlags::AUTOSTYLES |
574 SvXMLExportFlags::FONTDECLS | SvXMLExportFlags::OASIS));
577 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
579 css::uno::Sequence<css::uno::Any>
const &)
581 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLOasisContentExporter",
582 SvXMLExportFlags::AUTOSTYLES | SvXMLExportFlags::CONTENT | SvXMLExportFlags::SCRIPTS |
583 SvXMLExportFlags::FONTDECLS | SvXMLExportFlags::OASIS));
586 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
588 css::uno::Sequence<css::uno::Any>
const &)
590 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLOasisMetaExporter",
591 SvXMLExportFlags::META | SvXMLExportFlags::OASIS));
594 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
596 css::uno::Sequence<css::uno::Any>
const &)
598 return cppu::acquire(
new SwXMLExport(context,
"com.sun.star.comp.Writer.XMLOasisSettingsExporter",
599 SvXMLExportFlags::SETTINGS | SvXMLExportFlags::OASIS));
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
constexpr TypedWhichId< SvXMLAttrContainerItem > RES_UNKNOWNATR_CONTAINER(RES_UNKNOWNATR_BEGIN)
IDocumentStatistics const & getIDocumentStatistics() const
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLStylesExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
virtual const SwRootFrame * GetCurrentLayout() const =0
SwDocShell * GetDocShell()
#define ERR_SWG_WRITE_ERROR
rtl::Reference< XMLTextParagraphExport > const & GetTextParagraphExport()
const SvXMLUnitConverter & GetMM100UnitConverter() const
void seekShapes(const css::uno::Reference< css::drawing::XShapes > &xShapes)
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLMetaExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
void SetXMLMeasureUnit(sal_Int16 const eXMLMeasureUnit)
SwXMLExport(const css::uno::Reference< css::uno::XComponentContext > &rContext, OUString const &implementationName, SvXMLExportFlags nExportFlags)
virtual const SwDocStat & GetUpdatedDocStat(bool bCompleteAsync, bool bFields)=0
Updates the document statistics if the document has been modified and returns a reference to the resu...
virtual void GetConfigurationSettings(css::uno::Sequence< css::beans::PropertyValue > &aProps) override
The root element of a Writer document layout.
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLContentExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
virtual ErrCode exportDoc(enum::xmloff::token::XMLTokenEnum eClass=::xmloff::token::XML_TOKEN_INVALID)
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId()
IDocumentDrawModelAccess const & getIDocumentDrawModelAccess() const
virtual XMLShapeExport * CreateShapeExport() override
const css::uno::Reference< css::frame::XModel > & GetModel() const
ProgressBarHelper * GetProgressBarHelper()
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
bool getPropertyValue(ValueType &rValue, css::uno::Reference< css::beans::XPropertySet > const &xPropSet, OUString const &propName)
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLOasisContentExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
void AddAttribute(sal_uInt16 nPrefix, const char *pName, const OUString &rValue)
constexpr TypedWhichId< SvXMLAttrContainerItem > EE_PARA_XMLATTRIBS(EE_PARA_START+1)
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLSettingsExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
void SetEmbeddedResolver(css::uno::Reference< css::document::XEmbeddedObjectResolver > const &_xEmbeddedResolver)
virtual sal_Int64 SAL_CALL getSomething(const css::uno::Sequence< sal_Int8 > &aIdentifier) override
SvtSaveOptions::ODFSaneDefaultVersion getSaneDefaultVersion() const
virtual tools::Rectangle GetVisArea(sal_uInt16 nAspect) const override
sal_uInt16 GetPageCount() const
constexpr sal_uInt16 XML_NAMESPACE_TEXT
const css::uno::Reference< css::document::XGraphicStorageHandler > & GetGraphicStorageHandler() const
Helper class to pause starting of threads during existence of an instance of this class...
static rtl::Reference< SvXMLEmbeddedObjectHelper > Create(const css::uno::Reference< css::embed::XStorage > &,::comphelper::IEmbeddedHelper &rDocPersist, SvXMLEmbeddedObjectHelperMode eCreateMode)
const SwDoc * getDoc() const
std::unique_ptr< SvXMLUnitConverter > m_pTwipUnitConverter
const SdrPage * GetPage(sal_uInt16 nPgNum) const
virtual sal_Int32 GetDocumentSpecificSettings(std::vector< SettingsGroup > &_out_rSettings) override
virtual const SwDrawModel * GetDrawModel() const =0
Draw Model and id accessors.
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLOasisStylesExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
bool mbSaveLinkedSections
const css::uno::Reference< css::document::XEmbeddedObjectResolver > & GetEmbeddedResolver() const
virtual ErrCode exportDoc(enum::xmloff::token::XMLTokenEnum eClass=::xmloff::token::XML_TOKEN_INVALID) override
virtual XMLTextParagraphExport * CreateTextParagraphExport() override
IDocumentLayoutAccess const & getIDocumentLayoutAccess() const
static bool convertBool(bool &rBool, std::u16string_view rString)
void SetGraphicStorageHandler(css::uno::Reference< css::document::XGraphicStorageHandler > const &rxGraphicStorageHandler)
SfxItemPool * GetSecondaryPool() const
const css::uno::Reference< css::beans::XPropertySet > & getExportInfo() const
OUString const & GetImageFilterName() const
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
static sal_Int16 GetMeasureUnit(FieldUnit const nFieldUnit)
constexpr sal_uInt16 XML_NAMESPACE_TABLE
constexpr sal_Int64 convertTwipToMm100(sal_Int64 n)
const SwCharFormats * GetCharFormats() const
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLOasisSettingsExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
virtual void ExportFontDecls_() override
virtual sal_Int32 GetDocumentSpecificSettings(::std::vector< SettingsGroup > &_out_rSettings)
SvXMLNamespaceMap & GetNamespaceMap_()
virtual void UpdateDocStat(bool bCompleteAsync, bool bFields)=0
Updates the internal document's statistics.
const SwTextFormatColls * GetTextFormatColls() const
virtual void ExportContent_() override
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLOasisMetaExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
virtual const SwViewShell * GetCurrentViewShell() const =0
Returns the layout set at the document.
sal_Int32 GetReference() const
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
rtl::Reference< SvXMLAutoStylePoolP > const & GetAutoStylePool()
rtl::Reference< XMLFontAutoStylePool > const & GetFontAutoStylePool()
virtual void SetBodyAttributes() override
const o3tl::enumarray< SvxAdjust, unsigned short > aSvxToUnoAdjust USHRT_MAX
virtual void SetRedlineFlags(RedlineFlags eMode)=0
Set a new redline mode.
MapUnit GetMapUnit() const
virtual ~SwXMLExport() override
IDocumentSettingAccess const & getIDocumentSettingAccess() const
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
Item2Range GetItemSurrogates(sal_uInt16 nWhich) const
SfxObjectShell * GetPersist() const
sal_uInt16 Add(const OUString &rPrefix, const OUString &rName, sal_uInt16 nKey=XML_NAMESPACE_UNKNOWN)
Reference< XComponentContext > getProcessComponentContext()
void SetValue(sal_Int32 nValue)
static void convertPropertySet(css::uno::Sequence< css::beans::PropertyValue > &rProps, const css::uno::Reference< css::beans::XPropertySet > &aProperties)
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
virtual void GetViewSettings(css::uno::Sequence< css::beans::PropertyValue > &aProps) override
constexpr sal_uInt16 XML_NAMESPACE_OFFICE_EXT
static SvXMLExportPropertyMapper * CreateShapeExtPropMapper(SvXMLExport &rExport)
void SetReference(sal_Int32 nVal)
rtl::Reference< xmloff::OFormLayerXMLExport > const & GetFormExport()
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_XMLOasisExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
virtual RedlineFlags GetRedlineFlags() const =0
Query the currently set redline mode.
#define SAL_WARN(area, stream)
detail::Optional< bool >::type tryAccess< bool >(css::uno::Any const &any)
static rtl::Reference< SvXMLGraphicHelper > Create(const css::uno::Reference< css::embed::XStorage > &rXMLStorage, SvXMLGraphicHelperMode eCreateMode)
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId()
const SwFrameFormats * GetFrameFormats() const
sal_uLong nAllPara
all paragraphs, including empty/hidden ones
constexpr TypedWhichId< SvXMLAttrContainerItem > SDRATTR_XMLATTRIBUTES(SDRATTR_MISC_FIRST+22)
SvXMLExportFlags getExportFlags() const
virtual void ExportFontDecls_()
constexpr TypedWhichId< SvXMLAttrContainerItem > EE_CHAR_XMLATTRIBS(EE_CHAR_START+28)
constexpr TypedWhichId< SvXMLAttrContainerItem > RES_TXTATR_UNKNOWN_CONTAINER(54)
const SwAttrPool & GetAttrPool() const
std::unique_ptr< SwXMLTableLinesCache_Impl > m_pTableLines