2012-12-25 36 views
4

我初学者到HTML5。如何使画布可滚动以包含多页扫描PDF?

我用Canvas借鉴了它,我想获得以下能力:


  1. 允许画布是可扩展的,所以如果在拍摄时设置的scanned pdfs,我可以显示所有图像(pdf页)。

  2. 我想通过在画布上的(撤消&重做)功能。

+1

这是对HTML8 :)请求。可能需要两个画布,一个隐藏,保留以前的状态并进行撤消,并用于展开,以新的尺寸制作一个新的画布,并将其复制到旧尺寸的旧画布。换句话说,我不认为这个功能存在 - 你需要创建它。 – Aristos

+1

撤消和重做是可能的,虽然我不太清楚如何实现它。退房[deviantArt穆罗](http://muro.deviantart.com/)。 – Passerby

回答

2

我使用toDataUrl方法将undo_array存储画布状态之前做过这样的:

var undo_array = []; 

所以任何改变之前,你做的事:

undo_array.push(myCanvas.toDataURL("image/png")); 

现在,当撤销按钮被按下,只是恢复以前的图片:

var myImg = new Image(); 
oImg.onload = function() { 
    var ctx = document.getElementById("canvasID").getContext("2d");  
    ctx.drawImage(myImg, 0, 0); 
} 
myImg.src = undo_array.pop(); 

但如果你也改变我们抓住画布,我想你可以使用另一个阵列来存储/恢复抢占变化。

+0

错字:'myImg'而不是'oImg'。 – KillBill