24#include <tdemessagebox.h>
26#include <KoFilterChain.h>
29#include <kgenericfactory.h>
31#include "KPrDocument.h"
38typedef KGenericFactory<SvgExport, KoFilter> SvgExportFactory;
39K_EXPORT_COMPONENT_FACTORY( libkpresentersvgexport, SvgExportFactory(
"svgexport" ) )
41SvgExport::SvgExport(KoFilter *, const
char *, const TQStringList&)
46SvgExport::~SvgExport()
51KoFilter::ConversionStatus
52SvgExport::convert(
const TQCString& from,
const TQCString& to)
54 KoDocument * document = m_chain->inputDocument();
57 return KoFilter::StupidError;
59 if ( strcmp(document->className(),
"KPrDocument") != 0)
61 kdWarning() <<
"document isn't a KPrDocument but a "
62 << document->className() << endl;
63 return KoFilter::NotImplemented;
67 if ( from !=
"application/x-kpresenter" || to !=
"image/svg+xml" )
69 kdWarning() <<
"Invalid mimetypes " << to <<
" " << from << endl;
70 return KoFilter::NotImplemented;
72 KPrDocument * kpresenterdoc =
const_cast<KPrDocument *
>(
static_cast<const KPrDocument *
>(document));
74 if ( kpresenterdoc->mimeType() !=
"application/x-kpresenter" )
76 kdWarning() <<
"Invalid document mimetype " << kpresenterdoc->mimeType() << endl;
77 return KoFilter::NotImplemented;
79 KoPageLayout layoutPage= kpresenterdoc->pageLayout();
80 int width = int( layoutPage.ptWidth );
81 int height = int( layoutPage.ptHeight );
84 TQPainter painter(&picture);
85 TQRect rect(TQPoint(0, 0), TQPoint(width, height));
86 kpresenterdoc->paintContent(painter, rect,
false);
89 if ( !picture.save( m_chain->outputFile(),
"SVG" ) ) {
90 KMessageBox::error( 0, i18n(
"Failed to write file." ),
91 i18n(
"SVG Export Error" ) );
98#include "svgexport.moc"