diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-13 12:38:05 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-13 12:38:05 +0000 |
| commit | 8d07fccc0787bb043125e2f8788e550c692a2579 (patch) | |
| tree | 5e53a1f289e6f3bd569d5bdf5e5ff3ddc2c7ce1a /src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java | |
| parent | 4ddf138fd09099819ab25481515495b294b9a325 (diff) | |
Read embedded style maps
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java | 12 |
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 -> |
