aboutsummaryrefslogtreecommitdiff
path: root/Mammoth/DocumentConverter.cs
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-30 17:20:53 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-30 17:20:53 +0100
commitec5037c01868fecaec2eba89b975f3e53aded89a (patch)
treee0d5a092419bace577a90eb29699f5be57f36078 /Mammoth/DocumentConverter.cs
parent17d1a1f710edd8dfb92e75bcd273e04cee7c8146 (diff)
Export from java-mammoth 5f538798b147f0e76
Diffstat (limited to 'Mammoth/DocumentConverter.cs')
-rw-r--r--Mammoth/DocumentConverter.cs91
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();
}
}
}