Author: alg
Date: Tue Sep 10 11:48:33 2013
New Revision: 1521441

URL: http://svn.apache.org/r1521441
Log:
i123216 No FontScaling by WorldTransform on WMF import

Modified:
    openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx
    openoffice/trunk/main/svtools/source/filter/wmf/winmtf.cxx
    openoffice/trunk/main/svtools/source/filter/wmf/winmtf.hxx
    openoffice/trunk/main/svtools/source/filter/wmf/wmf.cxx

Modified: openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx?rev=1521441&r1=1521440&r2=1521441&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx (original)
+++ openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx Tue Sep 10 
11:48:33 2013
@@ -1023,14 +1023,18 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
                                        }
                                        aLogFont.alfFaceName = UniString( 
lfFaceName );
 
-                    // #121382# Need to apply WorldTransform to 
FontHeight/Width; this should be completely
-                    // chnaged to basegfx::B2DHomMatrix instead of 'struct 
XForm', but not now due to time
-                    // constraints and dangers
-                    const XForm& rXF = pOut->GetWorldTransform();
-                    const basegfx::B2DHomMatrix aWT(rXF.eM11, rXF.eM21, 
rXF.eDx, rXF.eM12, rXF.eM22, rXF.eDy);
-                    const basegfx::B2DVector aTransVec(aWT * 
basegfx::B2DVector(aLogFont.lfWidth, aLogFont.lfHeight));
-                    aLogFont.lfWidth = aTransVec.getX();
-                    aLogFont.lfHeight = aTransVec.getY();
+                    // #123216# Not used in the test case of #121382# (always 
identity in XForm), also
+                    // no hints in ms docu if FontSize should be scaled with 
WT. Using with the example 
+                    // from #123216# creates errors, so removing.
+                    //
+                    // // #121382# Need to apply WorldTransform to 
FontHeight/Width; this should be completely
+                    // // chnaged to basegfx::B2DHomMatrix instead of 'struct 
XForm', but not now due to time
+                    // // constraints and dangers
+                    // const XForm& rXF = pOut->GetWorldTransform();
+                    // const basegfx::B2DHomMatrix aWT(rXF.eM11, rXF.eM21, 
rXF.eDx, rXF.eM12, rXF.eM22, rXF.eDy);
+                    // const basegfx::B2DVector aTransVec(aWT * 
basegfx::B2DVector(aLogFont.lfWidth, aLogFont.lfHeight));
+                    // aLogFont.lfWidth = aTransVec.getX();
+                    // aLogFont.lfHeight = aTransVec.getY();
 
                                        pOut->CreateObject( nIndex, GDI_FONT, 
new WinMtfFontStyle( aLogFont ) );
                                }

Modified: openoffice/trunk/main/svtools/source/filter/wmf/winmtf.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/filter/wmf/winmtf.cxx?rev=1521441&r1=1521440&r2=1521441&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/filter/wmf/winmtf.cxx (original)
+++ openoffice/trunk/main/svtools/source/filter/wmf/winmtf.cxx Tue Sep 10 
11:48:33 2013
@@ -2055,10 +2055,10 @@ void WinMtfOutput::ModifyWorldTransform(
        {
                case MWT_IDENTITY :
                {
-                       maXForm.eM11 = maXForm.eM12 = maXForm.eM21 = 
maXForm.eM22 = 1.0f;
-                       maXForm.eDx = maXForm.eDy = 0.0f;
+            maXForm.eM11 = maXForm.eM22 = 1.0f;
+            maXForm.eM12 = maXForm.eM21 = maXForm.eDx = maXForm.eDy = 0.0f;
+            break;
                }
-               break;
 
                case MWT_RIGHTMULTIPLY :
                case MWT_LEFTMULTIPLY :
@@ -2117,8 +2117,13 @@ void WinMtfOutput::ModifyWorldTransform(
             maXForm.eM22 = cF[1][1];
             maXForm.eDx = cF[2][0];
             maXForm.eDy = cF[2][1];
+            break;
+        }
+        case MWT_SET:
+        {
+            SetWorldTransform(rXForm);
+            break;
         }
-        break;
        }
  }
 

Modified: openoffice/trunk/main/svtools/source/filter/wmf/winmtf.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/filter/wmf/winmtf.hxx?rev=1521441&r1=1521440&r2=1521441&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/filter/wmf/winmtf.hxx (original)
+++ openoffice/trunk/main/svtools/source/filter/wmf/winmtf.hxx Tue Sep 10 
11:48:33 2013
@@ -68,6 +68,7 @@
 #define MWT_IDENTITY                   1
 #define MWT_LEFTMULTIPLY               2
 #define MWT_RIGHTMULTIPLY              3
+#define MWT_SET                 4
 
 #define ENHMETA_STOCK_OBJECT    0x80000000
 

Modified: openoffice/trunk/main/svtools/source/filter/wmf/wmf.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/filter/wmf/wmf.cxx?rev=1521441&r1=1521440&r2=1521441&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/filter/wmf/wmf.cxx (original)
+++ openoffice/trunk/main/svtools/source/filter/wmf/wmf.cxx Tue Sep 10 11:48:33 
2013
@@ -50,6 +50,13 @@ sal_Bool ConvertWMFToGDIMetaFile( SvStre
        {
                WMFReader( rStreamWMF, rGDIMetaFile, pConfigItem ).ReadWMF();
        }
+
+#ifdef DBG_UTIL
+    // #123216# allow a look at CheckSum and ByteSize for debugging
+    const sal_uLong aC(rGDIMetaFile.GetChecksum());
+    const sal_uLong aB(rGDIMetaFile.GetSizeBytes());
+#endif
+
        rStreamWMF.SetNumberFormatInt( nOrigNumberFormat );
        return !rStreamWMF.GetError();
 }


Reply via email to