15#include <libwps/libwps.h>
23 OdfDocumentHandler* pHandler,
const OdfStreamType streamType)
25 OdsGenerator exporter;
26 exporter.addDocumentHandler(pHandler, streamType);
27 return libwps::WPSDocument::parse(data.getDataStream(), &exporter) == libwps::WPS_OK;
31 librevenge::RVNGInputStream& rInput,
32 OdtGenerator& rGenerator,
35 libwps::WPSKind kind = libwps::WPS_TEXT;
36 libwps::WPSCreator creator;
37 bool needEncoding =
false;
38 const libwps::WPSConfidence confidence
39 = libwps::WPSDocument::isFileFormatSupported(&rInput, kind, creator, needEncoding);
41 std::string fileEncoding;
42 if ((kind == libwps::WPS_TEXT) && (confidence == libwps::WPS_CONFIDENCE_EXCELLENT)
48 if (!encoding.isEmpty())
49 fileEncoding = encoding.toUtf8().getStr();
56 case libwps::WPS_MSWORKS:
57 title =
WpResId(STR_ENCODING_DIALOG_TITLE_MSWORKS);
60 case libwps::WPS_RESERVED_0:
61 title =
WpResId(STR_ENCODING_DIALOG_TITLE_MSWRITE);
64 case libwps::WPS_RESERVED_1:
65 title =
WpResId(STR_ENCODING_DIALOG_TITLE_DOSWORD);
69 title =
WpResId(STR_ENCODING_DIALOG_TITLE);
74 fileEncoding = encoding.toUtf8().getStr();
81 fileEncoding = aDlg.
GetEncoding().toUtf8().getStr();
87 catch (css::uno::Exception&)
94 == libwps::WPSDocument::parse(&rInput, &rGenerator,
"", fileEncoding.c_str());
99 libwps::WPSKind kind = libwps::WPS_TEXT;
100 libwps::WPSCreator creator;
102 const libwps::WPSConfidence confidence
103 = libwps::WPSDocument::isFileFormatSupported(&rInput, kind, creator, needEncoding);
105 if ((kind == libwps::WPS_TEXT) && (confidence == libwps::WPS_CONFIDENCE_EXCELLENT))
109 case libwps::WPS_MSWORKS:
110 rTypeName =
"writer_MS_Works_Document";
112 case libwps::WPS_RESERVED_0:
113 rTypeName =
"writer_MS_Write";
115 case libwps::WPS_RESERVED_1:
116 rTypeName =
"writer_DosWord";
118 case libwps::WPS_RESERVED_4:
119 rTypeName =
"writer_PocketWord_File";
126 return !rTypeName.isEmpty();
137 return "com.sun.star.comp.Writer.MSWorksImportFilter";
147 return {
"com.sun.star.document.ImportFilter",
"com.sun.star.document.ExtendedTypeDetection" };
150extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
152 css::uno::XComponentContext*
const context,
const css::uno::Sequence<css::uno::Any>&)
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_Writer_MSWorksImportFilter_get_implementation(css::uno::XComponentContext *const context, const css::uno::Sequence< css::uno::Any > &)
static bool handleEmbeddedWKSObject(const librevenge::RVNGBinaryData &data, OdfDocumentHandler *pHandler, const OdfStreamType streamType)
OUString WpResId(TranslateId aId)
virtual bool doDetectFormat(librevenge::RVNGInputStream &rInput, OUString &rTypeName) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual bool doImportDocument(weld::Window *pParent, librevenge::RVNGInputStream &rInput, OdtGenerator &rGenerator, utl::MediaDescriptor &) override
virtual OUString SAL_CALL getImplementationName() override
virtual void doRegisterHandlers(OdtGenerator &rGenerator) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
OUString GetEncoding() const
bool hasUserCalledCancel() const
#define TOOLS_WARN_EXCEPTION(area, stream)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)