Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将HTML转换为XHTML转换以在iText C中生成闭合标记#_C#_Asp.net_Itext_Pdf Generation - Fatal编程技术网

C# 如何将HTML转换为XHTML转换以在iText C中生成闭合标记#

C# 如何将HTML转换为XHTML转换以在iText C中生成闭合标记#,c#,asp.net,itext,pdf-generation,C#,Asp.net,Itext,Pdf Generation,我正在使用类iTextSharp.tool.xml.XMLWorkerHelper将HTML格式的文本添加到ASP.NET C#项目的pdf文件中。这是我的密码: Paragraph bookingTemplateDescriptionContent = new Paragraph(); desc.Content = desc.Content.Replace("</br>", "<br/>"); //HACK : To av

我正在使用类iTextSharp.tool.xml.XMLWorkerHelper将HTML格式的文本添加到ASP.NET C#项目的pdf文件中。这是我的密码:

            Paragraph bookingTemplateDescriptionContent = new Paragraph();
            desc.Content = desc.Content.Replace("</br>", "<br/>"); //HACK : To avoid exception, replace the br tag in HTML formatted to XHTML formatted
            ElementList list = XMLWorkerHelper.ParseToElementList(desc.Content, null);
            foreach (var element in list) {
                foreach (Chunk chunk in element.Chunks) {
                    chunk.Font = bookingTemplateDescFont;
                }

                bookingTemplateDescriptionContent.Add(element);

            }
段落bookingTemplateDescriptionContent=新段落();
desc.Content=desc.Content.Replace(“
”,“
”)//HACK:为了避免异常,将HTML格式中的br标记替换为XHTML格式 ElementList=XMLWorkerHelper.ParseToElementList(desc.Content,null); foreach(列表中的var元素){ foreach(元素中的Chunk.Chunks){ chunk.Font=bookingTemplateDescFont; } bookingTemplateDescriptionContent.Add(元素); }

但最近我遇到了一个异常:
找到了无效的嵌套标记p,应该是结束标记br。
。在谷歌搜索之后,我发现异常发生了,因为有一个嵌套标记没有有效的结束标记。在我的例子中,标签是
。我知道我可以在数据库或应用程序中手动编辑HTML字符串。但我认为有更好的办法来解决这个问题。在谷歌搜索之后,我发现这个问题可以通过将HTML文本转换成XHTML来解决。我的问题是,在HTML被写入PDF文件之前,我是否可以使用任何推荐的nuGet包将HTML文本转换为XHTML?类似于Java中的
JSoup
。欢迎提出任何建议。非常感谢。我知道有一些工具,比如
HTML2XML
,但我想知道除了
HTML2XML

之外,是否还有其他替代工具或其他推荐工具,请升级到iText 7和pdfHTML附加组件,并为您清理HTML。有关更多信息,请参阅(提问前请阅读。为了澄清Bruno的评论:在重复问题的答案中,使用了JSoup,您需要自己将JSoup包含在项目中,并将HTML编写为XHTML代码。使用iText 7+pdfHTML,所有这些都是为您完成的。我最初将此问题标记为的重复,但现在我重新阅读了这个问题,我看到已经提到了JSoup。我不清楚如果OP知道JSoup,为什么还需要这个问题。JSoup有很多C#port。不过,我重新打开了这个问题,以便提供如何使用JSoup C#port的答案的人可以获得一些支持票。然而,我认为最有效的答案是在我最初的评论中提到:升级到iText 7是因为“iTextSharp”被“iText for.NET”取代,并且不再支持XML Worker(除非您有高级支持合同)。Java的JSoup的.NET事实上的标准等价物是。