相关文章推荐
无聊的日记本  ·  alltypes - ...·  10 月前    · 
火爆的春卷  ·  ElFinder与CodeIgniter ...·  1 年前    · 
可爱的南瓜  ·  hive ...·  1 年前    · 
  <script>
  	var url = "/cdn.mozilla.net/pdfjs/helloworld.pdf";
  	PDFJS.workerSrc = "//mozilla.github.io/pdf.js/build/pdf.worker.js";
  	var loadingTask = PDFJS.getDocument( url );
  	loadingTask.promise.then(
  		function( pdf ) {
  			console.log( "PDF loaded" );
  			var pageNumber = 1;
  			pdf.getPage(pageNumber).then( function( page ) {
  				console.log( "Page loaded" );
  				var scale = 1.5;
  				var viewport = page.getViewport( scale );
  				var canvas = document.getElementById( "example" );
  				var context = canvas.getContext( "2d" );
  				canvas.height = viewport.height;
  				canvas.width = viewport.width;
  				var renderContext = {
  					canvasContext: context,
  					viewport: viewport
  				var renderTask = page.render( renderContext );
  				renderTask.then( function () { console.log( "Page rendered" ); });
  		}, function ( reason ) {
  			console.error( reason );
  </script>

載入pdf,並控制上下頁面

<button id="prev">上一頁</button> <button id="next">下一頁</button> <span>頁數: <span id="page_num"></span> / <span id="page_count"></span></span> <canvas id="example"></canvas> <script> // pdf檔案路徑,如果是絕對路徑,請Server使用CORS var url = "//cdn.mozilla.net/pdfjs/tracemonkey.pdf"; PDFJS.workerSrc = "//mozilla.github.io/pdf.js/build/pdf.worker.js"; var pdfDoc = null, pageNum = 1, pageRendering = false, pageNumPending = null, scale = 0.8, canvas = document.getElementById( "example" ), ctx = canvas.getContext( "2d" ); function renderPage( num ) pageRendering = true; pdfDoc.getPage( num ).then( function( page ) { var viewport = page.getViewport( scale ); canvas.height = viewport.height; canvas.width = viewport.width; var renderContext = { canvasContext: ctx, viewport: viewport var renderTask = page.render(renderContext); renderTask.promise.then( function() { pageRendering = false; if ( pageNumPending !== null ) { renderPage( pageNumPending ); pageNumPending = null; document.getElementById( "page_num" ).textContent = num; function queueRenderPage( num ) if ( pageRendering ) { pageNumPending = num; } else { renderPage( num ); function onPrevPage() // 上一頁 if ( pageNum <= 1 ) { return; pageNum--; queueRenderPage( pageNum ); document.getElementById( "prev" ).addEventListener( "click", onPrevPage ); function onNextPage() // 下一頁 if ( pageNum >= pdfDoc.numPages ) { return; pageNum++; queueRenderPage( pageNum ); document.getElementById( "next" ).addEventListener( "click", onNextPage ); PDFJS.getDocument( url ).then( function( pdfDoc_ ) { pdfDoc = pdfDoc_; document.getElementById( "page_count" ).textContent = pdfDoc.numPages; renderPage( pageNum ); </script>