如何在Angularjs中打印来自WebApi的base64图像?

时间:2015-05-13 07:21:00

标签: javascript c# angularjs web-applications

我要打印一个Image(作为属性嵌入到对象中),从WebApi中检索。

到目前为止,我可以加载图片并在我的页面上完美显示,如下所示:

<img ng-src="data:image/jpeg;base64,{{t.Image}}"/>

但问题是我不知道如何打印此图像?

我已尝试过以下商品,但我遇到了崩溃的Google Chrome页面。

   var img= window.open($scope.t.Image);
   img.print();

问题是如何打印图像?

这是我来自WebApi的对象:

 public class TestImage
    {
        public string Name { get; set; }
        public byte[] Image { get; set; }
    }

以下是我如何调用Get方法:

  $scope.getData = function (val) {
        return $http.get('http://localhost:2740/GetData', {
            params: {
                name: val
            }
        }).then(function (response) {
            $scope.t = response.data;
            return response.data;
        });
    };

******** ********修订

$scope.imgName = "myImage";
$scope.print = function () {

    var printContents = document.getElementById($scope.imgName);
    var popupWin = window.open('', '_blank', 'width=300,height=300');
    popupWin.document.open();
    popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" href="style.css" /></head><body onload="window.print()">' + printContents + '</html>');
    popupWin.document.close();
}



<img id="{{imgName}}" ng-src="data:image/jpeg;base64,{{t.Image}}" />

1 个答案:

答案 0 :(得分:2)

抱歉,我误解了你的问题...

试试这个......你需要为图片标签分配和识别。

$scope.printImg = function(imgName) {
  var printContents = document.getElementById(imgName);
  var popupWin = window.open();
  popupWin.document.open()
  popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" href="style.css" /></head><body onload="window.print()">' + printContents + '</html>');
  popupWin.document.close();
}