2017-02-21 5 views
0

Я использую ITextSharp и html2canvas для добавления бинарных изображений поколения и PDF.Добавление нескольких бинарных изображений ITextSharp с использованием массива байтов вызывает IndexOutOfRangeException

Ниже приведен фрагмент моего кода Codebehind.

var overallResultsBase64string = hdnOverallResults.Value.Replace("data:image/png;base64,", ""); 
var appServerCapacityBase64string = hdnAppServerCapacity.Value.Replace("data:image/png;base64,", ""); 
var appPerformanceBase64string = hdnAppPerformance.Value.Replace("data:image/png;base64,", ""); 
var dbServerCapacityBase64string = hdnDBServerCapacity.Value.Replace("data:image/png;base64,", ""); 
var dbPerformanceBase64string = hdnDBPerformance.Value.Replace("data:image/png;base64,", ""); 

iTextSharp.text.Image overallResultsImg, appServerCapacityImg, appPerformanceImg 
    , dbServerCapacityImg, dbPerformanceImg; 

byte[] overallResultsBytes = Convert.FromBase64String(overallResultsBase64string); 
overallResultsImg = iTextSharp.text.Image.GetInstance(overallResultsBytes); 
byte[] appServerCapacityBytes = Convert.FromBase64String(appServerCapacityBase64string); 
appServerCapacityImg = iTextSharp.text.Image.GetInstance(appServerCapacityBytes); 
byte[] appPerformanceBytes = Convert.FromBase64String(appPerformanceBase64string); 
appPerformanceImg = iTextSharp.text.Image.GetInstance(appPerformanceBytes); 
byte[] dbServerCapacityBytes = Convert.FromBase64String(dbServerCapacityBase64string); 
dbServerCapacityImg = iTextSharp.text.Image.GetInstance(dbServerCapacityBytes); 
byte[] dbPerformanceBytes = Convert.FromBase64String(dbPerformanceBase64string); 
dbPerformanceImg = iTextSharp.text.Image.GetInstance(dbPerformanceBytes); 

document.Add(overallResultsImg); 
document.Add(new Paragraph("OVERALL APPLICATION PERFORMANCE")); 
document.Add(appPerformanceImg); 
document.Add(dbPerformanceImg); 
document.Add(new Paragraph("OVERALL SERVER CAPACITY")); 
document.Add(appServerCapacityImg); 
document.Add(dbServerCapacityImg); 

var appServerCapacityBase64string является NULL, что он бросает IndexOutOfBounds исключение на

byte[] appServerCapacityBytes = Convert.FromBase64String(appServerCapacityBase64string); 
appServerCapacityImg = iTextSharp.text.Image.GetInstance(appServerCapacityBytes); 

Есть ли что-то не так с моей Javascript html2canvas ниже код? Пожалуйста, проверьте.

<script> 
    html2canvas($("#overallResultsDiv"), { 
     onrendered: function (canvas) { 
      // canvas is the final rendered <canvas> element 
      var myImage = canvas.toDataURL("image/png"); 
      document.getElementById("hdnOverallResults").value = myImage; 
     } 
    }); 

    html2canvas($("#appServerCapacityDiv"), { 
     onrendered: function (canvas) { 
      // canvas is the final rendered <canvas> element 
      var myImage = canvas.toDataURL("image/png"); 
      $("#hdnAppServerCapacity").value = myImage; 
     } 
    }); 

    html2canvas($("#appPerformanceDiv"), { 
     onrendered: function (canvas) { 
      // canvas is the final rendered <canvas> element 
      var myImage = canvas.toDataURL("image/png"); 
      document.getElementById("hdnAppPerformance").value = myImage; 
     } 
    }); 

    html2canvas($("#dbServerCapacityDiv"), { 
     onrendered: function (canvas) { 
      // canvas is the final rendered <canvas> element 
      var myImage = canvas.toDataURL("image/png"); 
      document.getElementById("hdnDBServerCapacity").value = myImage; 
     } 
    }); 

    html2canvas($("#dbPerformanceDiv"), { 
     onrendered: function (canvas) { 
      // canvas is the final rendered <canvas> element 
      var myImage = canvas.toDataURL("image/png"); 
      document.getElementById("hdnDBPerformance").value = myImage; 
     } 
    }); 
</script> 

ТОЛЬКО в первые html2canvasуспешно передает base64 string к соответствующему HiddenField в качестве значения и является успешно доступ в CodeBehind. Что не так с моим сценарием, который возвращает 5 HiddenFieldsNULL?

ответ

0

Вы пытались изменить var myImage = canvas.toDataURL("image/png"); на другие названия в свои функции?

Смежные вопросы