aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/DisabledFileReader.java11
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java12
2 files changed, 21 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/DisabledFileReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/DisabledFileReader.java
new file mode 100644
index 0000000..03386d4
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/DisabledFileReader.java
@@ -0,0 +1,11 @@
+package org.zwobble.mammoth.internal.docx;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+public class DisabledFileReader implements FileReader {
+ @Override
+ public InputStream getInputStream(String uri) throws IOException {
+ throw new IOException("could not open external image '" + uri + "': external file access is disabled");
+ }
+}
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
index 1955e55..495646f 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
@@ -22,13 +22,21 @@ import static org.zwobble.mammoth.internal.util.Lists.*;
import static org.zwobble.mammoth.internal.util.Strings.trimLeft;
public class DocumentReader {
- public static InternalResult<Document> readDocument(Optional<Path> path, Archive zipFile) {
+ public static InternalResult<Document> readDocument(
+ Optional<Path> path,
+ Archive zipFile,
+ boolean externalFileAccess
+ ) {
PartPaths partPaths = findPartPaths(zipFile);
Styles styles = readStyles(zipFile, partPaths);
Numbering numbering = readNumbering(zipFile, partPaths, styles);
ContentTypes contentTypes = readContentTypes(zipFile);
- FileReader fileReader = new PathRelativeFileReader(path);
+
+ FileReader fileReader = externalFileAccess
+ ? new PathRelativeFileReader(path)
+ : new DisabledFileReader();
+
PartWithBodyReader partReader = new PartWithBodyReader(zipFile, contentTypes, fileReader, numbering, styles);
return InternalResult.flatMap(
readNotes(partReader, partPaths),