浏览代码

PDF example updated

tentone 5 年之前
父节点
当前提交
6864b613b7
共有 1 个文件被更改,包括 13 次插入16 次删除
  1. 13 16
      examples/pdftiff.html

+ 13 - 16
examples/pdftiff.html

@@ -74,37 +74,32 @@
 
 		//Draw PDF example
 		var task = pdfjsLib.getDocument("./images/vrml.pdf");
-		console.log(task);
 
 		task.promise.then(function(pdf)
 		{
 			var numPages = pdf._pdfInfo.numPages;
-			var ppi = 72;
-
-			console.log(pdf);
 
 			if(numPages > 0)
 			{
 				var positionY = 0;
 
-				for(var p = 0; p < numPages && p < 2; p++)
+				for(var p = 1; p <= numPages; p++)
 				{	
 					pdf.getPage(p).then(function(page)
 					{	
-						var scale = 3.0;
-						var viewport = page.getViewport(scale);
-						var width = (viewport.viewBox[2] - viewport.viewBox[0]) * scale;
-						var height = (viewport.viewBox[3] - viewport.viewBox[1]) * scale;
+						var scale = 5.0;
+						var pdfViewport = page.getViewport(scale);
+						console.log(pdfViewport);
 
 						var offCanvas = document.createElement("canvas");
-						offCanvas.width = width;
-						offCanvas.height = height;
+						offCanvas.width = pdfViewport.width;
+						offCanvas.height = pdfViewport.height;
 						var offContext = offCanvas.getContext("2d");
 
 						page.render(
 						{
 							canvasContext: offContext,
-							viewport: viewport,
+							viewport: pdfViewport,
 							intent: "display",
 							renderInteractiveForms: false,
 							enableWebGL: false,
@@ -113,19 +108,21 @@
 						}).promise.then(function()
 						{				
 							var pdfObject = new Escher.Box();
-							pdfObject.box.min.set(viewport.viewBox[0], viewport.viewBox[1]);
-							pdfObject.box.max.set(viewport.viewBox[2], viewport.viewBox[3]);
+							pdfObject.box.min.set(pdfViewport.offsetX, pdfViewport.offsetY);
+							pdfObject.box.max.set(pdfViewport.width + pdfViewport.offsetX, pdfViewport.height + pdfViewport.offsetY);
 							pdfObject.draggable = true;
+							pdfObject.scale.set(1 / scale, 1 / scale);
 							pdfObject.position.y = positionY;
 							pdfObject.draw = function(context, viewport, canvas)
 							{
-								context.drawImage(offCanvas, 0, 0, width, height, this.box.min.x, this.box.min.y, this.box.max.x - this.box.min.x, this.box.max.y - this.box.min.y);
+								context.drawImage(offCanvas, 0, 0, pdfViewport.width, pdfViewport.height, this.box.min.x, this.box.min.y, this.box.max.x - this.box.min.x, this.box.max.y - this.box.min.y);
 							};
 							group.add(pdfObject);
 
 							Escher.Helpers.boxResizeTool(pdfObject);
 
-							positionY += (viewport.viewBox[3] - viewport.viewBox[1]);
+							// Move bellow other pages
+							positionY += pdfViewport.height / scale;
 						});
 					});
 				}