|
|
@@ -1,16 +1,17 @@
|
|
|
//IE下找不到pdf.worker.js,需要手动赋值
|
|
|
PDFJS.workerSrc = 'static/lib/pdf.js/build/pdf.worker.js';
|
|
|
|
|
|
-// pdf文件的路径
|
|
|
-var url;
|
|
|
-var pdfDoc = null;
|
|
|
-var pageIndex = 1;
|
|
|
-var pageSize = 1;
|
|
|
-var scale;
|
|
|
var canvas = document.getElementById('theCanvas');
|
|
|
var ctx = canvas.getContext('2d');
|
|
|
// 隐藏的iframe,用于加载pdf,以便打印(pdf.js自带的打印有问题)
|
|
|
var hiddenframe = document.getElementById("hiddenFrame");
|
|
|
+
|
|
|
+// pdf文件的路径
|
|
|
+var url;
|
|
|
+var pdfDoc;
|
|
|
+var pageIndex;
|
|
|
+var pageSize;
|
|
|
+var scale;
|
|
|
var winHeight;
|
|
|
var winWidth;
|
|
|
|
|
|
@@ -33,6 +34,9 @@ $("#next").click(nextPage);
|
|
|
|
|
|
// 手动输入页码
|
|
|
$("#pageIndex").keypress(function(event) {
|
|
|
+ if (!pdfDoc) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
// 按Enter键
|
|
|
if (event.keyCode == 13) {
|
|
|
var value = document.getElementById("pageIndex").value;
|
|
|
@@ -75,22 +79,31 @@ $("#scaleSelect").change(function() {
|
|
|
|
|
|
// 打印
|
|
|
$("#print").click(function() {
|
|
|
+ if (!pdfDoc) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
hiddenframe.contentWindow.print();
|
|
|
});
|
|
|
|
|
|
// 下载pdf
|
|
|
$("#downloadPdf").click(function() {
|
|
|
+ if (!pdfDoc) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
window.location = downloadUrl("pdf");
|
|
|
});
|
|
|
|
|
|
// 下载纯数据excel
|
|
|
$("#downloadExcelWithOnlyData").click(function() {
|
|
|
+ if (!pdfDoc) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
window.location = downloadUrl("xls_with_only_data");
|
|
|
});
|
|
|
|
|
|
// 键盘左右键进行翻页
|
|
|
$("body").keydown(function(event) {
|
|
|
- // 如果在input输入框内按左右键,不进行翻页
|
|
|
+ // 如果在选中input输入框或select下拉列表时按左右键,不进行翻页
|
|
|
var activeElementNodeName = document.activeElement.nodeName.toLowerCase();
|
|
|
if (activeElementNodeName == "input" || activeElementNodeName == "select") {
|
|
|
return;
|
|
|
@@ -124,7 +137,6 @@ function getWindowWidth() {
|
|
|
// 发送请求,服务器端进行填充报表、生成pdf文件等操作
|
|
|
function loadPdfData() {
|
|
|
var loadPdfDataUrl = "print/loadPdfData" + window.location.search;
|
|
|
- pageIndex = getParameter("pageIndex");
|
|
|
if (!pageIndex) {
|
|
|
pageIndex = 1;
|
|
|
loadPdfDataUrl = loadPdfDataUrl + "&pageIndex=" + pageIndex;
|
|
|
@@ -171,6 +183,9 @@ function getDocument() {
|
|
|
|
|
|
// Get page info from document, resize canvas accordingly, and render page.
|
|
|
function renderPage() {
|
|
|
+ if (!pdfDoc) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
// 每个pdf只有一页
|
|
|
pdfDoc.getPage(1).then(function(page) {
|
|
|
if (!scale || scale == "auto") {
|
|
|
@@ -209,7 +224,7 @@ function getScale(page, multipleOfWindowWidth) {
|
|
|
|
|
|
// 预览前一页
|
|
|
function prevPage() {
|
|
|
- if (pageIndex <= 1) {
|
|
|
+ if (!pdfDoc || pageIndex <= 1) {
|
|
|
return;
|
|
|
}
|
|
|
// 获取前一页的pdf
|
|
|
@@ -219,7 +234,7 @@ function prevPage() {
|
|
|
|
|
|
// 预览后一页
|
|
|
function nextPage() {
|
|
|
- if (pageIndex >= pageSize) {
|
|
|
+ if (!pdfDoc || pageIndex >= pageSize) {
|
|
|
return;
|
|
|
}
|
|
|
url = url.replace(pageIndex + ".pdf", (++pageIndex) + ".pdf");
|