To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=86769
User tora changed the following:
What |Old value |New value
================================================================================
CC|'' |'tora'
--------------------------------------------------------------------------------
Summary|WW8: Imported WordArt obje|WW8: WordArt gets imported
|ct is located in wrong pos| at wrong position in case
|ition on vertical page lay| of vertical writing
|out |
--------------------------------------------------------------------------------
------- Additional comments from [EMAIL PROTECTED] Thu Jun 26 07:55:35 +0000
2008 -------
Through an experiment aiming to look into the cause of this issue, the
following facts have been found:
- The measurement system of WordArt is altered in case of vertical writing.
- That of Writer is NOT changed in case of vertical writing.
- Measurement conversion from Word in vertical writing to Writer can be
implemented in the following way:
Index: ww8graf.cxx
===================================================================
RCS file: /cvs/sw/sw/source/filter/ww8/ww8graf.cxx,v
retrieving revision 1.151
diff -U 63 -r1.151 ww8graf.cxx
--- ww8graf.cxx 10 Apr 2008 17:23:45 -0000 1.151
+++ ww8graf.cxx 26 Jun 2008 07:33:14 -0000
@@ -2435,126 +2435,142 @@
SwFrmFmt* SwWW8ImplReader::Read_GrafLayer( long nGrafAnchorCp )
{
...(omitted)...
WW8_FSPA_SHADOW* pFS = (WW8_FSPA_SHADOW*)pF0;
WW8_FSPA* pF;
#ifdef __WW8_NEEDS_COPY
WW8_FSPA aFSFA;
pF = &aFSFA;
WW8FSPAShadowToReal( pFS, pF );
#else
pF = (WW8_FSPA*)pFS;
#endif // defined __WW8_NEEDS_COPY
if( !pF->nSpId )
{
ASSERT( !this, "+Wo ist die Grafik (3) ?" );
return 0;
}
if (!pMSDffManager->GetModel())
pMSDffManager->SetModel(pDrawModel, 1440);
+ // --> #i86769#
+ fprintf(stderr, " nXaLeft = %ld, nYaTop = %ld, nXaRight = %ld, nYaBottom
= %ld\n", pF->nXaLeft, pF->nYaTop, pF->nXaRight, pF->nYaBottom);
+ if (1) // Todo: need to determine if the TextFlow is in vertical writing.
+ {
+ // In case of vertical writing, the mesurment system of Word should be
converted into that of Writer.
+ sal_Int32 nLeft = pF->nXaLeft;
+ sal_Int32 nTop = pF->nYaTop;
+ sal_Int32 nRight = pF->nXaRight;
+ sal_Int32 nBottom = pF->nYaBottom;
+ pF->nXaLeft = nTop;
+ pF->nYaTop = 0 - nRight;
+ pF->nXaRight = nRight - nLeft + nTop;
+ pF->nYaBottom = nBottom - nTop - nRight;
+ }
+ fprintf(stderr, " nXaLeft = %ld, nYaTop = %ld, nXaRight = %ld, nYaBottom
= %ld\n", pF->nXaLeft, pF->nYaTop, pF->nXaRight, pF->nYaBottom);
+ // <-- #i86769#
Rectangle aRect(pF->nXaLeft, pF->nYaTop, pF->nXaRight, pF->nYaBottom);
SvxMSDffImportData aData( aRect );
...(omitted)...
Questions:
(a) Is there any practical way to know if the document is in vertical writing
within the method SwWW8ImplReader::Read_GrafLayer()?
(b) Are there any comments to solve this issue?
---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]