|
|
@@ -100,23 +100,60 @@ $("#print").click(function() {
|
|
|
});
|
|
|
|
|
|
// 下载pdf
|
|
|
-$("#downloadPdf")
|
|
|
- .click(
|
|
|
- function() {
|
|
|
- if (!pdfDoc) {
|
|
|
- return;
|
|
|
- }
|
|
|
- // 检查文件状态,直到其可用
|
|
|
- var valid;
|
|
|
- if (!valid) {
|
|
|
- setTimeout(
|
|
|
- "valid = getGeneratedPdfOrXlsInformation('pdf').valid;console.log(valid)",
|
|
|
- 1000);
|
|
|
- // valid = getGeneratedPdfOrXlsInformation("pdf").valid;
|
|
|
- // sleep(1000);
|
|
|
- }
|
|
|
- window.location = downloadUrl("pdf");
|
|
|
- });
|
|
|
+$("#downloadPdf").click(
|
|
|
+ function() {
|
|
|
+ if (!pdfDoc) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 检查文件状态,直到其可用
|
|
|
+ var valid = getGeneratedPdfOrXlsInformation('pdf').valid;
|
|
|
+ // 文件除了要保证有效(存在并且未过有效期),还要确保hiddenFrameLoaded不能为真
|
|
|
+ // 1.hiddenFrameLoaded不为真,即此时刚进入页面,文档尚未生成,需要等待其生成;
|
|
|
+ // 2.hiddenFrameLoaded为真,页面加载成功后并未关闭,闲置了一段时间,再次点击打印,
|
|
|
+ // 此时文件可能已经过期,需要立即请求下载(后台此时会重新生成),不能处于等待状态;
|
|
|
+ if (!valid && !hiddenFrameLoaded) {
|
|
|
+ console.log(new Date().format() + " ---- 文件正在生成,请等待");
|
|
|
+ console.log(new Date().format()
|
|
|
+ + " ---- subscribed wholePdfGenerated");
|
|
|
+ $.subscribe("wholePdfGenerated", downloadPdf);
|
|
|
+ waitWholePdfGenerated();
|
|
|
+ // setTimeout(
|
|
|
+ // "valid =
|
|
|
+ // getGeneratedPdfOrXlsInformation('pdf').valid;console.log(valid)",
|
|
|
+ // 1000);
|
|
|
+ // valid = getGeneratedPdfOrXlsInformation("pdf").valid;
|
|
|
+ // sleep(1000);
|
|
|
+ } else {
|
|
|
+ window.location = downloadUrl("pdf");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+/**
|
|
|
+ * 下载文件
|
|
|
+ */
|
|
|
+function downloadPdf() {
|
|
|
+ console.log(new Date().format()
|
|
|
+ + " ---- received and unsubscribe wholePdfGenerated");
|
|
|
+ $.unsubscribe("wholePdfGenerated", downloadPdf);
|
|
|
+ console.log(new Date().format() + " ---- start print");
|
|
|
+ window.location = downloadUrl("pdf");
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 每隔一定时间查询文件状态,直到文件有效
|
|
|
+ */
|
|
|
+function waitWholePdfGenerated() {
|
|
|
+ var valid = getGeneratedPdfOrXlsInformation("pdf").valid;
|
|
|
+ if (!valid) {
|
|
|
+ console.log(new Date().format() + " ---- 文件还未生成");
|
|
|
+ console.log(new Date().format() + " ---- wait 3000ms")
|
|
|
+ setTimeout("waitWholePdfGenerated()", 3000);
|
|
|
+ } else {
|
|
|
+ console.log(new Date().format() + " ---- 文件已生成");
|
|
|
+ console.log(new Date().format() + " ---- published wholePdfGenerated");
|
|
|
+ $.publish("wholePdfGenerated", waitWholePdfGenerated);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
// 下载纯数据excel
|
|
|
$("#downloadExcelWithOnlyData").click(function() {
|
|
|
@@ -219,14 +256,14 @@ function loadPagedPdf(pagedPdfPath, ifPreloadWholePdf) {
|
|
|
// 更新页码
|
|
|
document.getElementById('pageIndex').value = pageIndex;
|
|
|
pdfDoc = pdfDoc_;
|
|
|
- // Initial/first page rendering
|
|
|
- renderPage();
|
|
|
// 第一页文档渲染完成后,再加载整个文档
|
|
|
if (ifPreloadWholePdf) {
|
|
|
console.log(new Date().format()
|
|
|
+ " ---- subscribed renderTaskFinished");
|
|
|
$.subscribe("renderTaskFinished", loadWholePdf);
|
|
|
}
|
|
|
+ // Initial/first page rendering
|
|
|
+ renderPage();
|
|
|
// $.when(rend("getDocument promised");
|
|
|
// dfd.resolve();
|
|
|
// });
|