aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java b/src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java
index 0e829ea..3966b51 100644
--- a/src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java
+++ b/src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java
@@ -7,10 +7,13 @@ import org.zwobble.mammoth.internal.documents.HasChildren;
import org.zwobble.mammoth.internal.documents.Paragraph;
import org.zwobble.mammoth.internal.documents.Text;
import org.zwobble.mammoth.internal.docx.DocxFile;
+import org.zwobble.mammoth.internal.docx.EmbeddedStyleMap;
import org.zwobble.mammoth.internal.docx.InMemoryDocxFile;
import org.zwobble.mammoth.internal.docx.ZippedDocxFile;
import org.zwobble.mammoth.internal.html.Html;
import org.zwobble.mammoth.internal.results.InternalResult;
+import org.zwobble.mammoth.internal.styles.StyleMap;
+import org.zwobble.mammoth.internal.styles.parsing.StyleMapParser;
import org.zwobble.mammoth.internal.util.PassThroughException;
import java.io.File;
@@ -46,13 +49,20 @@ public class InternalDocumentConverter {
}
private InternalResult<String> convertToHtml(Optional<Path> path, DocxFile zipFile) {
+ Optional<StyleMap> styleMap = readEmbeddedStyleMap(zipFile).map(StyleMapParser::parse);
+ DocumentToHtmlOptions conversionOptions = styleMap.map(options::addEmbeddedStyleMap).orElse(options);
+
return readDocument(path, zipFile)
- .flatMap(nodes -> DocumentToHtml.convertToHtml(nodes, options))
+ .flatMap(nodes -> DocumentToHtml.convertToHtml(nodes, conversionOptions))
.map(Html::stripEmpty)
.map(Html::collapse)
.map(Html::write);
}
+ private Optional<String> readEmbeddedStyleMap(DocxFile zipFile) {
+ return PassThroughException.wrap(() -> EmbeddedStyleMap.readStyleMap(zipFile));
+ }
+
public InternalResult<String> extractRawText(InputStream stream) throws IOException {
return PassThroughException.unwrap(() ->
withDocxFile(stream, zipFile ->