2014-11-07 2 views
1

div가 높은 차트와 테이블을 모두 가지고 있으며 jspdf를 사용하여 pdf로 변환하려고합니다. canvas.toDataURL을 사용할 때 인덱스 또는 크기가 음수이거나 허용 된 양보다 큽니다.html2canvas 인덱스 또는 크기가 음수이거나 허용 된 값보다 큽니다

어떤 도움을 주셔서 감사합니다

+0

로 설정된 경우에도 몇 군데 검은 배경을 점점 ("2D를 사용 ") .getImageData (15,40,200,200); 그러나 아직도 운이 없다. – Rohan

+0

또한이 코드를 http://plnkr.co/edit/nNSvHL8MZcT6nNKg9CG9에서 구현하려고 시도했습니다. 아직 행운이 없습니다. – Rohan

+0

좋아, 질문에 시도한 것을 추가하면 사람들이 더 잘 도와 줄 수 있습니다. 나는 JS를 모르지만 곧 답변을 얻길 바랍니다. – Hosch250

답변

0

는 아래의 코드를하지만, 배경 색상은 내가 canvas.getContext와 todataurl을 제거하기 위해 노력했다 #FFFFFF

$("#btnSaveAsPDF").click(function() { 
       html2canvas($("#tblSaveAsPdf_canvas"), { 
       onrendered: function (canvas) { 
       var imageData = canvas.toDataURL("image/jpeg"); 
       var image = new Image(); 
       image = Canvas2Image.convertToJPEG(canvas); 
       var doc = new jsPDF(); 
       doc.addImage(imageData, 'JPEG', 12, 10); 
       var croppingYPosition = 1095; 
       count = (image.height)/1095; 

       for (var i =1; i < count; i++) { 
         doc.addPage(); 
         var sourceX = 0; 
         var sourceY = croppingYPosition; 
         var sourceWidth = image.width; 
         var sourceHeight = 1095; 
         var destWidth = sourceWidth; 
         var destHeight = sourceHeight; 
         var destX = 0; 
         var destY = 0; 
         var canvas1 = document.createElement('canvas'); 
         canvas1.setAttribute('height', destHeight); 
         canvas1.setAttribute('width', destWidth);       
         var ctx = canvas1.getContext("2d"); 
         ctx.drawImage(image, sourceX, 
              sourceY, 
              sourceWidth, 
              sourceHeight, 
              destX, 
              destY, 
              destWidth, 
              destHeight); 
         var image2 = new Image(); 
         image2 = Canvas2Image.convertToJPEG(canvas1); 
         image2Data = image2.src; 
         doc.addImage(image2Data, 'JPEG', 12, 10); 
         croppingYPosition += destHeight;    
        }     
       var d = new Date().toISOString().slice(0, 19).replace(/-/g, ""); 
       filename = 'report_' + d + '.pdf'; 
       doc.save(filename); 
      } 

     }); 
    }); 
관련 문제