1

我网站的访问者可以单击“打印预览”按钮。Javascript 代码打开一个窗口并使用 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。

4

1 回答 1

4

我想你应该可以。c# 中有一些设置会有所帮助。

您需要设置

doc.HtmlOptions.UseScript = true; 

这将使 javascript 能够运行。

可能值得设置超时以使其有更多时间完成加载

doc.HtmlOptions.Timeout = 10000;

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

doc.HtmlOptions.Engine = EngineType.Gecko;
于 2012-05-29T12:49:04.377 回答