Author: jeremias
Date: Mon Dec 22 06:14:40 2008
New Revision: 728700

URL: http://svn.apache.org/viewvc?rev=728700&view=rev
Log:
Fixed another spacing issue in IFRenderer.
Checks for spacing (kerning, letter-space and word-space combinations).

Modified:
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFRenderer.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFPainter.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/block_letter-spacing.xml
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/kerning_1_on.xml

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFRenderer.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFRenderer.java?rev=728700&r1=728699&r2=728700&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFRenderer.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFRenderer.java
 Mon Dec 22 06:14:40 2008
@@ -1002,10 +1002,11 @@
     protected void renderText(String s,
                            int[] letterAdjust,
                            Font font, AbstractTextArea parentArea) {
-        //float fontSize = font.getFontSize() / 1000f;
-
         int l = s.length();
 
+        if (letterAdjust != null) {
+            textUtil.adjust(letterAdjust[0]);
+        }
         for (int i = 0; i < l; i++) {
             char ch = s.charAt(i);
             textUtil.addChar(ch);
@@ -1014,8 +1015,8 @@
                 int tls = (i < l - 1 ? parentArea.getTextLetterSpaceAdjust() : 
0);
                 glyphAdjust += tls;
             }
-            if (letterAdjust != null && i < l) {
-                glyphAdjust += letterAdjust[i];
+            if (letterAdjust != null && i < l - 1) {
+                glyphAdjust += letterAdjust[i + 1];
             }
 
             textUtil.adjust(glyphAdjust);
@@ -1035,7 +1036,7 @@
 
         void adjust(int adjust) {
             if (adjust != 0) {
-                int idx = text.length() - 1;
+                int idx = text.length();
                 if (idx > dx.length - 1) {
                     int newSize = Math.max(dx.length, idx + 1) + 
INITIAL_BUFFER_SIZE;
                     int[] newDX = new int[newSize];

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFPainter.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFPainter.java?rev=728700&r1=728699&r2=728700&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFPainter.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFPainter.java
 Mon Dec 22 06:14:40 2008
@@ -283,7 +283,7 @@
         int dxl = (dx != null ? dx.length : 0);
 
         if (dx != null && dxl > 0 && dx[0] != 0) {
-            textutil.adjustGlyphTJ(-dx[0] / 10f);
+            textutil.adjustGlyphTJ(-dx[0] / fontSize);
         }
         for (int i = 0; i < l; i++) {
             char orgChar = text.charAt(i);

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/block_letter-spacing.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/block_letter-spacing.xml?rev=728700&r1=728699&r2=728700&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/block_letter-spacing.xml
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/block_letter-spacing.xml
 Mon Dec 22 06:14:40 2008
@@ -62,4 +62,20 @@
     <eval expected="2000" xpath="//flow/block[8]/lineArea[3]/text/@tlsadjust"/>
     <eval expected="2000" xpath="//flow/block[8]/lineArea[4]/text/@tlsadjust"/>
   </checks>
+  <if-checks xmlns:if="http://xmlgraphics.apache.org/fop/intermediate";>
+    <eval expected="Default space between characters is defined to be 0pt, 
i.e.," xpath="//if:text[2]"/>
+    <eval expected="0" xpath="//if:text[2]/@x"/>
+    <eval expected="24666" xpath="//if:text[2]/@y"/>
+    <true xpath="not(//if:text[2]/@dx)"/>
+
+    <eval expected="Default space between characters is defined to" 
xpath="//if:text[14]"/>
+    <eval expected="0" xpath="//if:text[14]/@x"/>
+    <eval expected="197466" xpath="//if:text[14]/@y"/>
+    <eval expected="0 2000 2000 2000 2000 2000 2000 0 4000 2000 2000 2000 2000 
0 4000 2000 2000 2000 2000 2000 2000 0 4000 2000 2000 2000 2000 2000 2000 2000 
2000 2000 0 4000 2000 0 4000 2000 2000 2000 2000 2000 2000 0 4000 2000" 
xpath="//if:text[14]/@dx"/>
+
+    <eval expected="Default space between characters is defined to be" 
xpath="//if:text[20]"/>
+    <eval expected="0" xpath="//if:text[20]/@x"/>
+    <eval expected="283866" xpath="//if:text[20]/@y"/>
+    <eval expected="0 1938 1938 1938 1938 1938 1938 0 3836 1938 1938 1938 1938 
0 3836 1938 1938 1938 1938 1938 1938 0 3836 1938 1938 1938 1938 1938 1938 1938 
1938 1938 0 3836 1938 0 3836 1938 1938 1938 1938 1938 1938 0 3836 1938 0 3836 
1938" xpath="//if:text[20]/@dx"/>
+  </if-checks>
 </testcase>

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/kerning_1_on.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/kerning_1_on.xml?rev=728700&r1=728699&r2=728700&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/kerning_1_on.xml
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/kerning_1_on.xml
 Mon Dec 22 06:14:40 2008
@@ -40,6 +40,12 @@
           <fo:block letter-spacing="1pt">
             <fo:block><fo:inline>VAVAV</fo:inline> text-text Hello 
World.</fo:block>
           </fo:block>
+          <fo:block word-spacing="5pt">
+            <fo:block><fo:inline>VAVAV</fo:inline> text-text Hello 
World.</fo:block>
+          </fo:block>
+          <fo:block letter-spacing="1pt" word-spacing="5pt">
+            <fo:block><fo:inline>VAVAV</fo:inline> text-text Hello 
World.</fo:block>
+          </fo:block>
         </fo:flow>
       </fo:page-sequence>
     </fo:root>
@@ -54,4 +60,46 @@
     <eval expected="0" 
xpath="//flow/block[2]/block[1]/lineArea/inlineparent/text/word/@offset"/>
     <eval expected="0 -960 -840 -960 -840" 
xpath="//flow/block[2]/block[1]/lineArea/inlineparent/text/word/@letter-adjust"/>
   </checks>
+  <if-checks xmlns:if="http://xmlgraphics.apache.org/fop/intermediate";>
+    <eval expected="VAVAV" xpath="//if:text[1]"/>
+    <eval expected="0" xpath="//if:text[1]/@x"/>
+    <eval expected="10266" xpath="//if:text[1]/@y"/>
+    <eval expected="0 -960 -840 -960 -840" xpath="//if:text[1]/@dx"/>
+    
+    <eval expected=" text-text Hello World." xpath="//if:text[2]"/>
+    <eval expected="36420" xpath="//if:text[2]/@x"/>
+    <eval expected="10266" xpath="//if:text[2]/@y"/>
+    <eval expected="0 0 0 -360 0 0 0 0 -360 0 0 0 0 0 0 0 0 0 -360 0 180" 
xpath="//if:text[2]/@dx"/>
+
+    <eval expected="VAVAV" xpath="//if:text[3]"/>
+    <eval expected="0" xpath="//if:text[3]/@x"/>
+    <eval expected="24666" xpath="//if:text[3]/@y"/>
+    <eval expected="0 40 160 40 160" xpath="//if:text[3]/@dx"/>
+    
+    <eval expected=" text-text Hello World." xpath="//if:text[4]"/>
+    <eval expected="40420" xpath="//if:text[4]/@x"/>
+    <eval expected="24666" xpath="//if:text[4]/@y"/>
+    <eval expected="0 2000 1000 640 1000 1000 1000 1000 640 1000 0 2000 1000 
1000 1000 1000 0 2000 640 1000 1180 1000 1000" xpath="//if:text[4]/@dx"/>
+
+    <eval expected="VAVAV" xpath="//if:text[5]"/>
+    <eval expected="0" xpath="//if:text[5]/@x"/>
+    <eval expected="39066" xpath="//if:text[5]/@y"/>
+    <eval expected="0 -960 -840 -960 -840" xpath="//if:text[5]/@dx"/>
+    
+    <eval expected=" text-text Hello World." xpath="//if:text[6]"/>
+    <eval expected="36420" xpath="//if:text[6]/@x"/>
+    <eval expected="39066" xpath="//if:text[6]/@y"/>
+    <eval expected="0 5000 0 -360 0 0 0 0 -360 0 0 5000 0 0 0 0 0 5000 -360 0 
180" xpath="//if:text[6]/@dx"/>
+
+    <eval expected="VAVAV" xpath="//if:text[7]"/>
+    <eval expected="0" xpath="//if:text[7]/@x"/>
+    <eval expected="53466" xpath="//if:text[7]/@y"/>
+    <eval expected="0 40 160 40 160" xpath="//if:text[7]/@dx"/>
+    
+    <eval expected=" text-text Hello World." xpath="//if:text[8]"/>
+    <eval expected="40420" xpath="//if:text[8]/@x"/>
+    <eval expected="53466" xpath="//if:text[8]/@y"/>
+    <eval expected="0 5000 1000 640 1000 1000 1000 1000 640 1000 0 5000 1000 
1000 1000 1000 0 5000 640 1000 1180 1000 1000" xpath="//if:text[8]/@dx"/>
+    
+  </if-checks>
 </testcase>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to