如何在页面加载完成后使用来自ABCpdf的AddImageUrl生成pdf

时间:2014-09-11 06:47:37

标签: c# html css asp.net abcpdf

我想将网页的缩略图添加到pdf文档

我这样添加:

    Doc generatedoc = new Doc();
    generatedoc.HtmlOptions.UseScript = true;

    string urlToHtmlPage = "http://example.com?param1=30&param2=true";
    int generatedId = generatedoc.AddImageUrl(urlToHtmlPage);

    generatedoc.Save(HttpContext.Current.Server.MapPath("htmlimport.pdf"));
    generatedoc.Clear();

在url中我发送了两个参数,根据页面中的参数添加了一个用于各种html标签的类,例如:

<div class="cssClass <%=param2==true?"secondCssClass":""%>">some html tags</div>

<span class="<%= param2==true?"secondCssClass":"" %>"> some text </span>

在风格内

<style type="text/css">
    .secondCssClass
    {
        display: none;
    }
</style>

pdf生成正常但是secondCssClass没有添加到我的标签中,而且css没有应用 我试着设置很大的时间,但css没有应用

我像这样设定时间:

generatedoc.HtmlOptions.Timeout = 1000000;

generatedoc.HtmlOptions.OnLoadScript = "(function(){ window.ABCpdf_go = false;
            setTimeout(function(){ window.ABCpdf_go = true; }, 1000000); })();";

或RenderWait()和RenderComplete()

   generatedoc.HtmlOptions.OnLoadScript = @"
    window.external.ABCpdf_RenderWait(); 
    window.external.ABCpdf_RenderComplete(true);";

但无论如何CSS不适用 当我在浏览器中加载url css正在申请时 一些提案?

1 个答案:

答案 0 :(得分:1)

根据您对评论的回复,即使在浏览器中您看到问题也说明这不是ABCPDF问题。

我认为问题在于:

<div class="cssClass <%=param2==true?"secondCssClass":""%>">some html tags</div>

<span class="<%= param2==true?"secondCssClass":"" %>"> some text </span>

如果该代码与您运行的代码完全相同,那么您需要对这些代码进行调整:

  1. 访问网址参数,您需要使用“请求对象”
  2. 网址参数是文字,您的比较将它们设为布尔
  3. 代码应如下:

    <div class="cssClass <%= Request.QueryString("param2")=="true"?"secondCssClass":"" %>">some html tags</div>
    

    <span class="<%= Request.QueryString("param2")=="true"?"secondCssClass":"" %>"> some text </span>
    

    我建议您在通过ABCPDF进行测试之前在浏览器中对此进行测试。