20 #ifndef INCLUDED_OOX_CORE_XMLFILTERBASE_HXX
21 #define INCLUDED_OOX_CORE_XMLFILTERBASE_HXX
24 #include <string_view>
27 #include <com/sun/star/uno/Reference.hxx>
32 #include <rtl/ustring.hxx>
36 namespace document {
class XDocumentProperties; }
37 namespace io {
class XInputStream; }
38 namespace io {
class XOutputStream; }
39 namespace io {
class XStream; }
40 namespace text {
class XText; }
41 namespace text {
class XTextCursor; }
42 namespace text {
class XTextField; }
43 namespace uno {
class XComponentContext; }
44 namespace xml::dom {
class XDocument; }
45 namespace xml::sax {
class XFastSAXSerializable; }
49 namespace drawingml {
class Theme; }
50 namespace drawingml::chart {
class ChartConverter; }
51 namespace drawingml::table {
55 namespace vml {
class Drawing; }
58 namespace rtl {
template <
class reference_type>
class Reference; }
63 typedef std::shared_ptr< FastSerializerHelper >
FSHelperPtr;
66 namespace utl {
class MediaDescriptor; }
75 class FragmentHandler;
79 css::uno::Reference< css::text::XText >
xText;
88 = std::map<std::shared_ptr<drawingml::Shape>, css::uno::Reference<css::drawing::XShape>>;
96 const css::uno::Reference< css::uno::XComponentContext >& rxContext );
101 virtual const ::oox::drawingml::Theme* getCurrentTheme()
const = 0;
104 virtual std::shared_ptr<::oox::drawingml::Theme> getCurrentThemePtr()
const;
107 virtual ::oox::vml::Drawing* getVmlDrawing() = 0;
111 virtual ::oox::drawingml::chart::ChartConverter* getChartConverter() = 0;
120 OUString getFragmentPathFromFirstTypeFromOfficeDoc( std::u16string_view rPart );
137 css::uno::Reference< css::xml::dom::XDocument>
importFragment(
const OUString& rFragmentPath );
150 bool importFragment( const ::rtl::Reference< FragmentHandler >& rxHandler,
151 const css::uno::Reference< css::xml::sax::XFastSAXSerializable >& rxSerializer );
157 RelationsRef importRelations(
const OUString& rFragmentPath );
169 OUString addRelation(
const OUString& rType, std::u16string_view rTarget );
184 OUString addRelation(
const css::uno::Reference< css::io::XOutputStream >& rOutputStream,
const OUString& rType, std::u16string_view rTarget,
bool bExternal =
false );
187 TextFieldStack& getTextFieldStack()
const;
203 css::uno::Reference< css::io::XOutputStream >
205 const OUString& rStreamName,
206 const OUString& rMediaType );
224 openFragmentStreamWithSerializer(
225 const OUString& rStreamName,
226 const OUString& rMediaType );
238 void exportDocumentProperties(
const css::uno::Reference< css::document::XDocumentProperties >& xProperties,
bool bSecurityOptOpenReadOnly );
241 void exportCustomFragments();
244 void importDocumentProperties();
246 static void putPropertiesToDocumentGrabBag(
const css::uno::Reference<css::lang::XComponent>& xDstDoc,
251 bool isMSO2007Document()
const;
252 bool isMSODocument()
const;
256 void setMissingExtDrawing();
261 void checkDocumentProperties(
262 const css::uno::Reference<css::document::XDocumentProperties>& xDocProps);
264 OUString getNamespaceURL(sal_Int32 nNSID)
const;
267 virtual css::uno::Reference< css::io::XInputStream >
270 virtual css::uno::Reference< css::io::XStream >
277 const css::uno::Reference< css::io::XInputStream >& rxInStream )
const override;
279 const css::uno::Reference< css::io::XStream >& rxOutStream )
const override;
281 void importCustomFragments(css::uno::Reference<css::embed::XStorage>
const & xDocumentStorage);
284 ::std::unique_ptr< XmlFilterBaseImpl >
mxImpl;
std::shared_ptr< Relations > RelationsRef
virtual void useInternalChartDataTable(bool)
Helper to switch chart data table - specifically for xlsx imports.
std::map< OUString, ShapePairs > NamedShapePairs
std::shared_ptr< TableStyleList > TableStyleListPtr
css::uno::Reference< css::text::XTextField > xTextField
std::shared_ptr< StorageBase > StorageRef
sal_Int32 GetUniqueId()
Returns new unique ID for exported document.
static void importFragment(core::XmlFilterBase &rFilter, const uno::Reference< xml::dom::XDocument > &rXDom, const OUString &rDocName, const DiagramPtr &pDiagram, const rtl::Reference< core::FragmentHandler > &rxHandler)
::std::unique_ptr< XmlFilterBaseImpl > mxImpl
exports com.sun.star. text
std::vector< TextField > TextFieldStack
std::shared_ptr< FastSerializerHelper > FSHelperPtr
std::map< std::shared_ptr< drawingml::Shape >, css::uno::Reference< css::drawing::XShape >> ShapePairs
exports com.sun.star. document
css::uno::Reference< css::text::XText > xText
Wrapper for a fast SAX parser that works on automatically generated OOXML token and namespace identif...
css::uno::Reference< css::text::XTextCursor > xTextCursor