Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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# 4.0 ITextSharp代码HTML解析器未解析javascript。_C# 4.0_Itextsharp - Fatal编程技术网

C# 4.0 ITextSharp代码HTML解析器未解析javascript。

C# 4.0 ITextSharp代码HTML解析器未解析javascript。,c#-4.0,itextsharp,C# 4.0,Itextsharp,我使用的是带有mvc4 web应用的Itextsharp v5.4.2,当尝试添加页面上返回的视图时,加载的Java脚本很少,它无法在Itextsharp的html解析器中解析html字符串 请帮助我了解是否有其他方法可以使用itextsharp解析要转换为pdf的网页。如果我使用了错误的方法,请纠正我 <script type="type/javascript"> $(document).ready(function(){}); </script> <ht

我使用的是带有mvc4 web应用的Itextsharp v5.4.2,当尝试添加页面上返回的视图时,加载的Java脚本很少,它无法在Itextsharp的html解析器中解析html字符串

请帮助我了解是否有其他方法可以使用itextsharp解析要转换为pdf的网页。如果我使用了错误的方法,请纠正我

<script type="type/javascript">

$(document).ready(function(){});

</script> 

<html><table>adsfasdf..</table> some table elements.........</html>

使用此函数在HTMLCode中传递Html字符串,在filePath中传递文件保存路径

 public void converttopdf(string HTMLCode, string filePath)
 {
        Document document = new Document();

        try
        {

            HTMLCode = Regex.Replace(HTMLCode, @"(<script[^*]*</script>)", "", RegexOptions.IgnoreCase);

            PdfWriter.GetInstance(document, new FileStream(filePath, FileMode.Create));
            document.Open();

            List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(HTMLCode), null);
            for (int k = 0; k < htmlarraylist.Count; k++)
            {
                document.Add((IElement)htmlarraylist[k]);
            }

            document.Close();
        }
        catch
        {
        }
 }

使用此函数在HTMLCode中传递Html字符串,在filePath中传递文件保存路径

 public void converttopdf(string HTMLCode, string filePath)
 {
        Document document = new Document();

        try
        {

            HTMLCode = Regex.Replace(HTMLCode, @"(<script[^*]*</script>)", "", RegexOptions.IgnoreCase);

            PdfWriter.GetInstance(document, new FileStream(filePath, FileMode.Create));
            document.Open();

            List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(HTMLCode), null);
            for (int k = 0; k < htmlarraylist.Count; k++)
            {
                document.Add((IElement)htmlarraylist[k]);
            }

            document.Close();
        }
        catch
        {
        }
 }

还有一种解决方法,比如,在javascript代码中,我们可以单独使用html,而不是传递给C并替换脚本标记

像这样,

function IgnoreScripts(htmlString)
{
 var div = document.createElement('div');
        div.innerHTML = htmlString;
        var scripts = div.getElementsByTagName('script');
        var i = scripts.length;
        while (i--) {
            scripts[i].parentNode.removeChild(scripts[i]);
        }
        return div.innerHTML;
}

还有一种解决方法,比如,在javascript代码中,我们可以单独使用html,而不是传递给C并替换脚本标记

像这样,

function IgnoreScripts(htmlString)
{
 var div = document.createElement('div');
        div.innerHTML = htmlString;
        var scripts = div.getElementsByTagName('script');
        var i = scripts.length;
        while (i--) {
            scripts[i].parentNode.removeChild(scripts[i]);
        }
        return div.innerHTML;
}

如果您正在使用Html转换为pdf,那么标记不起作用。请不要在Html转换为pdf中使用javascript。那么,是否没有其他方法来解析该页面?请让我知道忽略html字符串中使用的脚本标记,以便在PDFConVersion中传递给htmlstring,这意味着您只希望Pdf中输出html标记。我说得对吗?是。。也可以是C语言,这样就可以从我得到的页面中过滤html代码并对其进行解析。。请让我知道,这会有帮助的。。提前感谢..:我已经添加了代码。请检查。如果您使用Html转换为pdf,那么标记不起作用。请不要在Html转换为pdf中使用javascript。那么,是否没有其他方法来解析该页面?请让我知道忽略html字符串中使用的脚本标记,以便在PDFConVersion中传递给htmlstring,这意味着您只希望Pdf中输出html标记。我说得对吗?是。。也可以是C语言,这样就可以从我得到的页面中过滤html代码并对其进行解析。。请让我知道,这会有帮助的。。提前感谢..:我已经添加了代码。请检查。还有一个想法并发布在下面..:还有一个想法,发布在下面..: