diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-20 11:35:56 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-20 11:35:56 +0000 |
| commit | d5f51423cd58e17c81cb52b1471670d66a1de233 (patch) | |
| tree | b535cfc9583b6db03789172c44c3c4f01d9ae46d /src/main/java/org/zwobble/mammoth/Mammoth.java | |
| parent | e7bbba7e069c1e55e9267bac3d7f23cb7bbeac01 (diff) | |
Support conversion of images
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/Mammoth.java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/Mammoth.java | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java index 6017825..7c1d9c8 100644 --- a/src/main/java/org/zwobble/mammoth/Mammoth.java +++ b/src/main/java/org/zwobble/mammoth/Mammoth.java @@ -1,16 +1,21 @@ package org.zwobble.mammoth; +import com.google.common.base.Function; import com.google.common.collect.Iterables; import org.zwobble.mammoth.documents.DocumentElement; import org.zwobble.mammoth.documents.HasChildren; import org.zwobble.mammoth.documents.Paragraph; import org.zwobble.mammoth.documents.Text; +import org.zwobble.mammoth.docx.DocxFile; +import org.zwobble.mammoth.docx.ZippedDocxFile; import org.zwobble.mammoth.html.Html; import org.zwobble.mammoth.results.Result; import org.zwobble.mammoth.util.Casts; import java.io.File; +import java.io.IOException; import java.util.List; +import java.util.zip.ZipFile; import static org.zwobble.mammoth.docx.DocumentReader.readDocument; import static org.zwobble.mammoth.util.MammothLists.list; @@ -41,15 +46,25 @@ public class Mammoth { } public static Result<String> convertToHtml(File file, Options options) { - return readDocument(file) - .map(nodes -> DocumentConverter.convertToHtml(options.idPrefix, options.preserveEmptyParagraphs, nodes)) - .map(Html::stripEmpty) - .map(Html::collapse) - .map(Html::write); + return withDocxFile(file, zipFile -> + readDocument(zipFile) + .map(nodes -> DocumentConverter.convertToHtml(options.idPrefix, options.preserveEmptyParagraphs, nodes)) + .map(Html::stripEmpty) + .map(Html::collapse) + .map(Html::write)); } public static Result<String> extractRawText(File file) { - return readDocument(file).map(Mammoth::extractRawTextOfChildren); + return withDocxFile(file, zipFile -> + readDocument(zipFile).map(Mammoth::extractRawTextOfChildren)); + } + + private static <T> T withDocxFile(File file, Function<DocxFile, T> function) { + try (DocxFile zipFile = new ZippedDocxFile(new ZipFile(file))) { + return function.apply(zipFile); + } catch (IOException e) { + throw new UnsupportedOperationException("Should return a result of failure"); + } } private static String extractRawTextOfChildren(HasChildren parent) { |
