mirror of https://github.com/apache/poi.git
TextShape.getMarginLeft() returned incorrect value. Added a unit test for text margins.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@668257 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
becda4a35e
commit
0276e8cad1
|
@ -355,7 +355,7 @@ public abstract class TextShape extends SimpleShape {
|
||||||
*/
|
*/
|
||||||
public float getMarginLeft(){
|
public float getMarginLeft(){
|
||||||
EscherOptRecord opt = (EscherOptRecord)getEscherChild(_escherContainer, EscherOptRecord.RECORD_ID);
|
EscherOptRecord opt = (EscherOptRecord)getEscherChild(_escherContainer, EscherOptRecord.RECORD_ID);
|
||||||
EscherSimpleProperty prop = (EscherSimpleProperty)getEscherProperty(opt, EscherProperties.TEXT__TEXTBOTTOM);
|
EscherSimpleProperty prop = (EscherSimpleProperty)getEscherProperty(opt, EscherProperties.TEXT__TEXTLEFT);
|
||||||
int val = prop == null ? EMU_PER_INCH/10 : prop.getPropertyValue();
|
int val = prop == null ? EMU_PER_INCH/10 : prop.getPropertyValue();
|
||||||
return (float)val/EMU_PER_POINT;
|
return (float)val/EMU_PER_POINT;
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -23,6 +23,7 @@ import junit.framework.TestCase;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
import org.apache.poi.hslf.usermodel.SlideShow;
|
import org.apache.poi.hslf.usermodel.SlideShow;
|
||||||
import org.apache.poi.hslf.record.TextHeaderAtom;
|
import org.apache.poi.hslf.record.TextHeaderAtom;
|
||||||
|
@ -157,4 +158,46 @@ public class TestTextShape extends TestCase {
|
||||||
assertEquals("Testing TextShape", shape1.getTextRun().getText());
|
assertEquals("Testing TextShape", shape1.getTextRun().getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testMargins() throws IOException {
|
||||||
|
FileInputStream is = new FileInputStream(new File(cwd, "text-margins.ppt"));
|
||||||
|
SlideShow ppt = new SlideShow(is);
|
||||||
|
is.close();
|
||||||
|
|
||||||
|
Slide slide = ppt.getSlides()[0];
|
||||||
|
|
||||||
|
HashMap map = new HashMap();
|
||||||
|
Shape[] shape = slide.getShapes();
|
||||||
|
for (int i = 0; i < shape.length; i++) {
|
||||||
|
if(shape[i] instanceof TextShape){
|
||||||
|
TextShape tx = (TextShape)shape[i];
|
||||||
|
map.put(tx.getText(), tx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TextShape tx;
|
||||||
|
|
||||||
|
tx = (TextShape)map.get("TEST1");
|
||||||
|
assertEquals(0.1, tx.getMarginLeft()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.1, tx.getMarginRight()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.39, tx.getMarginTop()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.05, tx.getMarginBottom()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
|
||||||
|
tx = (TextShape)map.get("TEST2");
|
||||||
|
assertEquals(0.1, tx.getMarginLeft()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.1, tx.getMarginRight()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.05, tx.getMarginTop()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.39, tx.getMarginBottom()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
|
||||||
|
tx = (TextShape)map.get("TEST3");
|
||||||
|
assertEquals(0.39, tx.getMarginLeft()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.1, tx.getMarginRight()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.05, tx.getMarginTop()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.05, tx.getMarginBottom()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
|
||||||
|
tx = (TextShape)map.get("TEST4");
|
||||||
|
assertEquals(0.1, tx.getMarginLeft()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.39, tx.getMarginRight()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.05, tx.getMarginTop()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
assertEquals(0.05, tx.getMarginBottom()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue