0
我有一個經典的asp頁面,它生成一個PDF將它提供給瀏覽器。我想要做的是有一個加載頁面,該頁面在完成後將其加載到瀏覽器中之前加載PDF,基本上添加了一個很好的頁面,指示用戶正在發生某些事情。在後臺生成pdf
我已經看過像雅虎進度條之類的東西,但我沒有看到任何提供PDF的方法。
任何人有什麼建議?我相信這一定是以前做過的。
我有一個經典的asp頁面,它生成一個PDF將它提供給瀏覽器。我想要做的是有一個加載頁面,該頁面在完成後將其加載到瀏覽器中之前加載PDF,基本上添加了一個很好的頁面,指示用戶正在發生某些事情。在後臺生成pdf
我已經看過像雅虎進度條之類的東西,但我沒有看到任何提供PDF的方法。
任何人有什麼建議?我相信這一定是以前做過的。
我發現了一種使用iframe的情況的解決方案。這不是傳統的asp,但我不明白爲什麼它不起作用。這是我找到的article。
編輯:添加代碼。
您的應用程序調用容器頁面:
<head runat="server">
<script language="javascript" type="text/javascript">
function BuildPDF() {
var iframe = document.createElement("iframe");
iframe.src = "BuildPDF.asp?" + <whatever args you need>;
iframe.style.display = "none";
document.body.appendChild(iframe);
}
function UpdateProgress(message) {
document.getElementById('txtStatus').value = message;
}
function SetDisplayFileName(fileName) {
var viewFrame = document.createElement("iframe");
viewFrame.id = "viewFrame";
viewFrame.src = "WhateverTheNameOfYourPDFViewASPPageAndArgs";
viewFrame.style.width = '100%';
viewFrame.style.height = document.documentElement.clientHeight - 20;
document.body.appendChild(viewFrame);
}
function ResizeFrame() {
var viewFrame = document.getElementById("viewFrame");
viewFrame.style.height = document.documentElement.clientHeight - 20;
}
</script>
</head>
<body onload="BuildPDF();" onresize="ResizeFrame();">
<form id="form1" runat="server">
<input type="text" id="txtStatus" style="width:80%; font-family: Tahoma, Verdana; font-size: small; font-weight: bold;" readonly="readonly" />
<br />
</form>
</body>
然後,在某處你BuildPDF.asp,你有一個函數是這樣的,你可以隨時打電話要更新狀態消息:
function UpdateProgress(message)
Response.Write("<script>parent.UpdateProgress('" & message & "');</script>")
Response.Flush()
end function
您在「viewFrame」中引用的頁面是流式傳輸ContentType「application/pdf」的頁面。再次,我在ASP.Net中做了這個,但我沒有看到爲什麼它不能在傳統的ASP中工作。
這就是正確的想法,但被調用的經典asp頁面會返回Response.ContentType =「application/pdf」,因此無法將腳本標記輸出到此頁面。 – 2009-05-01 12:22:12