aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/docx
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/docx')
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/ContentTypes.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/mammoth/docx/ContentTypes.java b/src/main/java/org/zwobble/mammoth/docx/ContentTypes.java
index bd61763..f36ca49 100644
--- a/src/main/java/org/zwobble/mammoth/docx/ContentTypes.java
+++ b/src/main/java/org/zwobble/mammoth/docx/ContentTypes.java
@@ -1,11 +1,22 @@
package org.zwobble.mammoth.docx;
+import com.google.common.collect.ImmutableMap;
import com.google.common.io.Files;
import java.util.Map;
import java.util.Optional;
public class ContentTypes {
+ private static final Map<String, String> imageExtensions = ImmutableMap.<String, String>builder()
+ .put("png", "png")
+ .put("gif", "gif")
+ .put("jpeg", "jpeg")
+ .put("jpg", "jpeg")
+ .put("bmp", "bmp")
+ .put("tif", "tiff")
+ .put("tiff", "tiff")
+ .build();
+
private final Map<String, String> extensionDefaults;
private final Map<String, String> overrides;
@@ -19,7 +30,12 @@ public class ContentTypes {
return Optional.ofNullable(overrides.get(path));
} else {
String extension = Files.getFileExtension(path);
- return Optional.ofNullable(extensionDefaults.get(extension));
+ if (extensionDefaults.containsKey(extension)) {
+ return Optional.ofNullable(extensionDefaults.get(extension));
+ } else {
+ return Optional.ofNullable(imageExtensions.get(extension.toLowerCase()))
+ .map(imageType -> "image/" + imageType);
+ }
}
}
}