更新tiff预览

This commit is contained in:
陈精华
2022-12-13 16:40:10 +08:00
parent 1261e6aa03
commit e7930a2442
3 changed files with 1700 additions and 3219 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -4,40 +4,90 @@
<meta charset="utf-8"/> <meta charset="utf-8"/>
<title>Tiff 图片预览</title> <title>Tiff 图片预览</title>
<link rel="stylesheet" href="css/viewer.min.css"> <link rel="stylesheet" href="css/viewer.min.css">
<script src="js/tiff.min.js"></script> <script src="js/UTIF.js"></script>
<#include "*/commonHeader.ftl"> <#include "*/commonHeader.ftl">
<style> <#if currentUrl?contains("http://") || currentUrl?contains("https://") || currentUrl?contains("file://")|| currentUrl?contains("ftp://")>
body { <#assign finalUrl="${currentUrl}">
background-color: #404040; <#else>
} <#assign finalUrl="${baseUrl}${currentUrl}">
</#if>
#tiff {
position: fixed;
top:50%;
left:50%;
transform: translate(-50%,-50%);
}
/*#dowebok li img { width: 200%;}*/
</style>
</head> </head>
<style type="text/css">
body{ text-align:center}
img{max-width: 100%;
margin:0 auto;
border: 2px solid #ddd;
}
</style>
<body> <body>
<input hidden id="currentUrl" value="${currentUrl}"/> <#if "false" == pdfDownloadDisable>
<div id="tiff"> <!--endprint-->
</div> <button type="button" onclick="doPrint()">打印</button>
<!--startprint-->
</#if>
<div id="tiff"></div>
<script> <script>
var xhr = new XMLHttpRequest(); let pages;
let p;
let resp;
function loadOne(e) {
UTIF.decodeImage(resp, pages[p]);
const rgba = UTIF.toRGBA8(pages[p]);
const canvas = document.createElement('canvas');
canvas.width = pages[p].width;
canvas.height = pages[p].height;
const ctx = canvas.getContext('2d');
const imageData = ctx.createImageData(canvas.width, canvas.height);
for (let i = 0; i < rgba.length; i++) {
imageData.data[i] = rgba[i];
}
ctx.putImageData(imageData, 0, 0);
const imgObj = document.createElement('img');
imgObj.src = canvas.toDataURL('image/png');
if (++p < pages.length) {
imgObj.onload = loadOne;
}
var myp = document.getElementById('tiff');
myp.appendChild(imgObj);
}
function imgLoaded(e) {
resp = e.target.response;
pages = UTIF.decode(resp);
p = 0;
loadOne();
}
function doPrint() {
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML=prnhtml;
initWaterMark();
window.print();
}
String.prototype.startsWithh = function(str) {
var reg = new RegExp("^" + str);
return reg.test(this);
}
String.prototype.endsWithh = function(str) {
var reg = new RegExp(str + "$");
return reg.test(this);
}
var url = '${finalUrl}';
var baseUrl = '${baseUrl}'.endsWithh('/') ? '${baseUrl}' : '${baseUrl}' + '/';
if (!url.startsWithh(baseUrl)) {
url = baseUrl + 'getCorsFile?urlPath=' + encodeURIComponent(url);
}
const xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.responseType = 'arraybuffer'; xhr.responseType = 'arraybuffer';
xhr.open('GET', $("#currentUrl").val()); xhr.onload = imgLoaded;
var config = {};
config.TOTAL_MEMORY = ${initializeMemorySize};
Tiff.initialize(config)
xhr.onload = function (e) {
var tiff = new Tiff({buffer: xhr.response});
var canvas = tiff.toCanvas();
$("#tiff").append(canvas)
};
xhr.send(); xhr.send();
/*初始化水印*/ /*初始化水印*/
@@ -46,5 +96,4 @@
} }
</script> </script>
</body> </body>
</html> </html>