我的html主体中有一个对象元素,用于显示导出到.pdf文件的Active报表。我需要使用javascript自动将pdf输出到客户端的默认打印机,然后将pdf保存到服务器:
<script language="javascript" type="text/javascript">
// <!CDATA[
function PrintPDF() {
pdf.click();
pdf.setActive();
pdf.focus();
pdf.PrintAll();
}
// ]]>
....
<body onload="return PrintPDF();">
<form id="form1" runat="server">
<object id="pdfDoc" type="application/pdf" width="100%" height="100%" data="test.aspx?PrintReport=yes&SavePDF=yes"/>
</form>
</body>
使用对象标记中的数据硬编码,一切运行都没有问题。
现在的问题是我需要动态地将查询字符串传递给此页面。我试图在javsacript中设置属性数据以传递查询字符串。查询字符串值成功传递,但似乎未设置数据属性。我得到一个空白页面。
pdf.setAttribute( “数据”, “Test.aspx文件PrintReport = YES&安培; SavePDF = YES&安培; AccNum =” + AccNum);
有没有人知道如何动态设置数据属性以传递querystring?
谢谢,
答案 0 :(得分:0)
var pdfObj = document.getElementById('pdfDoc');
pdfObj.data="test.aspx?PrintReport=yes&SavePDF=yes&AccNum="+AccNum;
答案 1 :(得分:0)
就数据属性而言,你做的一切都很好。这里有些例子: http://jsfiddle.net/3SxRu/
我认为您的问题可能更多地与执行顺序有关。你的实际代码是什么样的?你是在写onLoad
函数还是什么?
另外,我假设使用data
属性是必需的。 HTML5定义data-*
。此属性不是真正有效。同样,也许你的系统需要它。
答案 2 :(得分:0)
我怀疑事情发生了故障。在添加嵌入之前,请尝试等待窗口的onload事件。
另外,我建议使用像PDFObject这样的脚本来处理嵌入,因为它是一种可靠的方法,可以将PDF嵌入到所有各种浏览器中。例如,您可能会遇到以下内容:
<html>
<head>
<title>PDFObject example</title>
<script type="text/javascript" src="pdfobject.js"></script>
<script type="text/javascript">
window.onload = function (){
// First build the link to the PDF raw data ("bits")
// getQueryStrings assumes something like http://stackoverflow.com/questions/2907482/how-to-get-the-query-string-by-javascript
var queryStrings = getQueryStrings();
var reportNameParamValue = queryStrings["reportName"];
var pdfBitsUrl = "getReportPdfBits.aspx?reportName=" + reportNameParamValue;
// just in case PDF cannot be embedded, we'll fix the fallback link below:
var pdfFallbackLink = document.getElementById("pdfFallbackAnchor");
pdfFallbackLink.href = pdfFallbackLink;
// now perform the actual embed using PDFObject script from http://pdfobject.com
var success = new PDFObject( {
url: pdfBitsUrl;
}).embed();
};
</script>
</head>
<body>
<p>It appears you don't have Adobe Reader or PDF support in this web
browser. <a id="pdfFallbackAnchor" href="sample.pdf">Click here to download the PDF</a></p>
</body>