Javascript PDF.js本机Android浏览器问题
我的任务是找到一种在Android浏览器中显示PDF的方法,而不必将其下载到用户的手机上。到目前为止,我发现PDF.js非常适合于此。除了Android的本机浏览器(在同一部手机上的Chrome浏览器中也可以正常工作),我尝试过的其他手机/浏览器都可以使用它。我已经在两个机器人(4.1.2和4.3.x)上试过了,但这两个机器人都不行 (红色框是从PDF元数据派生的绝对divs元素。它们不是画布的一部分。我知道它只是加载文档,而不是呈现文档)Javascript PDF.js本机Android浏览器问题,javascript,android,html,mobile,canvas,Javascript,Android,Html,Mobile,Canvas,我的任务是找到一种在Android浏览器中显示PDF的方法,而不必将其下载到用户的手机上。到目前为止,我发现PDF.js非常适合于此。除了Android的本机浏览器(在同一部手机上的Chrome浏览器中也可以正常工作),我尝试过的其他手机/浏览器都可以使用它。我已经在两个机器人(4.1.2和4.3.x)上试过了,但这两个机器人都不行 (红色框是从PDF元数据派生的绝对divs元素。它们不是画布的一部分。我知道它只是加载文档,而不是呈现文档) PDFJS .getDocument(PDFSour
PDFJS
.getDocument(PDFSource)
。然后(函数(pdf){
//为每一页制作画布
对于(var i=1;i
PDFJS
.getDocument(PDFSource)
.then(function(pdf) {
//make canvas for each page
for(var i = 1; i <= pdf.numPages; i++) {
//add an annotation div and a canvas to draw to.
$('body').append('<div id="AnnotationLayer' + i + '" class="annotations"></div><canvas id="PDFCanvas' + i + '"></canvas>');
//get the page
pdf.getPage(i).then(function(page) {
var scale = 1;
var viewport = page.getViewport(scale);
var scaledViewport = viewport;
var canvas = document.getElementById('PDFCanvas' + page.pageNumber);
var context = canvas.getContext('2d');
canvas.height = scaledViewport.height;
canvas.width = scaledViewport.width;
var renderContext = {
canvasContext: context,
viewport: scaledViewport
};
//context.clearRect(0, 0, canvas.width, canvas.height); //tried this
page.render(renderContext);
//canvas.width = canvas.width; //tried this
//tried commenting out annotations, did not seem to work
var $annotationLayerDiv = $('#AnnotationLayer' + page.pageNumber);
//extract links from the page and put them absolutely positioned over the canvas
annotations(page, canvas, $annotationLayerDiv);
})