Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
6a9271ff
Kaydet (Commit)
6a9271ff
authored
Nis 14, 2014
tarafından
Stephan Bergmann
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Remove unused code
Change-Id: I4e1e9f8c9b98fa77c8149fc5f876a2e7777b19e8
üst
5b8ca52f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
0 additions
and
183 deletions
+0
-183
LotusWordProImportFilter.cxx
lotuswordpro/source/filter/LotusWordProImportFilter.cxx
+0
-170
lwpfilter.cxx
lotuswordpro/source/filter/lwpfilter.cxx
+0
-13
No files found.
lotuswordpro/source/filter/LotusWordProImportFilter.cxx
Dosyayı görüntüle @
6a9271ff
...
@@ -60,176 +60,6 @@ using com::sun::star::xml::sax::XParser;
...
@@ -60,176 +60,6 @@ using com::sun::star::xml::sax::XParser;
// W o r d P r o
// W o r d P r o
static
const
sal_Int8
header
[]
=
{
0x57
,
0x6f
,
0x72
,
0x64
,
0x50
,
0x72
,
0x6f
};
static
const
sal_Int8
header
[]
=
{
0x57
,
0x6f
,
0x72
,
0x64
,
0x50
,
0x72
,
0x6f
};
const
sal_Int32
MAXCHARS
=
65534
;
// Simple xml importer, currently the importer is very very simple
// it only extracts pure text from the wordpro file. Absolutely no formatting
// information is currently imported.
// To reflect the current state of this importer the sax events sent
// to the document handler are also the simplest possible. In addition to
// the basic attributes set up for the 'office:document' element
// all the imported text is inserted into 'text:p' elements.
// The parser extracts the pure text and creates simple a simple 'text:p'
// element to contain that text. In the event of the text exceeding
// MAXCHARS new 'text:p' elements are created as needed
class
SimpleXMLImporter
{
private
:
uno
::
Reference
<
XDocumentHandler
>
m_xDocHandler
;
std
::
vector
<
OUString
>
m_vStringChunks
;
SvStream
&
m_InputStream
;
bool
CheckValidData
(
sal_Int8
nChar
)
const
{
if
(
(
nChar
>=
0x20
&&
nChar
<=
0x7E
)
&&
(
nChar
!=
0X40
)
)
return
true
;
return
false
;
}
void
addAttribute
(
SvXMLAttributeList
*
pAttrList
,
const
char
*
key
,
const
char
*
val
)
{
pAttrList
->
AddAttribute
(
OUString
::
createFromAscii
(
key
),
OUString
::
createFromAscii
(
val
)
);
}
void
writeTextChunk
(
const
OUString
&
sChunk
)
{
SvXMLAttributeList
*
pAttrList
=
new
SvXMLAttributeList
();
uno
::
Reference
<
XAttributeList
>
xAttrList
(
pAttrList
);
pAttrList
->
AddAttribute
(
"text:style-name"
,
"Standard"
);
m_xDocHandler
->
startElement
(
"text:p"
,
xAttrList
);
m_xDocHandler
->
characters
(
sChunk
);
m_xDocHandler
->
endElement
(
"text:p"
);
}
void
writeDocContentPreamble
()
{
SvXMLAttributeList
*
pDocContentPropList
=
new
SvXMLAttributeList
();
uno
::
Reference
<
XAttributeList
>
xDocContentList
(
pDocContentPropList
);
addAttribute
(
pDocContentPropList
,
"xmlns:office"
,
"urn:oasis:names:tc:opendocument:xmlns:office:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:style"
,
"urn:oasis:names:tc:opendocument:xmlns:style:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:text"
,
"urn:oasis:names:tc:opendocument:xmlns:text:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:table"
,
"urn:oasis:names:tc:opendocument:xmlns:table:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:draw"
,
"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:fo"
,
"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:xlink"
,
"http://www.w3.org/1999/xlink"
);
addAttribute
(
pDocContentPropList
,
"xmlns:dc"
,
"http://purl.org/dc/elements/1.1/"
);
addAttribute
(
pDocContentPropList
,
"xmlns:meta"
,
"urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:number"
,
"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:svg"
,
"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:chart"
,
"urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:dr3d"
,
"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:math"
,
"http://www.w3.org/1998/Math/MathML"
);
addAttribute
(
pDocContentPropList
,
"xmlns:form"
,
"urn:oasis:names:tc:opendocument:xmlns:form:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:script"
,
"urn:oasis:names:tc:opendocument:xmlns:script:1.0"
);
addAttribute
(
pDocContentPropList
,
"xmlns:ooo"
,
"http://openoffice.org/2004/office"
);
addAttribute
(
pDocContentPropList
,
"xmlns:ooow"
,
"http://openoffice.org/2004/writer"
);
addAttribute
(
pDocContentPropList
,
"xmlns:oooc"
,
"http://openoffice.org/2004/calc"
);
addAttribute
(
pDocContentPropList
,
"xmlns:dom"
,
"http://www.w3.org/2001/xml-events"
);
addAttribute
(
pDocContentPropList
,
"xmlns:xforms"
,
"http://www.w3.org/2002/xforms"
);
addAttribute
(
pDocContentPropList
,
"xmlns:xsd"
,
"http://www.w3.org/2001/XMLSchema"
);
addAttribute
(
pDocContentPropList
,
"xmlns:xsi"
,
"http://www.w3.org/2001/XMLSchema-instance"
);
addAttribute
(
pDocContentPropList
,
"office:version"
,
"1.0"
);
m_xDocHandler
->
startElement
(
"office:document-content"
,
xDocContentList
);
}
void
parseDoc
()
{
sal_uInt8
nDelim
,
nDummy
,
nLen
,
nData
;
sal_uInt16
nOpcode
;
OUStringBuffer
sBuf
(
MAXCHARS
);
sal_Int32
nChars
=
0
;
while
(
!
m_InputStream
.
IsEof
())
{
m_InputStream
.
ReadUChar
(
nDelim
);
if
(
nDelim
==
0x40
)
{
m_InputStream
.
ReadUChar
(
nDummy
).
ReadUInt16
(
nOpcode
);
switch
(
nOpcode
)
{
case
0xC00B
:
// Dictionary Word
m_InputStream
.
ReadUChar
(
nLen
).
ReadUChar
(
nDummy
);
while
(
nLen
>
0
&&
!
m_InputStream
.
IsEof
()
)
{
sal_uInt8
nChar
;
m_InputStream
.
ReadUChar
(
nChar
);
if
(
CheckValidData
(
nChar
)
)
{
sBuf
.
appendAscii
(
(
sal_Char
*
)(
&
nChar
),
1
);
if
(
++
nChars
>=
MAXCHARS
)
{
m_vStringChunks
.
push_back
(
sBuf
.
makeStringAndClear
()
);
nChars
=
0
;
}
}
nLen
--
;
}
break
;
case
0x0242
:
// Non Dictionary word
m_InputStream
.
ReadUChar
(
nData
);
if
(
nData
==
0x02
)
{
m_InputStream
.
ReadUChar
(
nLen
).
ReadUChar
(
nDummy
);
while
(
nLen
>
0
&&
!
m_InputStream
.
IsEof
()
)
{
m_InputStream
.
ReadUChar
(
nData
);
if
(
CheckValidData
(
nData
)
)
{
sBuf
.
appendAscii
(
(
sal_Char
*
)(
&
nData
),
1
);
if
(
++
nChars
>=
MAXCHARS
)
{
m_vStringChunks
.
push_back
(
sBuf
.
makeStringAndClear
()
);
nChars
=
0
;
}
}
nLen
--
;
}
}
break
;
}
}
}
if
(
nChars
)
m_vStringChunks
.
push_back
(
sBuf
.
makeStringAndClear
()
);
}
void
writeXML
()
{
if
(
!
m_vStringChunks
.
empty
()
)
{
m_xDocHandler
->
startDocument
();
SvXMLAttributeList
*
pAttrList
=
new
SvXMLAttributeList
();
writeDocContentPreamble
();
// writes "office:document-content" elem
uno
::
Reference
<
XAttributeList
>
xAttrList
(
pAttrList
);
m_xDocHandler
->
startElement
(
"office:body"
,
xAttrList
);
// process strings imported
std
::
vector
<
OUString
>::
const_iterator
it
=
m_vStringChunks
.
begin
();
std
::
vector
<
OUString
>::
const_iterator
it_end
=
m_vStringChunks
.
end
();
for
(
;
it
!=
it_end
;
++
it
)
writeTextChunk
(
*
it
);
m_xDocHandler
->
endElement
(
"office:body"
);
m_xDocHandler
->
endElement
(
"office:document-content"
);
m_xDocHandler
->
endDocument
();
}
}
public
:
SimpleXMLImporter
(
const
uno
::
Reference
<
XDocumentHandler
>&
xDocHandler
,
SvStream
&
rStream
)
:
m_xDocHandler
(
xDocHandler
),
m_InputStream
(
rStream
)
{}
void
import
()
{
parseDoc
();
writeXML
();
}
};
sal_Bool
SAL_CALL
LotusWordProImportFilter
::
importImpl
(
const
Sequence
<
::
com
::
sun
::
star
::
beans
::
PropertyValue
>&
aDescriptor
)
sal_Bool
SAL_CALL
LotusWordProImportFilter
::
importImpl
(
const
Sequence
<
::
com
::
sun
::
star
::
beans
::
PropertyValue
>&
aDescriptor
)
throw
(
RuntimeException
)
throw
(
RuntimeException
)
{
{
...
...
lotuswordpro/source/filter/lwpfilter.cxx
Dosyayı görüntüle @
6a9271ff
...
@@ -130,14 +130,6 @@ void LWPFilterReader::cancel() throw (com::sun::star::uno::RuntimeException, std
...
@@ -130,14 +130,6 @@ void LWPFilterReader::cancel() throw (com::sun::star::uno::RuntimeException, std
{
{
}
}
uno
::
Reference
<
XInterface
>
LWPFilterImportFilter_CreateInstance
(
const
uno
::
Reference
<
XMultiServiceFactory
>&
rSMgr
)
throw
(
Exception
)
{
LWPFilterImportFilter
*
p
=
new
LWPFilterImportFilter
(
rSMgr
);
return
uno
::
Reference
<
XInterface
>
(
(
OWeakObject
*
)
p
);
}
LWPFilterImportFilter
::
LWPFilterImportFilter
(
const
uno
::
Reference
<
XMultiServiceFactory
>&
xFact
)
LWPFilterImportFilter
::
LWPFilterImportFilter
(
const
uno
::
Reference
<
XMultiServiceFactory
>&
xFact
)
{
{
try
try
...
@@ -414,11 +406,6 @@ int ReadWordproFile(SvStream &rStream, uno::Reference<XDocumentHandler>& xHandle
...
@@ -414,11 +406,6 @@ int ReadWordproFile(SvStream &rStream, uno::Reference<XDocumentHandler>& xHandle
}
}
}
}
void
ErrorMsg
(
int
/*iErrCode*/
)
{
}
/**
/**
* @descr Compare if pBuf equals with the first 16 bytes
* @descr Compare if pBuf equals with the first 16 bytes
* @param pBuf that contains the file data
* @param pBuf that contains the file data
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment