summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Beeker <kiwiwings@apache.org>2021-10-24 22:07:59 +0000
committerAndreas Beeker <kiwiwings@apache.org>2021-10-24 22:07:59 +0000
commit4b230fa142f599f9580a630f7bbdcd3ae095569f (patch)
tree29efa84feffbe1610eb8577912953eb80c067c14
parent3a3ac61965e3e7178a0df418e15351465312c1d4 (diff)
downloadpoi-4b230fa142f599f9580a630f7bbdcd3ae095569f.tar.gz
poi-4b230fa142f599f9580a630f7bbdcd3ae095569f.zip
#65653 - HSLF FillType for texture and background color fills ignored
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894538 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFFill.java3
-rw-r--r--poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestBugs.java19
-rw-r--r--poi/src/test/java9/module-info.classbin4145 -> 4198 bytes
3 files changed, 22 insertions, 0 deletions
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFFill.java b/poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFFill.java
index 50ddf9cdf2..219cd05c59 100644
--- a/poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFFill.java
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFFill.java
@@ -254,6 +254,8 @@ public final class HSLFFill {
// need to handle (not only) the type (radial,rectangular,linear),
// the direction, e.g. top right, and bounds (e.g. for rectangular boxes)
switch (fillType) {
+ case FILL_BACKGROUND:
+ return DrawPaint.createSolidPaint(getBackgroundColor());
case FILL_SOLID:
return DrawPaint.createSolidPaint(getForegroundColor());
case FILL_SHADE_SHAPE:
@@ -264,6 +266,7 @@ public final class HSLFFill {
case FILL_SHADE:
case FILL_SHADE_SCALE:
return getGradientPaint(GradientType.linear);
+ case FILL_TEXTURE:
case FILL_PICTURE:
return getTexturePaint();
default:
diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestBugs.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestBugs.java
index a2b0df9bf7..1cd5be3cf6 100644
--- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestBugs.java
+++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestBugs.java
@@ -109,6 +109,25 @@ public final class TestBugs {
}
}
+ @Test
+ void fillTypesPaintMapping_65653() throws IOException {
+ try (HSLFSlideShow ppt = open("41246-2.ppt")) {
+ HSLFAutoShape as = (HSLFAutoShape) ppt.getSlides().get(15).getShapes().get(0);
+ HSLFFill f = as.getFill();
+ assertEquals(HSLFFill.FILL_TEXTURE, f.getFillType());
+ PaintStyle p = f.getFillStyle().getPaint();
+ assertTrue(p instanceof PaintStyle.TexturePaint);
+ }
+ try (HSLFSlideShow ppt = open("backgrounds.ppt")) {
+ HSLFAutoShape as = (HSLFAutoShape) ppt.getSlides().get(1).getShapes().get(0);
+ HSLFFill f = as.getFill();
+ assertEquals(HSLFFill.FILL_BACKGROUND, f.getFillType());
+ PaintStyle p = as.getFillStyle().getPaint();
+ assertTrue(p instanceof SolidPaint);
+ assertEquals(Color.WHITE, ((SolidPaint)p).getSolidColor().getColor());
+ }
+ }
+
/**
* First fix from Bug 42474: NPE in RichTextRun.isBold()
* when the RichTextRun comes from a Notes model object
diff --git a/poi/src/test/java9/module-info.class b/poi/src/test/java9/module-info.class
index 028b943d0a..438e778ab5 100644
--- a/poi/src/test/java9/module-info.class
+++ b/poi/src/test/java9/module-info.class
Binary files differ