如何解析 HTML 文本并将其添加到 MigraDoc 文档

How to parse HTML text and add it to MigraDoc Document

我需要获取用户正在编写的文本(在 CKEditor HTML 中),然后将该文本作为段落或任何我需要的内容添加到 MigraDoc 文档中。

我的想法是将文本转换为 MDDDL 文档(在内存中)并将其添加到文档中。但我不知道是否有任何 DLL 允许这种行为。

所以,我的问题是,有人可以就如何实现这一目标给我指点或建议吗?我应该解析 HTML 文本吗?如果是这样,我应该解析什么?之后如何添加?

PDFsharp 和 MigraDoc 都无法解析 HTML,因此要么编写您自己的代码,要么尝试查找 third-party 库(可能尚不存在)。

我可能会将 HTML 直接转换为内存中的 MigraDoc 文档对象。

MigraDoc / PDFSharp 无法执行此操作。

但是,您可以使用 HtmlAgilityPack nuget,然后使用它的 htmlDoc.DocumentNode.Descendants() 从 html 中以平面列表类型的结构提取文本片段,并且 node.ParentNode.Name 找出包含文本的标签。然后使用 .AddFormattedText() 之类的内容将文本插入到 MigraDoc 文档中,并对其应用自定义 MigraDoc 样式 - 即,如果父标签为“strong”,则应用 MigraDoc 样式,其中 Font.Italic = true; 等..