20 #include <libxml/xmlwriter.h>
26 int writeCallback(
void* pContext,
const char* sBuffer,
int nLen )
33 uno::XInterface* pObj =
static_cast<uno::XInterface*
>(pContext);
34 uno::Reference< io::XOutputStream > xOut( pObj, uno::UNO_QUERY_THROW );
37 uno::Sequence< sal_Int8 > seq( nLen );
38 strncpy( reinterpret_cast<char *>(seq.getArray()), sBuffer, nLen );
39 xOut->writeBytes( seq );
41 catch (
const uno::Exception&)
49 int closeCallback(
void* pContext )
54 uno::XInterface* pObj =
static_cast<uno::XInterface*
>(pContext);
55 uno::Reference< io::XOutputStream > xOut( pObj, uno::UNO_QUERY_THROW );
58 catch (
const uno::Exception&)
85 uno::Reference< io::XOutputStream > xOut = aMediaDesc.getUnpackedValueOrDefault(
87 uno::Reference< io::XOutputStream >() );
90 auto pXDoc = comphelper::getUnoTunnelImplementation<SwXTextDocument>(
m_xSrcDoc);
93 SwRootFrame* pLayout = pXDoc->GetDocShell()->GetWrtShell()->GetLayout();
97 pXDoc->GetDocShell()->GetWrtShell()->StartAction();
99 pXDoc->GetDocShell()->SetVisArea( aRect );
101 pXDoc->GetDocShell()->GetWrtShell()->EndAction();
104 xmlOutputBufferPtr outBuffer = xmlOutputBufferCreateIO(
105 writeCallback, closeCallback, static_cast<void*>(xOut.get()),
nullptr );
108 xmlTextWriterSetIndent(writer, 1);
109 xmlTextWriterStartDocument( writer,
nullptr,
nullptr,
nullptr );
114 xmlTextWriterEndDocument( writer );
115 xmlFreeTextWriter( writer );
141 return "com.sun.star.comp.Writer.LayoutDump";
151 return {
"com.sun.star.document.ExportFilter" };
157 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
159 css::uno::Sequence<css::uno::Any>
const &)
void InvalidateAllContent(SwInvalidateFlags nInvalidate)
Invalidate all Content, Size or PrtArea.
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual void dumpAsXml(xmlTextWriterPtr writer=nullptr) const
Dialog to specify the properties of date form field.
The root element of a Writer document layout.
virtual ~LayoutDumpFilter() override
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
struct _xmlTextWriter * xmlTextWriterPtr
css::uno::Reference< css::lang::XComponent > m_xSrcDoc
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
virtual void SAL_CALL cancel() override
virtual void SAL_CALL setSourceDocument(const css::uno::Reference< css::lang::XComponent > &xDoc) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual sal_Bool SAL_CALL filter(const css::uno::Sequence< css::beans::PropertyValue > &aDescriptor) override
Implementation of UNO export service to dump the layout of the document as XML.
virtual OUString SAL_CALL getImplementationName() override
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_LayoutDump_get_implementation(css::uno::XComponentContext *, css::uno::Sequence< css::uno::Any > const &)