PDF.js l'échelle PDF sur une largeur fixe
J'ai un fixe de boîte où je veux afficher mon PDF dans rendues par PDF.js. Comme PDF.js la documentation n'est pas vraiment accessible (en crachant par le biais de leurs fichiers source), je voudrais savoir si c'est possible à l'échelle d'un PDF rendu sur une largeur fixe. Lorsque j'ai mis comme CSS: canvas { width: 600px; }
pour la toile de l'affichage du fichier PDF, le PDF s'étend, et la qualité est mauvaise.
Vous devez vous connecter pour publier un commentaire.
J'ai mis à jour l'exemple de la Pdf.js github http://jsbin.com/pdfjs-prevnext-v2/edit#html,en direct à l'échelle correctement fixé la largeur du canevas. Voir http://jsfiddle.net/RREv9/ pour mon code.
La ligne importante est
parce que l'expression
canvas.width /page.getViewport(1.0).width
nous donne le facteur d'échelle approprié.Vous devez modifier la largeur de votre toile pas avec le css mais par la
width
attribut de la toile. Voir Toile largeur et la hauteur en HTML5width: 100%
(propriété css), je peux utiliserwindow.screen.width
valeur au lieu decanvas.width
droit? Je veux dire, commevar viewport = page.getViewport(window.screen.width / page.getViewport(1.0).width);
(btw, cela fonctionne bien pour moi)canvasContainer.clientWidth
puis il a travaillé. Merci!Pour s'assurer que la mise à l'échelle fonctionne avec toutes les tailles de page (Lettre, A4, A5, etc.) vous devez prendre en compte que les rapports entre la hauteur et la largeur varient en fonction des tailles de page changer. Par exemple, le populaire tailles de page (en pouces) sont:
Vous pouvez calculer la bonne mise à l'échelle en considérant à la fois la hauteur et la largeur et la seule mise à l'échelle de la quantité qui est plus petit. Cela permettra de s'assurer que tout s'adapte sur votre toile. En outre, si vous modifiez la largeur ou la hauteur de votre toile, vous de ne rien casser.