C# 4.0 ITextSharp代码HTML解析器未解析javascript。
我使用的是带有mvc4 web应用的Itextsharp v5.4.2,当尝试添加页面上返回的视图时,加载的Java脚本很少,它无法在Itextsharp的html解析器中解析html字符串 请帮助我了解是否有其他方法可以使用itextsharp解析要转换为pdf的网页。如果我使用了错误的方法,请纠正我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
<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代码并对其进行解析。。请让我知道,这会有帮助的。。提前感谢..:我已经添加了代码。请检查。还有一个想法并发布在下面..:还有一个想法,发布在下面..: