2016-06-16 17 views
1

Ich arbeite an einer PDJS Ansicht innerhalb einer Cordova APP.PDFJs Unscharfe PDF auf iPAD

Alles funktioniert gut, außer dass das PDF etwas verschwommen ist. Ich weiß, dass es irgendwie wegen des Retina-Displays ist, aber wie kann ich das ändern oder wie bekomme ich die richtige Skala?

Derzeit versuche ich diese

pdfFile.getPage(data.page).then(function (page) { 


    canvas.width = $('#pdfContainer').width(); 
    var viewport = page.getViewport(canvas.width/(page.getViewport(1).width)); 
    canvas.width = viewport.width; 
    canvas.height = viewport.height; 

    var height= $('#pdfContainer').height(); 



    if (canvas.height > height) { 
     canvas.height = height; 
     var viewport = page.getViewport(canvas.height/(page.getViewport(1).height)); 
     canvas.width = viewport.width; 
     canvas.height = viewport.height; 
    } 

    var renderContext = { 
     canvasContext: context, 
     viewport: viewport 
    }; 

    page.render(renderContext); 
}); 
+0

Haben Sie es jemals geschafft, dies herauszufinden? Ich habe genau das gleiche Problem. – distante

+0

Ja brauchst du noch Hilfe dazu? –

+0

@distante dringend? Ansonsten werde ich später eine Antwort geben –

Antwort

1

Was ich tat dies zunächst die Bildglättung deaktivieren war:

canvasContext = canvas.getContext('2d') as CanvasRenderingContext2D; 
canvasContext.imageSmoothingEnabled = false; 
canvasContext.webkitImageSmoothingEnabled = false; 
canvasContext.mozImageSmoothingEnabled = false; 
canvasContext.oImageSmoothingEnabled = false; 

Und dann die devicePixelRatio multiplizieren, die ich window.devicePixelRatio

if (window.devicePixelRatio > 1) { 
     var canvasWidth = canvas.width; 
     var canvasHeight = canvas.height; 

     canvas.width = canvasWidth * window.devicePixelRatio; 
     canvas.height = canvasHeight * window.devicePixelRatio; 
     canvas.style.width = canvasWidth + "px"; 
     canvas.style.height = canvasHeight + "px"; 

     canvasContext.scale(window.devicePixelRatio, window.devicePixelRatio); 
    } 
FIND

Dies beheben Sie auch den unscharfen Effekt für Macbocks mit Retina d isplays.