aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java4
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java4
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/util/Streams.java27
3 files changed, 31 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java
index 5fb86b3..26c32fb 100644
--- a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java
+++ b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java
@@ -3,7 +3,6 @@ package org.zwobble.mammoth.internal;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.common.io.ByteStreams;
import org.zwobble.mammoth.internal.documents.*;
import org.zwobble.mammoth.internal.html.Html;
import org.zwobble.mammoth.internal.html.HtmlNode;
@@ -20,6 +19,7 @@ import java.util.Map;
import static org.zwobble.mammoth.internal.util.MammothLists.*;
import static org.zwobble.mammoth.internal.util.MammothMaps.map;
+import static org.zwobble.mammoth.internal.util.Streams.toByteArray;
public class DocumentToHtml {
public static InternalResult<List<HtmlNode>> convertToHtml(Document document, DocumentToHtmlOptions options) {
@@ -214,7 +214,7 @@ public class DocumentToHtml {
try {
ImmutableMap.Builder<String, String> attributes = ImmutableMap.builder();
- String base64 = Base64.getEncoder().encodeToString(ByteStreams.toByteArray(image.open()));
+ String base64 = Base64.getEncoder().encodeToString(toByteArray(image.open()));
String src = "data:" + contentType + ";base64," + base64;
attributes.put("src", src);
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java b/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java
index 5db03d4..3f55f8c 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java
@@ -2,7 +2,6 @@ package org.zwobble.mammoth.internal.docx;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
-import com.google.common.io.ByteStreams;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -14,6 +13,7 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import static org.zwobble.mammoth.internal.util.MammothMaps.lookup;
+import static org.zwobble.mammoth.internal.util.Streams.toByteArray;
public class InMemoryDocxFile implements DocxFile {
public static DocxFile fromStream(InputStream stream) throws IOException {
@@ -21,7 +21,7 @@ public class InMemoryDocxFile implements DocxFile {
ImmutableMap.Builder<String, byte[]> entries = ImmutableMap.builder();
ZipEntry entry;
while ((entry = zipStream.getNextEntry()) != null) {
- entries.put(entry.getName(), ByteStreams.toByteArray(zipStream));
+ entries.put(entry.getName(), toByteArray(zipStream));
}
return new InMemoryDocxFile(entries.build());
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Streams.java b/src/main/java/org/zwobble/mammoth/internal/util/Streams.java
new file mode 100644
index 0000000..ac0f165
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/util/Streams.java
@@ -0,0 +1,27 @@
+package org.zwobble.mammoth.internal.util;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class Streams {
+ private Streams() {}
+
+ public static void copy(InputStream source, OutputStream destination) throws IOException {
+ byte[] buffer = new byte[4096];
+ while (true) {
+ int bytesRead = source.read(buffer);
+ if (bytesRead == -1) {
+ return;
+ }
+ destination.write(buffer, 0, bytesRead);
+ }
+ }
+
+ public static byte[] toByteArray(InputStream stream) throws IOException {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ copy(stream, output);
+ return output.toByteArray();
+ }
+}