You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2016/06/05 01:04:58 UTC
svn commit: r1746858 - in /poi/trunk:
src/ooxml/java/org/apache/poi/xslf/model/
src/ooxml/java/org/apache/poi/xslf/usermodel/
src/ooxml/testcases/org/apache/poi/xslf/usermodel/ test-data/slideshow/
Author: kiwiwings
Date: Sun Jun 5 01:04:58 2016
New Revision: 1746858
URL: http://svn.apache.org/viewvc?rev=1746858&view=rev
Log:
Regression fix for XSLF
- master style was always overridden, because of r1745100
- AIOOB in TextDirection mapping
Added:
poi/trunk/test-data/slideshow/table_test2.pptx (with props)
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFLineBreak.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextRun.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java?rev=1746858&r1=1746857&r2=1746858&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java Sun Jun 5 01:04:58 2016
@@ -22,17 +22,13 @@ package org.apache.poi.xslf.model;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties;
-/**
- *
- * @author Yegor Kozlov
- */
public abstract class CharacterPropertyFetcher<T> extends ParagraphPropertyFetcher<T> {
public CharacterPropertyFetcher(int level) {
super(level);
}
public boolean fetch(CTTextParagraphProperties props) {
- if (props.isSetDefRPr()) {
+ if (props != null && props.isSetDefRPr()) {
return fetch(props.getDefRPr());
}
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFLineBreak.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFLineBreak.java?rev=1746858&r1=1746857&r2=1746858&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFLineBreak.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFLineBreak.java Sun Jun 5 01:04:58 2016
@@ -22,9 +22,6 @@ package org.apache.poi.xslf.usermodel;
import org.openxmlformats.schemas.drawingml.x2006.main.CTRegularTextRun;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties;
-/**
- * @author Yegor Kozlov
- */
class XSLFLineBreak extends XSLFTextRun {
private final CTTextCharacterProperties _brProps;
@@ -34,7 +31,7 @@ class XSLFLineBreak extends XSLFTextRun
}
@Override
- protected CTTextCharacterProperties getRPr(){
+ protected CTTextCharacterProperties getRPr(boolean create){
return _brProps;
}
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java?rev=1746858&r1=1746857&r2=1746858&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java Sun Jun 5 01:04:58 2016
@@ -151,7 +151,7 @@ public class XSLFTextParagraph implement
CTTextCharacterProperties brProps = br.addNewRPr();
if(_runs.size() > 0){
// by default line break has the font size of the last text run
- CTTextCharacterProperties prevRun = _runs.get(_runs.size() - 1).getRPr();
+ CTTextCharacterProperties prevRun = _runs.get(_runs.size() - 1).getRPr(true);
brProps.set(prevRun);
}
CTRegularTextRun r = CTRegularTextRun.Factory.newInstance();
@@ -1043,7 +1043,15 @@ public class XSLFTextParagraph implement
}
if (!_runs.isEmpty()) {
int size = _runs.size();
- thisP.setEndParaRPr(_runs.get(size-1).getRPr());
+ XSLFTextRun lastRun = _runs.get(size-1);
+ CTTextCharacterProperties cpOther = lastRun.getRPr(false);
+ if (cpOther != null) {
+ if (thisP.isSetEndParaRPr()) {
+ thisP.unsetEndParaRPr();
+ }
+ CTTextCharacterProperties cp = thisP.addNewEndParaRPr();
+ cp.set(cpOther);
+ }
for (int i=size; i>0; i--) {
thisP.removeR(i-1);
}
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java?rev=1746858&r1=1746857&r2=1746858&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java Sun Jun 5 01:04:58 2016
@@ -96,7 +96,7 @@ public class XSLFTextRun implements Text
SolidPaint sp = (SolidPaint)color;
Color c = DrawPaint.applyColorTransform(sp.getSolidColor());
- CTTextCharacterProperties rPr = getRPr();
+ CTTextCharacterProperties rPr = getRPr(true);
CTSolidColorFillProperties fill = rPr.isSetSolidFill() ? rPr.getSolidFill() : rPr.addNewSolidFill();
XSLFColor col = new XSLFColor(fill, getParentParagraph().getParentShape().getSheet().getTheme(), fill.getSchemeClr());
@@ -107,17 +107,19 @@ public class XSLFTextRun implements Text
public PaintStyle getFontColor(){
CharacterPropertyFetcher<PaintStyle> fetcher = new CharacterPropertyFetcher<PaintStyle>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- XSLFShape shape = _p.getParentShape();
- CTShapeStyle style = shape.getSpStyle();
- CTSchemeColor phClr = null;
- if (style != null && style.getFontRef() != null) {
- phClr = style.getFontRef().getSchemeClr();
- }
-
- PaintStyle ps = shape.getPaint(props, phClr);
- if (ps != null) {
- setValue(ps);
- return true;
+ if (props != null) {
+ XSLFShape shape = _p.getParentShape();
+ CTShapeStyle style = shape.getSpStyle();
+ CTSchemeColor phClr = null;
+ if (style != null && style.getFontRef() != null) {
+ phClr = style.getFontRef().getSchemeClr();
+ }
+
+ PaintStyle ps = shape.getPaint(props, phClr);
+ if (ps != null) {
+ setValue(ps);
+ return true;
+ }
}
return false;
@@ -129,7 +131,7 @@ public class XSLFTextRun implements Text
@Override
public void setFontSize(Double fontSize){
- CTTextCharacterProperties rPr = getRPr();
+ CTTextCharacterProperties rPr = getRPr(true);
if(fontSize == null) {
if (rPr.isSetSz()) rPr.unsetSz();
} else {
@@ -149,7 +151,7 @@ public class XSLFTextRun implements Text
CharacterPropertyFetcher<Double> fetcher = new CharacterPropertyFetcher<Double>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- if(props.isSetSz()){
+ if (props != null && props.isSetSz()) {
setValue(props.getSz()*0.01);
return true;
}
@@ -169,7 +171,7 @@ public class XSLFTextRun implements Text
CharacterPropertyFetcher<Double> fetcher = new CharacterPropertyFetcher<Double>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- if(props.isSetSpc()){
+ if (props != null && props.isSetSpc()) {
setValue(props.getSpc()*0.01);
return true;
}
@@ -190,7 +192,7 @@ public class XSLFTextRun implements Text
* @param spc character spacing in points.
*/
public void setCharacterSpacing(double spc){
- CTTextCharacterProperties rPr = getRPr();
+ CTTextCharacterProperties rPr = getRPr(true);
if(spc == 0.0) {
if(rPr.isSetSpc()) rPr.unsetSpc();
} else {
@@ -204,7 +206,7 @@ public class XSLFTextRun implements Text
}
public void setFontFamily(String typeface, byte charset, byte pictAndFamily, boolean isSymbol){
- CTTextCharacterProperties rPr = getRPr();
+ CTTextCharacterProperties rPr = getRPr(true);
if(typeface == null){
if(rPr.isSetLatin()) rPr.unsetLatin();
@@ -229,16 +231,18 @@ public class XSLFTextRun implements Text
CharacterPropertyFetcher<String> visitor = new CharacterPropertyFetcher<String>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- CTTextFont font = props.getLatin();
- if(font != null){
- String typeface = font.getTypeface();
- if("+mj-lt".equals(typeface)) {
- typeface = theme.getMajorFont();
- } else if ("+mn-lt".equals(typeface)){
- typeface = theme.getMinorFont();
+ if (props != null) {
+ CTTextFont font = props.getLatin();
+ if (font != null) {
+ String typeface = font.getTypeface();
+ if("+mj-lt".equals(typeface)) {
+ typeface = theme.getMajorFont();
+ } else if ("+mn-lt".equals(typeface)){
+ typeface = theme.getMinorFont();
+ }
+ setValue(typeface);
+ return true;
}
- setValue(typeface);
- return true;
}
return false;
}
@@ -253,10 +257,12 @@ public class XSLFTextRun implements Text
CharacterPropertyFetcher<Byte> visitor = new CharacterPropertyFetcher<Byte>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- CTTextFont font = props.getLatin();
- if(font != null){
- setValue(font.getPitchFamily());
- return true;
+ if (props != null) {
+ CTTextFont font = props.getLatin();
+ if (font != null) {
+ setValue(font.getPitchFamily());
+ return true;
+ }
}
return false;
}
@@ -268,14 +274,14 @@ public class XSLFTextRun implements Text
@Override
public void setStrikethrough(boolean strike) {
- getRPr().setStrike(strike ? STTextStrikeType.SNG_STRIKE : STTextStrikeType.NO_STRIKE);
+ getRPr(true).setStrike(strike ? STTextStrikeType.SNG_STRIKE : STTextStrikeType.NO_STRIKE);
}
@Override
public boolean isStrikethrough() {
CharacterPropertyFetcher<Boolean> fetcher = new CharacterPropertyFetcher<Boolean>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- if(props.isSetStrike()){
+ if(props != null && props.isSetStrike()) {
setValue(props.getStrike() != STTextStrikeType.NO_STRIKE);
return true;
}
@@ -290,7 +296,7 @@ public class XSLFTextRun implements Text
public boolean isSuperscript() {
CharacterPropertyFetcher<Boolean> fetcher = new CharacterPropertyFetcher<Boolean>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- if(props.isSetBaseline()){
+ if (props != null && props.isSetBaseline()) {
setValue(props.getBaseline() > 0);
return true;
}
@@ -311,7 +317,7 @@ public class XSLFTextRun implements Text
* @param baselineOffset
*/
public void setBaselineOffset(double baselineOffset){
- getRPr().setBaseline((int) baselineOffset * 1000);
+ getRPr(true).setBaseline((int) baselineOffset * 1000);
}
/**
@@ -338,7 +344,7 @@ public class XSLFTextRun implements Text
public boolean isSubscript() {
CharacterPropertyFetcher<Boolean> fetcher = new CharacterPropertyFetcher<Boolean>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- if(props.isSetBaseline()){
+ if (props != null && props.isSetBaseline()) {
setValue(props.getBaseline() < 0);
return true;
}
@@ -355,7 +361,7 @@ public class XSLFTextRun implements Text
public TextCap getTextCap() {
CharacterPropertyFetcher<TextCap> fetcher = new CharacterPropertyFetcher<TextCap>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- if(props.isSetCap()){
+ if (props != null && props.isSetCap()) {
int idx = props.getCap().intValue() - 1;
setValue(TextCap.values()[idx]);
return true;
@@ -369,14 +375,14 @@ public class XSLFTextRun implements Text
@Override
public void setBold(boolean bold){
- getRPr().setB(bold);
+ getRPr(true).setB(bold);
}
@Override
public boolean isBold(){
CharacterPropertyFetcher<Boolean> fetcher = new CharacterPropertyFetcher<Boolean>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- if(props.isSetB()){
+ if (props != null && props.isSetB()) {
setValue(props.getB());
return true;
}
@@ -389,14 +395,14 @@ public class XSLFTextRun implements Text
@Override
public void setItalic(boolean italic){
- getRPr().setI(italic);
+ getRPr(true).setI(italic);
}
@Override
public boolean isItalic(){
CharacterPropertyFetcher<Boolean> fetcher = new CharacterPropertyFetcher<Boolean>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- if(props.isSetI()){
+ if (props != null && props.isSetI()) {
setValue(props.getI());
return true;
}
@@ -409,14 +415,14 @@ public class XSLFTextRun implements Text
@Override
public void setUnderlined(boolean underline) {
- getRPr().setU(underline ? STTextUnderlineType.SNG : STTextUnderlineType.NONE);
+ getRPr(true).setU(underline ? STTextUnderlineType.SNG : STTextUnderlineType.NONE);
}
@Override
public boolean isUnderlined(){
CharacterPropertyFetcher<Boolean> fetcher = new CharacterPropertyFetcher<Boolean>(_p.getIndentLevel()){
public boolean fetch(CTTextCharacterProperties props){
- if(props.isSetU()){
+ if (props != null && props.isSetU()) {
setValue(props.getU() != STTextUnderlineType.NONE);
return true;
}
@@ -427,8 +433,20 @@ public class XSLFTextRun implements Text
return fetcher.getValue() == null ? false : fetcher.getValue();
}
- protected CTTextCharacterProperties getRPr(){
- return _r.isSetRPr() ? _r.getRPr() : _r.addNewRPr();
+ /**
+ * Return the character properties
+ *
+ * @param create if true, create an empty character properties object if it doesn't exist
+ * @return the character properties or null if create was false and the properties haven't exist
+ */
+ protected CTTextCharacterProperties getRPr(boolean create) {
+ if (_r.isSetRPr()) {
+ return _r.getRPr();
+ } else if (create) {
+ return _r.addNewRPr();
+ } else {
+ return null;
+ }
}
@Override
@@ -463,7 +481,7 @@ public class XSLFTextRun implements Text
XSLFSheet sheet = shape.getSheet();
boolean ok = false;
- if (_r.isSetRPr()) ok = fetcher.fetch(getRPr());
+ if (_r.isSetRPr()) ok = fetcher.fetch(getRPr(false));
if (ok) return true;
ok = shape.fetchShapeProperty(fetcher);
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java?rev=1746858&r1=1746857&r2=1746858&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java Sun Jun 5 01:04:58 2016
@@ -112,8 +112,8 @@ public abstract class XSLFTextShape exte
if (text == null) return null;
// copy properties from last paragraph / textrun or paragraph end marker
- CTTextParagraphProperties pPr = null;
- CTTextCharacterProperties rPr = null;
+ CTTextParagraphProperties otherPPr = null;
+ CTTextCharacterProperties otherRPr = null;
boolean firstPara;
XSLFTextParagraph para;
@@ -124,25 +124,33 @@ public abstract class XSLFTextShape exte
firstPara = !newParagraph;
para = _paragraphs.get(_paragraphs.size()-1);
CTTextParagraph ctp = para.getXmlObject();
- pPr = ctp.getPPr();
+ otherPPr = ctp.getPPr();
List<XSLFTextRun> runs = para.getTextRuns();
if (!runs.isEmpty()) {
XSLFTextRun r0 = runs.get(runs.size()-1);
- rPr = r0.getXmlObject().getRPr();
- } else if (ctp.isSetEndParaRPr()) {
- rPr = ctp.getEndParaRPr();
+ otherRPr = r0.getRPr(false);
+ if (otherRPr == null) {
+ otherRPr = ctp.getEndParaRPr();
+ }
}
+ // don't copy endParaRPr to the run in case there aren't any other runs
+ // this is the case when setText() was called initially
+ // otherwise the master style will be overridden/ignored
}
XSLFTextRun run = null;
for (String lineTxt : text.split("\\r\\n?|\\n")) {
if (!firstPara) {
- if (para != null && para.getXmlObject().isSetEndParaRPr()) {
- para.getXmlObject().unsetEndParaRPr();
+ if (para != null) {
+ CTTextParagraph ctp = para.getXmlObject();
+ CTTextCharacterProperties unexpectedRPr = ctp.getEndParaRPr();
+ if (unexpectedRPr != null && unexpectedRPr != otherRPr) {
+ ctp.unsetEndParaRPr();
+ }
}
para = addNewTextParagraph();
- if (pPr != null) {
- para.getXmlObject().setPPr(pPr);
+ if (otherPPr != null) {
+ para.getXmlObject().setPPr(otherPPr);
}
}
boolean firstRun = true;
@@ -152,8 +160,8 @@ public abstract class XSLFTextShape exte
}
run = para.addNewTextRun();
run.setText(runText);
- if (rPr != null) {
- run.getXmlObject().setRPr(rPr);
+ if (otherRPr != null) {
+ run.getRPr(true).set(otherRPr);
}
firstRun = false;
}
@@ -261,8 +269,21 @@ public abstract class XSLFTextShape exte
CTTextBodyProperties bodyPr = getTextBodyPr();
if (bodyPr != null) {
STTextVerticalType.Enum val = bodyPr.getVert();
- if(val != null){
- return TextDirection.values()[val.intValue() - 1];
+ if(val != null) {
+ switch (val.intValue()) {
+ default:
+ case STTextVerticalType.INT_HORZ:
+ return TextDirection.HORIZONTAL;
+ case STTextVerticalType.INT_EA_VERT:
+ case STTextVerticalType.INT_MONGOLIAN_VERT:
+ case STTextVerticalType.INT_VERT:
+ return TextDirection.VERTICAL;
+ case STTextVerticalType.INT_VERT_270:
+ return TextDirection.VERTICAL_270;
+ case STTextVerticalType.INT_WORD_ART_VERT_RTL:
+ case STTextVerticalType.INT_WORD_ART_VERT:
+ return TextDirection.STACKED;
+ }
}
}
return TextDirection.HORIZONTAL;
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java?rev=1746858&r1=1746857&r2=1746858&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java Sun Jun 5 01:04:58 2016
@@ -34,9 +34,6 @@ import org.junit.Test;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableCell;
import org.openxmlformats.schemas.presentationml.x2006.main.CTGraphicalObjectFrame;
-/**
- * @author Yegor Kozlov
- */
public class TestXSLFTable {
@Test
public void testRead() throws IOException {
@@ -82,8 +79,8 @@ public class TestXSLFTable {
@Test
public void testCreate() throws IOException {
- XMLSlideShow ppt = new XMLSlideShow();
- XSLFSlide slide = ppt.createSlide();
+ XMLSlideShow ppt1 = new XMLSlideShow();
+ XSLFSlide slide = ppt1.createSlide();
XSLFTable tbl = slide.createTable();
assertNotNull(tbl.getCTTable());
@@ -145,7 +142,17 @@ public class TestXSLFTable {
cell1.setVerticalAlignment(null);
assertEquals(VerticalAlignment.TOP, cell1.getVerticalAlignment());
- ppt.close();
+ XMLSlideShow ppt2 = XSLFTestDataSamples.writeOutAndReadBack(ppt1);
+ ppt1.close();
+
+ slide = ppt2.getSlides().get(0);
+ tbl = (XSLFTable)slide.getShapes().get(0);
+ assertEquals(2, tbl.getNumberOfColumns());
+ assertEquals(1, tbl.getNumberOfRows());
+ assertEquals("POI", tbl.getCell(0, 0).getText());
+ assertEquals("Apache", tbl.getCell(0, 1).getText());
+
+ ppt2.close();
}
@Test
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextRun.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextRun.java?rev=1746858&r1=1746857&r2=1746858&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextRun.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextRun.java Sun Jun 5 01:04:58 2016
@@ -40,7 +40,7 @@ public class TestXSLFTextRun {
XSLFTextShape sh = slide.createAutoShape();
XSLFTextRun r = sh.addNewTextParagraph().addNewTextRun();
- assertEquals("en-US", r.getRPr().getLang());
+ assertEquals("en-US", r.getRPr(true).getLang());
assertEquals(0., r.getCharacterSpacing(), 0);
r.setCharacterSpacing(3);
@@ -49,7 +49,7 @@ public class TestXSLFTextRun {
assertEquals(-3., r.getCharacterSpacing(), 0);
r.setCharacterSpacing(0);
assertEquals(0., r.getCharacterSpacing(), 0);
- assertFalse(r.getRPr().isSetSpc());
+ assertFalse(r.getRPr(true).isSetSpc());
assertTrue(sameColor(Color.black, r.getFontColor()));
r.setFontColor(Color.red);
Added: poi/trunk/test-data/slideshow/table_test2.pptx
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/slideshow/table_test2.pptx?rev=1746858&view=auto
==============================================================================
Binary file - no diff available.
Propchange: poi/trunk/test-data/slideshow/table_test2.pptx
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org