|
|
@@ -31,7 +31,7 @@ var pagedPdfPath;
|
|
|
var printType = getParameter("printType");
|
|
|
|
|
|
getWindowWidth();
|
|
|
-loadData();
|
|
|
+loadData(1);
|
|
|
|
|
|
// 是否立即打印
|
|
|
if (printType == 'PRINT') {
|
|
|
@@ -69,29 +69,26 @@ $("#prev").click(prevPage);
|
|
|
$("#next").click(nextPage);
|
|
|
|
|
|
// 手动输入页码
|
|
|
-$("#pageIndex").keypress(
|
|
|
- function(event) {
|
|
|
- if (!pdfDoc) {
|
|
|
+$("#pageIndex").keypress(function(event) {
|
|
|
+ if (!pdfDoc) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 按Enter键
|
|
|
+ if (event.keyCode == 13) {
|
|
|
+ var value = document.getElementById("pageIndex").value;
|
|
|
+ // 以非0开头的整数
|
|
|
+ var regExp = /^([1-9]+\d*)$/;
|
|
|
+ if (regExp.test(value) && value >= 1 && value <= pageSize) {
|
|
|
+ if (value == pageIndex) {
|
|
|
return;
|
|
|
}
|
|
|
- // 按Enter键
|
|
|
- if (event.keyCode == 13) {
|
|
|
- var value = document.getElementById("pageIndex").value;
|
|
|
- // 以非0开头的整数
|
|
|
- var regExp = /^([1-9]+\d*)$/;
|
|
|
- if (regExp.test(value) && value >= 1 && value <= pageSize) {
|
|
|
- if (value == pageIndex) {
|
|
|
- return;
|
|
|
- }
|
|
|
- pagedPdfPath = pagedPdfPath.replace(pageIndex + ".pdf",
|
|
|
- value + ".pdf");
|
|
|
- pageIndex = value;
|
|
|
- loadPagedPdf(pagedPdfPath);
|
|
|
- } else {
|
|
|
- document.getElementById("pageIndex").value = pageIndex;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ pageIndex = value;
|
|
|
+ loadData(pageIndex);
|
|
|
+ } else {
|
|
|
+ document.getElementById("pageIndex").value = pageIndex;
|
|
|
+ }
|
|
|
+ }
|
|
|
+});
|
|
|
|
|
|
// 打印
|
|
|
$("#print").click(function() {
|
|
|
@@ -284,13 +281,12 @@ function loadPagedPdf(pagedPdfPath, ifPreloadWholePdf) {
|
|
|
/**
|
|
|
* 发送请求,服务器端进行填充报表、生成pdf文件等操作
|
|
|
*/
|
|
|
-function loadData() {
|
|
|
- var loadPdfDataUrl = "print/loadPdfData" + window.location.search;
|
|
|
- // 未传参数printType或者为PREVIEW,则先获取第一页pdf
|
|
|
- if (!printType || printType == "PREVIEW") {
|
|
|
- loadPdfDataUrl = loadPdfDataUrl + "&pageIndex=" + 1;
|
|
|
- }
|
|
|
+function loadData(page) {
|
|
|
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
|
showLoading();
|
|
|
+ pageIndex = page || 1;
|
|
|
+ var loadPdfDataUrl = "print/loadPdfData" + window.location.search;
|
|
|
+ loadPdfDataUrl = loadPdfDataUrl + "&pageIndex=" + pageIndex;
|
|
|
$.ajax({
|
|
|
type : "get",
|
|
|
async : false,
|
|
|
@@ -298,19 +294,20 @@ function loadData() {
|
|
|
success : function(data) {
|
|
|
// 返回的pdf文件路径
|
|
|
wholePdfPath = data.pdfPath;
|
|
|
- if (!pageIndex) {
|
|
|
- pageIndex = 1;
|
|
|
- }
|
|
|
- // 第一页的pdf文件路径
|
|
|
+ // 第pageIndex页的pdf文件路径
|
|
|
pagedPdfPath = wholePdfPath.replace(".pdf", "_" + pageIndex
|
|
|
+ ".pdf");
|
|
|
- pageSize = data.pageSize;
|
|
|
- document.getElementById('pageSize').textContent = pageSize;
|
|
|
- document.title = getParameter("reportName");
|
|
|
- // 加载第一页文档
|
|
|
- loadPagedPdf(pagedPdfPath, true);
|
|
|
- // $.when(getDocument()).done(loadWholePdf);
|
|
|
- // console.log(renderTask._internalRenderTask.running);
|
|
|
+ if (pageIndex == 1) {
|
|
|
+ pageSize = data.pageSize;
|
|
|
+ document.getElementById('pageSize').textContent = pageSize;
|
|
|
+ document.title = getParameter("reportName");
|
|
|
+ // 加载第一页文档,并且预加载整个文档
|
|
|
+ loadPagedPdf(pagedPdfPath, true);
|
|
|
+ // $.when(getDocument()).done(loadWholePdf);
|
|
|
+ // console.log(renderTask._internalRenderTask.running);
|
|
|
+ } else {
|
|
|
+ loadPagedPdf(pagedPdfPath);
|
|
|
+ }
|
|
|
},
|
|
|
error : function(XMLHttpRequest) {
|
|
|
$("#theCanvas").remove();
|
|
|
@@ -339,6 +336,10 @@ function loadWholePdf() {
|
|
|
console.log(new Date().format()
|
|
|
+ " ---- received and unsubscribe renderTaskFinishedSignal");
|
|
|
$.unsubscribe("renderTaskFinishedSignal", loadWholePdf);
|
|
|
+ // 之前已经加载,不再加载
|
|
|
+ if (hiddenFrameLoaded) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
// 渲染完成后延迟一小段时间预加载整个文档
|
|
|
sleep(500);
|
|
|
if (pageSize > PRINT_MAX_PAGE_SIZE) {
|
|
|
@@ -458,11 +459,9 @@ function prevPage() {
|
|
|
if (!pdfDoc || pageIndex <= 1) {
|
|
|
return;
|
|
|
}
|
|
|
- showLoading();
|
|
|
// 获取前一页的pdf
|
|
|
- pagedPdfPath = pagedPdfPath.replace(pageIndex + ".pdf", (--pageIndex)
|
|
|
- + ".pdf");
|
|
|
- loadPagedPdf(pagedPdfPath);
|
|
|
+ pageIndex--;
|
|
|
+ loadData(pageIndex);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -472,10 +471,8 @@ function nextPage() {
|
|
|
if (!pdfDoc || pageIndex >= pageSize) {
|
|
|
return;
|
|
|
}
|
|
|
- showLoading();
|
|
|
- pagedPdfPath = pagedPdfPath.replace(pageIndex + ".pdf", (++pageIndex)
|
|
|
- + ".pdf");
|
|
|
- loadPagedPdf(pagedPdfPath);
|
|
|
+ pageIndex++;
|
|
|
+ loadData(pageIndex);
|
|
|
}
|
|
|
|
|
|
/**
|