diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-13 23:19:28 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-13 23:19:28 +0000 |
| commit | 6dd319ca5eebe1f97b9558b5b45bbccf402eb319 (patch) | |
| tree | 5d8521ba8ed8b1437da06ad3a2f3b0a74583d49e /src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java | |
| parent | a67ffc8bce54b319d9da39d6c4acfdc2d5ee0335 (diff) | |
Emit warning when reading image of unsupported content type
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java index 333780a..e911a63 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java @@ -1,5 +1,6 @@ package org.zwobble.mammoth.docx; +import com.google.common.collect.ImmutableSet; import org.zwobble.mammoth.documents.*; import org.zwobble.mammoth.results.Result; import org.zwobble.mammoth.results.Warning; @@ -11,6 +12,7 @@ import org.zwobble.mammoth.xml.XmlElementList; import org.zwobble.mammoth.xml.XmlNode; import java.util.Optional; +import java.util.Set; import java.util.function.Function; import static com.google.common.collect.Iterables.filter; @@ -22,6 +24,10 @@ import static org.zwobble.mammoth.util.MammothLists.list; import static org.zwobble.mammoth.util.MammothStrings.trimLeft; public class BodyXmlReader { + private static final Set<String> IMAGE_TYPES_SUPPORTED_BY_BROWSERS = ImmutableSet.of( + "image/png", "image/gif", "image/jpeg", "image/svg+xml", "image/tiff"); + + private final Styles styles; private final Numbering numbering; private final Relationships relationships; @@ -278,7 +284,13 @@ public class BodyXmlReader { private ReadResult readImage(String imagePath, Optional<String> altText, InputStreamSupplier open) { Optional<String> contentType = contentTypes.findContentType(imagePath); Image image = new Image(altText, contentType, open); - return success(image); + + String contentTypeString = contentType.orElse("(unknown)"); + if (IMAGE_TYPES_SUPPORTED_BY_BROWSERS.contains(contentTypeString)) { + return success(image); + } else { + return ReadResult.withWarning(image, warning("Image of type " + contentTypeString + " is unlikely to display in web browsers")); + } } private String relationshipIdToDocxPath(String relationshipId) { |
