首页 > 其他 > 详细

Mammoth官方文档翻译

时间:2017-01-14 21:02:55      阅读:1382      评论:0      收藏:0      [点我收藏+]

用于.NET的.docx转HTML的Mammoth

Mammoth可用于将.docx文档(比如由Microsoft Word创建的)转换为HTML。Mammoth致力于通过文档中的语义信息生成简洁的HTML,而忽略一些其他细节。例如,Mammoth会把带有“Heading 1”样式的所有段落转换为“h1”元素,而不是试图精确地复制标题的所有样式(字体、字号、颜色等)。

.docx使用的结构与HMTL的结构有很多不匹配的地方,这意味着复杂文档的转换很难达到完美。但如果你仅使用样式进行文档的语义化标记,Mammoth将会工作得很好。

当前支持如下特性:

  • 标题。
  • 列表。
  • 自定义从.docx样式到HTML的映射。比如,通过提供合适的样式映射,可以把“WarningHeading”样式转换为“h1.warning”类。
  • 表格。表格自身的样式——比如边框——目前会被忽略,但对文本格式的处理与文档的其余部分一致。
  • 脚注和尾注。
  • 图像。
  • 粗体、斜体、下划线、删除线、上标和下标。
  • 链接。
  • 换行。
  • 文本框。文本框中的内容作为一个单独的段落处理,放在包含该文本框的段落之后。

安装

可从Nuget上获取。

Install-Package Mammoth

支持的其他平台

  • JavaScript,包括浏览器和node.js。可从npm上获取。
  • Python。可从PyPI上获取。
  • WordPress。
  • Java/JVM。可从Maven Central上获取。

使用

基本转换

要将一个已经存在的.docx文件转换为HTML,只需创建DocumentConverter的一个实例,并将文件路径传递给ConvertToHtml方法。例如:

using Mammoth;

var converter = new DocumentConverter();
var result = converter.ConvertToHtml("document.docx");
var html = result.Value; // 生成的HTML
var warnings = result.Warnings; // 转换期间产生的所有警告

你也可以使用ExtractRawText方法提取文档的纯文本。这会忽略文档中的所有格式。每个段落后跟两个新行。

var converter = new DocumentConverter();
var result = converter.ExtractRawText("document.docx");
var html = result.Value; // 纯文本
var warnings = result.Warnings; // 转换期间产生的所有警告

自定义样式映射

默认情况下,Mammoth把一些普通的.docx样式映射为HTML元素。比如,带有名为“Heading 1”的样式的一个段落会被转换为一个“h1”元素。关于样式映射语法的描述包含在“编写样式映射”一节中。例如,将带有名为“Section Title”的样式的段落转换为“h1”元素,带有名为“Subsection Title”的样式的段落转换为“h2”元素:

var converter = new DocumentConverter()
    .AddStyleMap("p[style-name=‘Section Title‘] => h1:fresh")
    .AddStyleMap("p[style-name=‘Subsection Title‘] => h2:fresh");

也可以将整个样式映射作为一个字符串传递,当样式映射存储在文本文件中时,这会很有用:

var styleMap =
    "p[style-name=‘Section Title‘] => h1:fresh\n" +
    "p[style-name=‘Subsection Title‘] => h2:fresh";
var converter = new DocumentConverter()
    .AddStyleMap(styleMap);

后添加的样式映射拥有较高的优先级。用户定义的样式映射优于默认样式映射。如果要禁用所有的默认样式映射,可调用DisableDefaultStyleMap方法:

var converter = new DocumentConverter()
    .DisableDefaultStyleMap();

粗体

默认情况下,粗体文本被包装在“<strong>”标签中。可以通过添加对“b”的映射改变这种行为。比如,把粗体文本包装在“<em>”标签中:

var converter = new DocumentConverter()
    .AddStyleMap("b => em");

 

Mammoth官方文档翻译

原文:http://www.cnblogs.com/zhuxinghan/p/6286070.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!