在 Aspose.Words 中处理 Markdown 文件





0/5 (0投票)
在本文中,我们将使用 .NET 应用程序来编辑和保存 Markdown 文件。以编程方式处理 Markdown 可能很困难,但 Aspose.Words 可以轻松实现。
Markdown 非常棒——它提供了一种简单的方法来编写可以转换为 HTML 的文本。但是以编程方式处理原始 Markdown 可能会很麻烦。有许多库可以处理 Markdown 生成的 HTML,但很少有好的库可以直接处理 Markdown。
Aspose.Words 通过让 .NET 开发人员能够轻松加载 Markdown、以编程方式对其进行处理以及将其写入文件来解决此问题。
在本文中,我们将使用 .NET 应用程序来编辑和保存 Markdown 文件。以编程方式处理 Markdown 可能很困难,但 Aspose.Words 可以轻松实现。
设置您的项目
开始使用 Aspose.Words 的最简单方法是使用 NuGet 下载所需的 DLL。我创建了一个简单的 WinForms 应用程序,该应用程序在单击按钮时调用一些代码来创建 Markdown 文档。
要将 NuGet 包添加到您的项目,请右键单击您的解决方案,然后单击“管理 NuGet 程序包”。搜索“Aspose.Words”,NuGet 将显示 Aspose.Words 作为第一个结果。现在您可以将最新版本的 Aspose.Words 添加到您的项目中。
NuGet 完成后,您将在项目中看到 Aspose.Words 引用已添加
现在我们可以开始创建一些文档了。
Markdown 文件
我们将要编辑的文件看起来是这样的
在 Visual Studio Code(或任何其他文本编辑器)中创建一个新的文本文件,并将以下文本粘贴到您的文件中。如果您使用 Visual Studio Code,可以将其保存为 Markdown 文件。
# Welcome to Aspose.Words
This is a demonstration of **Aspose.Words** that can be used to manipulate Markdown files.
> Markdown makes it easy to format plain text that can be converted to
> HTML.
This will be done in Visual Studio 2019 using C#.
这将在 Visual Studio 2019 中使用 C# 完成。
文件创建完毕后,我们就可以编写一些代码了。
编写代码
在创建 Markdown 文档之前,您需要在代码中添加以下 using 语句
using Aspose.Words; using Aspose.Words.Replacing;
接下来,创建一个名为 ProcessMarkdown
的方法,如下所示
private void ProcessMarkdown() { }
在此方法内部,添加对保存文件的文件夹的引用
var docPath = "C:\\temp\\aspose\\"; var fileToLoad = "snippet.md";
如果您想处理该文件,则需要将其加载到新的 Document 实例中
var doc = new Document(Path.Combine(docPath, fileToLoad));
回顾渲染的 Markdown 文件,我想将单词“demonstration”更改为“code demonstration”,并将这些单词格式化为斜体。为此,我将使用 FindReplaceOptions
功能将格式应用于替换后的文本,如下所示
var options = new FindReplaceOptions(); options.ApplyFont.Italic = true; _ = doc.Range.Replace("demonstration", "code demonstration", options);
然后我将此 Markdown 文件 保存 到一个新文档
_ = doc.Save(Path.Combine(docPath, "snippetModified.md"), SaveFormat.Markdown);
运行您的项目并生成新的 Markdown 文档。查看渲染的 Markdown 时,您会看到更改已应用。
这很棒,但是使用 Aspose.Words,您可以做更多事情。例如,您可以打印刚刚创建的文档。我将使用 PDF 打印机来说明这一点,但您可以尝试打印到物理打印机。
请注意,您也可以将创建的文档保存为 PDF,但由于我正在打印到 PDF 打印机,因此 PDF 将是它创建的文件格式。
要使用 Aspose.Words 打印文档,只需添加以下一行代码
doc.Print("Foxit Reader PDF Printer");
当然,您需要将文本“Foxit Reader PDF Printer”替换为您自己的打印机名称。
添加一些文本
使用 Aspose.Words,您可以轻松地将文本和格式添加到您的 Markdown 文件中。
为此,您需要添加 Section、Body 和 Paragraph 类,并将它们附加到您的文档中。(有关这些类的详细信息,请参阅文档中的 Aspose.Words 命名空间。)我还希望能够指定一些段落格式。
首先,我将添加一个枚举
public enum StyleNames { None, Heading1, Heading2, Quote }
下一段代码是一个 CreateParagraph
方法,它将为我创建 Section、Body 和 Paragraph,并应用我指定的任何段落格式。
private Paragraph CreateParagraph(Document doc, StyleNames styleName = StyleNames.None) { var section = new Section(doc); _ = doc.AppendChild(section); var body = new Body(doc); _ = section.AppendChild(body); var paragraph = new Paragraph(doc); _ = body.AppendChild(paragraph); switch (styleName) { case StyleNames.Heading1: _ = paragraph.ParagraphFormat.StyleName = "Heading 1"; break; case StyleNames.Quote: _ = paragraph.ParagraphFormat.StyleName = "Quote"; break; case StyleNames.Heading2: _ = paragraph.ParagraphFormat.StyleName = "Heading 2"; break; default: break; } return paragraph; }
要向我的段落添加文本,我需要创建一个 Run,它代表一组具有相同字体的字符。我还想指定文本是否应格式化为粗体或斜体。
我添加一个名为 CreateRun
的方法,如下所示
private Run CreateRun(Document doc, string text, bool isBold = false, bool isItalic = false) { var textRun = new Run(doc); textRun.Text = text; textRun.Font.Bold = isBold; textRun.Font.Italic = isItalic; return textRun; }
这使我能够重用代码来生成多个段落并将文本及格式应用于这些段落。我现在将在我的 Markdown 文件中创建四个新段落。
第一个段落将只是一个标题,应用了 Heading 1 样式
var paragraph0 = CreateParagraph(doc, StyleNames.Heading1); _ = paragraph0.AppendChild(CreateRun(doc, "This is a Heading 1"));
第二个段落将在 Markdown 文件中添加一些粗体文本
var paragraph1 = CreateParagraph(doc); _ = paragraph1.AppendChild(CreateRun(doc, "This is some bold text", true));
第三个段落将添加一个标题,应用了 Heading 2 样式
var paragraph2 = CreateParagraph(doc, StyleNames.Heading2); _ = paragraph2.AppendChild(CreateRun(doc, "This is a Heading 2"));
第四个段落将添加一些斜体格式的文本到文件中
var paragraph3 = CreateParagraph(doc); _ = paragraph3.AppendChild(CreateRun(doc, "This is some Italic text", false, true));
最后一个段落将向文档添加一个引用
var paragraph4 = CreateParagraph(doc, StyleNames.Quote); _ = paragraph4.AppendChild(CreateRun(doc, "This is a quote or something profound"));
查看渲染的 Markdown 文件时,您会看到添加了新段落以及它们的样式和格式。
代码生成的 Markdown 看起来是这样的
# Welcome to Aspose.Words
This is a *code demonstration* of **Aspose.Words** that can be used to manipulate Markdown files.
> Markdown makes it easy to format plain text that can be converted to
> HTML.
This will be done in Visual Studio 2019 using C#.
# This is a Heading 1
**This is some bold text**
## This is a Heading 2
*This is some Italic text*
> This is a quote or something profound
如您所见,使用 Aspose.Words 以代码生成 Markdown 文件非常简单。只需几行代码,您就可以创建各种 Markdown 文件。代码编写起来只用了几分钟。
生成 Word 文档
Aspose.Words 还赋予您能力,可以使用用于创建 Markdown 文件的相同代码来创建 Word 文档。只需像这样修改 Save 方法
_ = doc.Save(Path.Combine(docPath, "snippetModified.docx"), SaveFormat.Docx);
这将生成一个 docx 文件。如果您想保护您的 Word 文档,只需像这样调用 Document 类上的 Protect 方法
doc.Protect(ProtectionType.ReadOnly, "password"); _ = doc.Save(Path.Combine(docPath, "snippetModified.docx"), SaveFormat.Docx);
Protect 方法允许您指定 ProtectionType
和密码。如果您打开生成的 Word 文档并尝试编辑它,您会看到“限制编辑”窗格弹出
单击“停止保护”按钮允许用户输入密码来取消保护文档并允许编辑。
结论
在很短的时间内,我们就能够打开一个 Markdown 文件,修改其内容,将文档打印为 PDF,创建一个新的 Markdown 文件,并从同一代码创建受保护的 Word 文档。
如果您想了解更多关于 Aspose.Words 的信息,请前往该网站 查看 Aspose.Words 能为您做什么。