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 2021/04/22 22:09:14 UTC

svn commit: r1889111 - in /poi: site/src/documentation/content/xdocs/ trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/model/ trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/ trunk/poi/src/main/java/org/apache/poi/sl/image/ trunk/test-data/slideshow/

Author: kiwiwings
Date: Thu Apr 22 22:09:14 2021
New Revision: 1889111

URL: http://svn.apache.org/viewvc?rev=1889111&view=rev
Log:
#65228 - the method getCap() does not work correctly in xslf.usermodel.XSLFTextRun

Added:
    poi/trunk/test-data/slideshow/bug65228.pptx   (with props)
Modified:
    poi/site/src/documentation/content/xdocs/changes.xml
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/TestXSLFBugs.java
    poi/trunk/poi/src/main/java/org/apache/poi/sl/image/ImageHeaderEMF.java

Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1889111&r1=1889110&r2=1889111&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/changes.xml (original)
+++ poi/site/src/documentation/content/xdocs/changes.xml Thu Apr 22 22:09:14 2021
@@ -93,6 +93,7 @@
             <action type="add" fixes-bug="github-228" context="XDDF">Manipulate individual data point properties</action>
             <action type="add" fixes-bug="65192" context="HSSF">Allow change of EncryptionMode</action>
             <action type="add" fixes-bug="65206" context="POI_Overall">Migrate ant / maven to gradle build</action>
+            <action type="fix" fixes-bug="65228" context="XSLF">the method getCap() does not work correctly in xslf.usermodel.XSLFTextRun</action>
         </actions>
     </release>
 

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java?rev=1889111&r1=1889110&r2=1889111&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/model/CharacterPropertyFetcher.java Thu Apr 22 22:09:14 2021
@@ -65,6 +65,7 @@ public final class CharacterPropertyFetc
 
         if (!(sheet instanceof XSLFSlideMaster)) {
             fetchRunProp();
+            fetchParagraphDefaultRunProp();
             fetchShapeProp(shape);
             fetchThemeProp(shape);
         }
@@ -78,6 +79,15 @@ public final class CharacterPropertyFetc
         fetchProp(run.getRPr(false));
     }
 
+    private void fetchParagraphDefaultRunProp() {
+        if (!isSet()) {
+            CTTextParagraphProperties pr = run.getParagraph().getXmlObject().getPPr();
+            if (pr != null) {
+                fetchProp(pr.getDefRPr());
+            }
+        }
+    }
+
     private void fetchShapeProp(XSLFShape shape) {
         if (!isSet()) {
             shape.fetchShapeProperty(this);

Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/TestXSLFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/TestXSLFBugs.java?rev=1889111&r1=1889110&r2=1889111&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/TestXSLFBugs.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/TestXSLFBugs.java Thu Apr 22 22:09:14 2021
@@ -77,25 +77,7 @@ import org.apache.poi.sl.usermodel.TextS
 import org.apache.poi.sl.usermodel.VerticalAlignment;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.NullPrintStream;
-import org.apache.poi.xslf.usermodel.XMLSlideShow;
-import org.apache.poi.xslf.usermodel.XSLFAutoShape;
-import org.apache.poi.xslf.usermodel.XSLFGroupShape;
-import org.apache.poi.xslf.usermodel.XSLFHyperlink;
-import org.apache.poi.xslf.usermodel.XSLFNotes;
-import org.apache.poi.xslf.usermodel.XSLFObjectShape;
-import org.apache.poi.xslf.usermodel.XSLFPictureData;
-import org.apache.poi.xslf.usermodel.XSLFPictureShape;
-import org.apache.poi.xslf.usermodel.XSLFRelation;
-import org.apache.poi.xslf.usermodel.XSLFShape;
-import org.apache.poi.xslf.usermodel.XSLFSlide;
-import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
-import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
-import org.apache.poi.xslf.usermodel.XSLFTable;
-import org.apache.poi.xslf.usermodel.XSLFTableCell;
-import org.apache.poi.xslf.usermodel.XSLFTableRow;
-import org.apache.poi.xslf.usermodel.XSLFTextBox;
-import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
-import org.apache.poi.xslf.usermodel.XSLFTextRun;
+import org.apache.poi.xslf.usermodel.*;
 import org.apache.poi.xslf.util.DummyGraphics2d;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Disabled;
@@ -1080,4 +1062,18 @@ class TestXSLFBugs {
         }
     }
 
+    @Test
+    public void bug65228() throws IOException {
+        try (XMLSlideShow ppt = openSampleDocument("bug65228.pptx")) {
+            TextRun.TextCap act = ppt.getSlides().stream()
+                .flatMap(s -> s.getShapes().stream())
+                .filter(s -> "März 2021\u2026".equals(s.getShapeName()))
+                .map(XSLFTextShape.class::cast)
+                .flatMap(s -> s.getTextParagraphs().stream())
+                .flatMap(s -> s.getTextRuns().stream())
+                .map(XSLFTextRun::getTextCap)
+                .findFirst().orElse(null);
+            assertEquals(TextRun.TextCap.ALL, act);
+        }
+    }
 }

Modified: poi/trunk/poi/src/main/java/org/apache/poi/sl/image/ImageHeaderEMF.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/sl/image/ImageHeaderEMF.java?rev=1889111&r1=1889110&r2=1889111&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/sl/image/ImageHeaderEMF.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/sl/image/ImageHeaderEMF.java Thu Apr 22 22:09:14 2021
@@ -50,7 +50,7 @@ public class ImageHeaderEMF {
         int top = LittleEndian.getInt(data, offset); offset += 4;
         int right = LittleEndian.getInt(data, offset); offset += 4;
         int bottom = LittleEndian.getInt(data, offset); offset += 4;
-        deviceBounds = new Rectangle(left, top, right-left, bottom-top);
+        deviceBounds = new Rectangle(left, top,  right-left == -1 ? 0 : right-left, bottom-top == -1 ? 0 : bottom-top);
         // ignore frame bounds
         offset += 16;
         String signature = new String(data, offset, EMF_SIGNATURE.length(), LocaleUtil.CHARSET_1252);

Added: poi/trunk/test-data/slideshow/bug65228.pptx
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/slideshow/bug65228.pptx?rev=1889111&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/slideshow/bug65228.pptx
------------------------------------------------------------------------------
--- svn:mime-type (added)
+++ svn:mime-type Thu Apr 22 22:09:14 2021
@@ -0,0 +1 @@
+application/vnd.openxmlformats-officedocument.presentationml.presentation



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org