20#include "mswordimport.h"
23#include <tqfontinfo.h>
27#include <kgenericfactory.h>
29#include <KoFilterChain.h>
33typedef KGenericFactory<MSWordImport, KoFilter> MSWordImportFactory;
34K_EXPORT_COMPONENT_FACTORY( libmswordimport, MSWordImportFactory(
"kofficefilters" ) )
36MSWordImport::MSWordImport( KoFilter *, const
char *, const TQStringList& ) : KoFilter()
40MSWordImport::~MSWordImport()
44KoFilter::ConversionStatus MSWordImport::convert(
const TQCString& from,
const TQCString& to )
47 if ( to !=
"application/x-kword" || from !=
"application/msword" )
48 return KoFilter::NotImplemented;
50 kdDebug(30513) <<
"######################## MSWordImport::convert ########################" << endl;
52 TQDomDocument mainDocument;
53 TQDomElement framesetsElem;
54 prepareDocument( mainDocument, framesetsElem );
56 TQDomDocument documentInfo;
57 documentInfo.appendChild (documentInfo.createProcessingInstruction(
"xml",
"version=\"1.0\" encoding=\"UTF-8\"" ) );
59 Document document( TQFile::encodeName( m_chain->inputFile() ).data(), mainDocument, documentInfo, framesetsElem, m_chain );
61 if ( !document.hasParser() )
62 return KoFilter::WrongFormat;
63 if ( !document.parse() )
64 return KoFilter::ParsingError;
65 document.processSubDocQueue();
66 document.finishDocument();
67 if ( !document.bodyFound() )
68 return KoFilter::WrongFormat;
70 KoStoreDevice* out = m_chain->storageFile(
"root", KoStore::Write );
72 kdError(30502) <<
"Unable to open output file!" << endl;
73 return KoFilter::StorageCreationError;
75 TQCString cstr = mainDocument.toCString();
77 out->writeBlock( cstr, cstr.length() );
80 out = m_chain->storageFile(
"documentinfo.xml", KoStore::Write );
82 return KoFilter::StorageCreationError;
85 cstr = documentInfo.toCString();
86 out->writeBlock( cstr, cstr.length() );
89 kdDebug(30513) <<
"######################## MSWordImport::convert done ####################" << endl;
93void MSWordImport::prepareDocument( TQDomDocument& mainDocument, TQDomElement& framesetsElem )
95 mainDocument.appendChild( mainDocument.createProcessingInstruction(
"xml",
"version=\"1.0\" encoding=\"UTF-8\"" ) );
97 TQDomElement elementDoc;
98 elementDoc=mainDocument.createElement(
"DOC");
99 elementDoc.setAttribute(
"editor",
"KWord's MS Word Import Filter");
100 elementDoc.setAttribute(
"mime",
"application/x-kword");
101 elementDoc.setAttribute(
"syntaxVersion",2);
102 mainDocument.appendChild(elementDoc);
104 framesetsElem=mainDocument.createElement(
"FRAMESETS");
105 mainDocument.documentElement().appendChild(framesetsElem);
108#include <mswordimport.moc>
This class hold a whole document with its headers, footers, footnotes, endnotes, content,...