To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=103400
                 Issue #|103400
                 Summary|PDF horizontal layout bug when glyphs are out of order
               Component|gsl
                 Version|DEV300m49
                Platform|All
                     URL|
              OS/Version|All
                  Status|UNCONFIRMED
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P3
            Subcomponent|code
             Assigned to|kstribley
             Reported by|kstribley





------- Additional comments from kstrib...@openoffice.org Wed Jul  8 05:20:43 
+0000 2009 -------
Some glyphs in a PDF export are displaced with Burmese text using the Padauk 
font.

The fix for i100522 uses an abs to fix the problem with 180 degree rotated text.
This assumes that the glyphs are strictly in left to right order. However, the
abs also takes affect when you have a negative advance between two glyphs with
zero rotation causing incorrect positioning. A better fix would be to invert the
sign of the correction only in the case where the angle is really 180 (PI).


Index: vcl/source/gdi/pdfwriter_impl.cxx
===================================================================
--- vcl/source/gdi/pdfwriter_impl.cxx   (revision 272475)
+++ vcl/source/gdi/pdfwriter_impl.cxx   (working copy)
@@ -6680,7 +6680,9 @@
             appendHex( rGlyphs[nPos].m_nMappedGlyphId, aUnkernedLine );
             // check for adjustment
             double fTheoreticalGlyphWidth = rGlyphs[nPos].m_aPos.X() -
rGlyphs[nPos-1].m_aPos.X();
-            fTheoreticalGlyphWidth = fabs( fTheoreticalGlyphWidth ); //
#i100522# workaround until #i87686# gets fixed
+            // #i100522# workaround until #i87686# gets fixed
+            if (fAngle > M_PI - 0.005 && fAngle < M_PI + 0.005)
+                fTheoreticalGlyphWidth = -fTheoreticalGlyphWidth;
             fTheoreticalGlyphWidth = 1000.0 * fTheoreticalGlyphWidth / fXScale
/ double(nPixelFontHeight);
             sal_Int32 nAdjustment = rGlyphs[nPos-1].m_nNativeWidth -
sal_Int32(fTheoreticalGlyphWidth+0.5);
             if( nAdjustment != 0 )

---------------------------------------------------------------------
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: issues-unsubscr...@gsl.openoffice.org
For additional commands, e-mail: issues-h...@gsl.openoffice.org


---------------------------------------------------------------------
To unsubscribe, e-mail: allbugs-unsubscr...@openoffice.org
For additional commands, e-mail: allbugs-h...@openoffice.org

Reply via email to