ABCpdf可以从使用Javascript创建的页面创建PDF吗?

时间:2012-05-05 20:30:40

标签: javascript html pdf abcpdf

我网站的访问者可以点击“打印预览”按钮。 Javascript代码打开一个Window并使用document.writelin()将创建一个显示动态内容的html页面(基本上,用户正在查看报告。这里的代码片段向您展示我的意思:

printerWindow = window.open("");  
printerWindow.document.writeln("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0   Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>");  
printerWindow.document.writeln("<html>");  
printerWindow.document.writeln("<head>");  
printerWindow.document.writeln("<title>Report Title</title>");  
printerWindow.document.writeln("<link href='./css/schedule_print_preview.css'  type='text/css' rel='stylesheet'>");  
printerWindow.document.writeln("<link href='./css/schedule_printer.css' rel='stylesheet' type='text/css' media='print'>");  
printerWindow.document.writeln("<script type='text/javascript'>");  
printerWindow.document.writeln("function printcalc() {");  
printerWindow.document.writeln("window.print();");  
printerWindow.document.writeln("};");  
printerWindow.document.writeln("<\/script>");  
printerWindow.document.writeln("</head>");  
printerWindow.document.writeln("<body>");  
printerWindow.document.writeln("<div class='btns'>");  

{...}

我想在此页面上添加“下载PDF”链接,以便访问者可以将报告保存为PDF。

ABCpdf 8.1可以实现吗? (我正在评估它。)我遇到的问题是找出最接近我需要做什么的例子。有什么建议? TIA。

1 个答案:

答案 0 :(得分:4)

我认为你应该能够。 c#中有一些设置会有所帮助。

您需要设置

doc.HtmlOptions.UseScript = true; 

这将启用javascript运行。

可能值得设置超时以给它更多时间来完成加载

doc.HtmlOptions.Timeout = 10000;

并且我总是使用gecko渲染引擎获得更好的结果

doc.HtmlOptions.Engine = EngineType.Gecko;