aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-21 09:05:38 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-21 09:05:38 +0000
commitcfabbcdab4fbd8401569ec5e6e88a6bca913b502 (patch)
tree23b21bc4c2f5ad26259ce65aa87f074c5c06361c /src/main/java
parentf0159a9c51a92adcef38307c4e173a3de51bc373 (diff)
Implement FileReader to support external images
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/mammoth/Mammoth.java6
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/DocumentReader.java7
2 files changed, 7 insertions, 6 deletions
diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java
index bb1e501..93c639a 100644
--- a/src/main/java/org/zwobble/mammoth/Mammoth.java
+++ b/src/main/java/org/zwobble/mammoth/Mammoth.java
@@ -19,6 +19,7 @@ import org.zwobble.mammoth.util.Casts;
import java.io.File;
import java.io.IOException;
import java.util.List;
+import java.util.Optional;
import java.util.zip.ZipFile;
import static org.zwobble.mammoth.docx.DocumentReader.readDocument;
@@ -66,7 +67,7 @@ public class Mammoth {
public static Result<String> convertToHtml(File file, Options options) {
return withDocxFile(file, zipFile ->
- readDocument(zipFile)
+ readDocument(Optional.of(file.toPath()), zipFile)
.flatMap(nodes -> DocumentConverter.convertToHtml(options.idPrefix, options.preserveEmptyParagraphs, DEFAULT_STYLE_MAP, nodes))
.map(Html::stripEmpty)
.map(Html::collapse)
@@ -75,7 +76,8 @@ public class Mammoth {
public static Result<String> extractRawText(File file) {
return withDocxFile(file, zipFile ->
- readDocument(zipFile).map(Mammoth::extractRawTextOfChildren));
+ readDocument(Optional.of(file.toPath()), zipFile)
+ .map(Mammoth::extractRawTextOfChildren));
}
private static <T> T withDocxFile(File file, Function<DocxFile, T> function) {
diff --git a/src/main/java/org/zwobble/mammoth/docx/DocumentReader.java b/src/main/java/org/zwobble/mammoth/docx/DocumentReader.java
index d55fa9b..8fe0919 100644
--- a/src/main/java/org/zwobble/mammoth/docx/DocumentReader.java
+++ b/src/main/java/org/zwobble/mammoth/docx/DocumentReader.java
@@ -7,6 +7,7 @@ import org.zwobble.mammoth.util.MammothLists;
import org.zwobble.mammoth.xml.XmlElement;
import java.io.IOException;
+import java.nio.file.Path;
import java.util.Optional;
import static org.zwobble.mammoth.util.MammothLists.list;
@@ -17,13 +18,11 @@ public class DocumentReader {
BodyXmlReader forName(String name);
}
- public static Result<Document> readDocument(DocxFile zipFile) {
+ public static Result<Document> readDocument(Optional<Path> path, DocxFile zipFile) {
Styles styles = readStyles(zipFile);
Numbering numbering = readNumbering(zipFile);
ContentTypes contentTypes = readContentTypes(zipFile);
- FileReader fileReader = uri -> {
- throw new UnsupportedOperationException();
- };
+ FileReader fileReader = uri -> path.get().toUri().resolve(uri).toURL().openStream();
BodyReaders bodyReaders = name -> {
Relationships relationships = readRelationships(zipFile, name);
return new BodyXmlReader(styles, numbering, relationships, contentTypes, zipFile, fileReader);