diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-04-30 17:20:53 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-04-30 17:20:53 +0100 |
| commit | ec5037c01868fecaec2eba89b975f3e53aded89a (patch) | |
| tree | e0d5a092419bace577a90eb29699f5be57f36078 /Mammoth/DocumentConverter.cs | |
| parent | 17d1a1f710edd8dfb92e75bcd273e04cee7c8146 (diff) | |
Export from java-mammoth 5f538798b147f0e76
Diffstat (limited to 'Mammoth/DocumentConverter.cs')
| -rw-r--r-- | Mammoth/DocumentConverter.cs | 91 |
1 files changed, 53 insertions, 38 deletions
diff --git a/Mammoth/DocumentConverter.cs b/Mammoth/DocumentConverter.cs index 6057cbd..eb8c939 100644 --- a/Mammoth/DocumentConverter.cs +++ b/Mammoth/DocumentConverter.cs @@ -1,42 +1,57 @@ -using EdgeJs; -using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Reflection; -using System.Threading.Tasks; - -namespace Mammoth -{ - public class DocumentConverter - { - public Result<string> ConvertToHtml(string path) - { - var mammothJs = ReadResource("Mammoth.mammoth.browser.js") + ReadResource("Mammoth.mammoth.edge.js"); - - var f = Edge.Func(mammothJs); - var result = f(File.ReadAllBytes(path)); - Task.WaitAll(result); - - return ReadResult(result.Result); - } - - private Result<string> ReadResult(dynamic result) - { - var rawMessages = (dynamic[])result.messages; - var messages = rawMessages.Select(message => Message.Warning((string)message.message)).ToList(); - return new Result<string>(result.value, messages); - } - - private static string ReadResource(string resourceName) - { - var currentAssembly = Assembly.GetExecutingAssembly(); - using (var stream = currentAssembly.GetManifestResourceStream(resourceName)) - { - using (var reader = new StreamReader(stream)) - { - return reader.ReadToEnd(); - } - } +using Mammoth.Couscous; +using Mammoth.Couscous.org.zwobble.mammoth.@internal; +using Mammoth.Couscous.org.zwobble.mammoth.@internal.conversion; + +namespace Mammoth { + public class DocumentConverter { + private readonly DocumentToHtmlOptions options; + + public DocumentConverter() : this(DocumentToHtmlOptions._DEFAULT) { + } + + private DocumentConverter(DocumentToHtmlOptions options) { + this.options = options; + } + + public DocumentConverter IdPrefix(string idPrefix) { + return new DocumentConverter(options.idPrefix(idPrefix)); + } + + public DocumentConverter PreserveEmptyParagraphs() { + return new DocumentConverter(options.preserveEmptyParagraphs()); + } + + public DocumentConverter AddStyleMap(string styleMap) { + return new DocumentConverter(options.addStyleMap(styleMap)); + } + + public DocumentConverter DisableDefaultStyleMap() { + return new DocumentConverter(options.disableDefaultStyleMap()); + } + + public IResult<string> ConvertToHtml(Stream stream) { + return new InternalDocumentConverter(options) + .convertToHtml(ToJava.StreamToInputStream(stream)) + .ToResult(); + } + + public IResult<string> ConvertToHtml(string path) { + return new InternalDocumentConverter(options) + .convertToHtml(new Couscous.java.io.File(path)) + .ToResult(); + } + + public IResult<string> ExtractRawText(Stream stream) { + return new InternalDocumentConverter(options) + .extractRawText(ToJava.StreamToInputStream(stream)) + .ToResult(); + } + + public IResult<string> ExtractRawText(string path) { + return new InternalDocumentConverter(options) + .extractRawText(new Couscous.java.io.File(path)) + .ToResult(); } } } |
