visualizador plugin page ejemplo javascript pdf mozilla pdf.js

plugin - show pdf javascript



PDF de la escala PDF.js en ancho fijo (2)

Actualicé el ejemplo de Pdf.js github http://jsbin.com/pdfjs-prevnext-v2/edit#html,live para escalar correctamente a un ancho de lienzo fijo. Ver http://jsfiddle.net/RREv9/ para mi código.

La línea importante es

var viewport = page.getViewport(canvas.width / page.getViewport(1.0).width);

porque la expresión canvas.width / page.getViewport(1.0).width nos da el factor de escala apropiado.

Debe cambiar el ancho de su lienzo no con CSS, sino con el width del lienzo. Consulte Ancho y alto de lienzo en HTML5

Tengo un cuadro fijo donde quiero mostrar mis PDF en renderizado por PDF.js. Como la documentación PDF.js no es realmente accesible (escupiendo a través de sus archivos fuente), me gustaría saber si es posible escalar un PDF renderizado en un ancho fijo. Cuando configuro como CSS: canvas { width: 600px; } canvas { width: 600px; } para el lienzo que muestra el PDF, el PDF se estira y la calidad es mala.


Para garantizar que la escala funcione con todos los tamaños de página (Carta, A4, A5, etc.), debe tener en cuenta que las relaciones entre altura y ancho varían cuando cambian los tamaños de página. Por ejemplo, los tamaños de página populares (en pulgadas) son:

  • Carta: relación de 8.5 x 11 .. de 0.772
  • A4: relación de 8.27 × 11.7 .. de 0.706
  • A5: relación de 5.83 × 8.27 .. de 0.704

Puede calcular la escala correcta considerando tanto la altura como el ancho y solo escalando la cantidad que es más pequeña. Esto asegurará que todo se ajuste a su lienzo. Además, si cambia el ancho o alto de su lienzo, no romperá nada.

var unscaledViewport = page.getViewport(1); var scale = Math.min((canvas.height / unscaledViewport.height), (canvas.width / unscaledViewport.width)); var viewport = page.getViewport(scale);