implement NBLANK export to .docx

This commit is contained in:
Luboš Luňák
2011-08-30 12:16:14 +02:00
parent d1359c4d6e
commit a32fe391c2

View File

@@ -166,18 +166,17 @@ void SmOoxml::HandleNode( const SmNode* pNode, int nLevel )
case NALIGN: case NALIGN:
HandleMAlign(pNode,nLevel); HandleMAlign(pNode,nLevel);
break; break;
#endif
case NPLACE: case NPLACE:
// explicitly do nothing, MSOffice treats that as a placeholder if item is missing // explicitly do nothing, MSOffice treats that as a placeholder if item is missing
break; break;
case NBLANK: case NBLANK:
*pS << sal_uInt8(CHAR); m_pSerializer->startElementNS( XML_m, XML_r, FSEND );
*pS << sal_uInt8(0x98); m_pSerializer->startElementNS( XML_m, XML_t, FSNS( XML_xml, XML_space ), "preserve", FSEND );
if (pNode->GetToken().eType == TSBLANK) m_pSerializer->write( " " );
*pS << sal_uInt16(0xEB04); m_pSerializer->endElementNS( XML_m, XML_t );
else m_pSerializer->endElementNS( XML_m, XML_r );
*pS << sal_uInt16(0xEB05);
break; break;
#endif
default: default:
HandleAllSubNodes( pNode, nLevel ); HandleAllSubNodes( pNode, nLevel );
break; break;
@@ -252,7 +251,7 @@ void SmOoxml::HandleText( const SmNode* pNode, int /*nLevel*/)
FSNS( XML_w, XML_hAnsi ), "Cambria Math", FSEND ); FSNS( XML_w, XML_hAnsi ), "Cambria Math", FSEND );
m_pSerializer->endElementNS( XML_w, XML_rPr ); m_pSerializer->endElementNS( XML_w, XML_rPr );
} }
m_pSerializer->startElementNS( XML_m, XML_t, FSEND ); m_pSerializer->startElementNS( XML_m, XML_t, FSNS( XML_xml, XML_space ), "preserve", FSEND );
SmTextNode* pTemp=(SmTextNode* )pNode; SmTextNode* pTemp=(SmTextNode* )pNode;
// fprintf(stderr, "T %s\n", rtl::OUStringToOString( pTemp->GetText(), RTL_TEXTENCODING_UTF8 ).getStr()); // fprintf(stderr, "T %s\n", rtl::OUStringToOString( pTemp->GetText(), RTL_TEXTENCODING_UTF8 ).getStr());
for(xub_StrLen i=0;i<pTemp->GetText().Len();i++) for(xub_StrLen i=0;i<pTemp->GetText().Len();i++)