2016-12-09 2 views
1

Я делаю сервер для веб-приложения, и я использую класс html2pdf (http://html2pdf.fr/) для создания PDF-файла с существующими данными из моей базы данных.Создайте и скачайте PDF с помощью html2pdf с AngularJS

Мой сторонний разработчик говорит, что он не может использовать этот «поток», который я поставляю с API, используя угловые. Я использую метод -> Output ('D') для предоставления файла.

Кто-нибудь знает, как использовать этот класс для загрузки PDF-файлов с помощью angularjs?

ответ

1

Чтобы загрузить данные в файл PDF, используйте responseType: "arraybuffer":

var config = { responseType: "arraybuffer" }; 

    vm.fetch = function() { 
    $http.get(url, config).then(function(response) { 
     vm.result = "SUCCESS"; 
     vm.length = response.data.byteLength + " bytes"; 
     var blob = new Blob([response.data], 
          {type: "application/pdf"}); 
     vm.data = URL.createObjectURL(blob); 
    }).catch(function(response) { 
     vm.result = "ERROR "+response.status; 
    }); 
    }; 
}); 

Преобразование данных в URL объекта Blob и использовать кнопку загрузки:

<a download="{{name}}.pdf" xd-href="data"> 
     <button>Download data</button> 
    </a> 

xd-href Директива

app.module("myApp").directive("xdHref", function() { 
    return function linkFn (scope, elem, attrs) { 
    scope.$watch(attrs.xdHref, function(newVal) { 
     newVal && elem.attr("href", newVal); 
    }); 
    }; 
}); 

DEMO on PLNKR загрузок http://demo.html2pdf.fr/examples/exemple07.php

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