123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- $(document).ready(function() {
- var recordId = requestParam.recordId;
- var hrefStr = requestParam.hrefStr;
- var pdfContainer = document.getElementById("pdf-container");
- pdfContainer.style.width = '100%';
- pdfContainer.style.height = '100vh';
- pdfContainer.style.overflow = 'hidden';
- pdfContainer.style.position = 'relative';
- // 添加缩放按钮和样式
- var zoomControls = document.createElement('div');
- zoomControls.style.position = 'absolute';
- zoomControls.style.top = '10px';
- zoomControls.style.right = '10px';
- zoomControls.style.zIndex = '1000';
-
- var zoomInBtn = document.createElement('button');
- zoomInBtn.innerText = '+';
- zoomInBtn.style.fontSize = '24px';
- zoomInBtn.style.margin = '0 5px';
-
- var zoomOutBtn = document.createElement('button');
- zoomOutBtn.innerText = '-';
- zoomOutBtn.style.fontSize = '24px';
- zoomOutBtn.style.margin = '0 5px';
-
- zoomControls.appendChild(zoomInBtn);
- zoomControls.appendChild(zoomOutBtn);
- pdfContainer.appendChild(zoomControls);
- var scale = 1.5;
- var startX, startY, currentX, currentY, initialDX, initialDY;
- var isDragging = false;
- var numPages;
- var pdf;
- mbos.eas.invokeScript({
- name: "commonOSFservice",
- param: ['getJobRegistrationPackage', JSON.stringify({ recordId: recordId })],
- success: function(res) {
- var base64Data = res.msg;
- var pdfData = atob(base64Data);
- var loadingTask = pdfjsLib.getDocument({data: pdfData});
- loadingTask.promise.then(function(pdfDoc) {
- pdf = pdfDoc;
- numPages = pdf.numPages;
- renderAllPages(scale, true);
- zoomInBtn.addEventListener('click', function() {
- scale += 0.1;
- renderAllPages(scale, false);
- });
- zoomOutBtn.addEventListener('click', function() {
- scale = Math.max(0.5, scale - 0.1);
- renderAllPages(scale, false);
- });
- }, function(reason) {
- console.error(reason);
- });
- },
- error: function(e) {
- console.log(e);
- }
- });
- function renderAllPages(newScale, isFirst) {
- pdfContainer.innerHTML = '';
- pdfContainer.appendChild(zoomControls);
- for (var i = 1; i <= numPages; i++) {
- pdf.getPage(i).then(function(page) {
- var viewport = page.getViewport({ scale: newScale });
- var canvas = document.createElement('canvas');
- var context = canvas.getContext('2d');
- canvas.id = 'pdf-canvas-' + page.pageNumber;
- canvas.width = viewport.width;
- canvas.height = viewport.height;
- canvas.style.position = 'absolute';
- canvas.style.left = '0';
- canvas.style.top = '0';
- if (isFirst) {
- canvas.style.width = '100%';
- canvas.style.height = '100%';
- }
- pdfContainer.appendChild(canvas);
- canvas.addEventListener('touchstart', function(e) {
- isDragging = true;
- startX = e.touches[0].clientX;
- startY = e.touches[0].clientY;
- initialDX = canvas.offsetLeft;
- initialDY = canvas.offsetTop;
- });
- canvas.addEventListener('touchmove', function(e) {
- if (isDragging) {
- currentX = e.touches[0].clientX;
- currentY = e.touches[0].clientY;
- var dx = currentX - startX;
- var dy = currentY - startY;
- canvas.style.left = (initialDX + dx) + 'px';
- canvas.style.top = (initialDY + dy) + 'px';
- }
- });
- canvas.addEventListener('touchend', function() {
- isDragging = false;
- });
- var renderContext = {
- canvasContext: context,
- viewport: viewport
- };
- page.render(renderContext);
- });
- }
- }
- if (!hrefStr) {
- $('#myButton').hide();
- }
- $('#myButton').click(function() {
- window.location.href = hrefStr + "/judge_page?recordId=" + encodeURIComponent(recordId);
- });
- });
|