Skip to content

Instantly share code, notes, and snippets.

@enorrmann
Created May 9, 2018 18:24
Show Gist options
  • Save enorrmann/3d490735c683ea502cc621b729bc02e3 to your computer and use it in GitHub Desktop.
Save enorrmann/3d490735c683ea502cc621b729bc02e3 to your computer and use it in GitHub Desktop.
filtro en angular para pdfs
// este metodo va en alguna clase de configuracion de la app, por ejemplo app.js
app.factory('pdfResource', ['$resource', function ($resource) {
return function (url, reportName) {
var actions = {
'getpdf': {
method: 'GET',
headers: {
accept: 'application/pdf,application/json',
'report-name': reportName
},
responseType: 'arraybuffer',
transformResponse: function (data) {
var pdf;
if (data) {
pdf = new Blob([data], {
type: 'application/pdf'
});
}
return {
pdf: pdf
};
}
}
};
return $resource(url, {}, actions, {});
};
}]);
// entonces despues podemos inyectar en los servicios, por ejemplo
app.service('socioeducativoSevice', ['pdfResource', function (pdfResource) {
// y aca lo usamos
var getPdf = function (idIgaList) {
var url = pdfResource('api/alumno/socioeducativo', 'SocioEducativo');
return url.getpdf(
{
iga: idIgaList
}).$promise;
};
}
/// y despues usamos el service en nuestro controlador, que va a tener la funcion imprimirPdf(), o algo asi, por ejemplo
$scope.getPdf = function () {
// ids son una lista de ids tipo numero
socioeducativoSevice.getPdf(ids).then(function (informe) { // este informe es datos binario en pdf
FileSaver.saveAs(informe.pdf, "informe.pdf"); // es importante poner el punto pdf en el primer parametro, y lo que esta entre comillas puede ser cualquier cosa
});
};
// FileSaver es una libreria js externa, que se agrega en 'ngFileSaver' en app.js
y hay que guardar el js en las libs
https://raw.githubusercontent.com/eligrey/FileSaver.js/master/src/FileSaver.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment