Javascript HtmlOptions.OnLoadScript无法使用ABCPdf创建PDF

Javascript HtmlOptions.OnLoadScript无法使用ABCPdf创建PDF,javascript,c#,asp.net,pdf,abcpdf,Javascript,C#,Asp.net,Pdf,Abcpdf,我有一个用bootstrap创建的html页面,我想用它创建一个PDF,为此我使用ABCPdf。 我正在尝试执行一个javascript脚本,将一些样式应用到我的html中,但它不起作用。有人知道会发生什么 Doc theDoc = new Doc(); theDoc.Rect.Inset(5, 20); theDoc.HtmlOptions.Timeout = 3000000; theDoc.HtmlOptions.UseScript = true;

我有一个用bootstrap创建的html页面,我想用它创建一个PDF,为此我使用ABCPdf。 我正在尝试执行一个javascript脚本,将一些样式应用到我的html中,但它不起作用。有人知道会发生什么

     Doc theDoc = new Doc();
     theDoc.Rect.Inset(5, 20);
     theDoc.HtmlOptions.Timeout = 3000000; 
     theDoc.HtmlOptions.UseScript = true;
     theDoc.HtmlOptions.PageCacheEnabled = false;
     theDoc.HtmlOptions.DoMarkup = true;
     theDoc.HtmlOptions.HostWebBrowser = false;
     theDoc.HtmlOptions.Media = MediaType.Screen;
     theDoc.HtmlOptions.BrowserWidth = 1500;
     theDoc.HtmlOptions.AddLinks = true;
     string script = @"var elemento = document.getElementById('description');"
                      +"for (i = 0; i < elemento.childNodes.length; i++) {"
                      +    "if (elemento.childNodes[i].className == 'row') {"
                      +       " if (elemento.childNodes[i].offsetHeight > 200) {"                                    
                                     +            "elemento.childNodes[i].className += ' saltoPagina';  }  }  }";

    theDoc.HtmlOptions.OnLoadScript = script;
    int theID;
    theID = theDoc.AddImageUrl(url, true, 0, true);
Doc theDoc=new Doc();
直接插入法(5,20);
theDoc.HtmlOptions.Timeout=3000000;
theDoc.HtmlOptions.UseScript=true;
theDoc.HtmlOptions.PageCacheEnabled=false;
theDoc.HtmlOptions.DoMarkup=true;
theDoc.HtmlOptions.HostWebBrowser=false;
theDoc.HtmlOptions.Media=MediaType.Screen;
theDoc.HtmlOptions.BrowserWidth=1500;
theDoc.HtmlOptions.AddLinks=true;
字符串脚本=@“var elemento=document.getElementById('description')
+“对于(i=0;i200){”
+“elemento.childNodes[i].className+='saltoPagina';}}”;
theDoc.HtmlOptions.OnLoadScript=脚本;
int theID;
theID=doc.AddImageUrl(url,true,0,true);

提前感谢。:)

Solve:如果您使用的是ABCPdf,那么如果没有下一行代码,您将无法执行javaScript(jQuery永远不会工作):

 theDoc.HtmlOptions.Engine = EngineType.Gecko;
然后执行您的代码:

theDoc.HtmlOptions.GeckoSubset.OnLoadScript =
                @"(function() {
                        window.ABCpdf_go = false;

                        var elemento = document.getElementById('description');
                        var elementos =  elemento.childNodes;
                        var contador = 0;
                        for (i = 0; i < elementos.length; i++) {  
                            if(elementos[i].className == 'info'){ 
                                contador = contador + elementos[i].offsetHeight;
                                if(contador > 1600) {
                                    contador = elementos[i].offsetHeight;
                                    var childElements = elementos[i].childNodes; 
                                    for(j = 0; j < childElements.length; j++) { 
                                        if (childElements[j].className == 'infoDescrip'  && i != 1){
                                            childElements[j].className += ' saltoPagina';
                                        }        
                                    }
                                }           
                             }   
                        }


                        window.ABCpdf_go = true;
                })();";                 
doc.HtmlOptions.GeckoSubset.OnLoadScript=
@“(职能(){
window.ABCpdf_go=false;
var elemento=document.getElementById('description');
var elementos=elemento.childNodes;
var-contador=0;
对于(i=0;i1600){
contador=elementos[i]。视线外;
var childElements=elementos[i].childNodes;
对于(j=0;j
但是如果你使用EngineType.Gecko,引导库就不起作用了