From 7bc069e050e740432f86a780e13feae99968c831 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 31 Dec 2015 16:49:02 +0000 Subject: Add fallback image content types --- .../java/org/zwobble/mammoth/docx/ContentTypes.java | 18 +++++++++++++++++- src/main/java/org/zwobble/mammoth/xml/XmlNodes.java | 4 ++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src/main/java') 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 imageExtensions = ImmutableMap.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 extensionDefaults; private final Map 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); + } } } } diff --git a/src/main/java/org/zwobble/mammoth/xml/XmlNodes.java b/src/main/java/org/zwobble/mammoth/xml/XmlNodes.java index 272a710..ce36615 100644 --- a/src/main/java/org/zwobble/mammoth/xml/XmlNodes.java +++ b/src/main/java/org/zwobble/mammoth/xml/XmlNodes.java @@ -7,6 +7,10 @@ import java.util.List; import java.util.Map; public class XmlNodes { + public static XmlElement element(String name) { + return element(name, ImmutableList.of()); + } + public static XmlElement element(String name, Map attributes) { return element(name, attributes, ImmutableList.of()); } -- cgit v1.2.3