我一直试图显示pdf文件,我从一个$http.post
响应中得到一个blob。pdf必须使用在应用程序中显示
我遇到了几个堆栈帖子,但不知何故,我的例子似乎不起作用。
JS:
根据这位医生的说法,我继续努力...
$http.post('/postUrlHere',{myParams}).success(function (response) {
var file = new Blob([response], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
$scope.content = fileURL;
});
现在据我所知,
fileURL
创建了一个临时URL,博客可以将其用作参考。
HTML:
<embed src="{{content}}" width="200" height="200"></embed>
我不知道如何处理这个问题,理想的情况是(1)将其分配给一个作用域,(2)“准备/重建”blob到一个pdf(3)使用
我已经研究了一天多了,但不知何故,我似乎不明白这是如何在角度。。。让我们假设pdf查看器库没有选项。
michael的建议对我很有吸引力:)如果你替换$http。用$http发布。得到,记住,那是。get方法接受2个参数而不是3个。。。这就是浪费我时间的地方…;)
控制器:
$http.get('/getdoc/' + $stateParams.id,
{responseType:'arraybuffer'})
.success(function (response) {
var file = new Blob([(response)], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
$scope.content = $sce.trustAsResourceUrl(fileURL);
});
视图:
<object ng-show="content" data="{{content}}" type="application/pdf" style="width: 100%; height: 400px;"></object>
我使用AngularJSV1。3.4
HTML:
<button ng-click="downloadPdf()" class="btn btn-primary">download PDF</button>
JS控制器:
'use strict';
angular.module('xxxxxxxxApp')
.controller('xxxxController', function ($scope, xxxxServicePDF) {
$scope.downloadPdf = function () {
var fileName = "test.pdf";
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
xxxxServicePDF.downloadPdf().then(function (result) {
var file = new Blob([result.data], {type: 'application/pdf'});
var fileURL = window.URL.createObjectURL(file);
a.href = fileURL;
a.download = fileName;
a.click();
});
};
});
JS服务:
angular.module('xxxxxxxxApp')
.factory('xxxxServicePDF', function ($http) {
return {
downloadPdf: function () {
return $http.get('api/downloadPDF', { responseType: 'arraybuffer' }).then(function (response) {
return response;
});
}
};
});
Java REST Web服务-Spring MVC:
@RequestMapping(value = "/downloadPDF", method = RequestMethod.GET, produces = "application/pdf")
public ResponseEntity<byte[]> getPDF() {
FileInputStream fileStream;
try {
fileStream = new FileInputStream(new File("C:\\xxxxx\\xxxxxx\\test.pdf"));
byte[] contents = IOUtils.toByteArray(fileStream);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/pdf"));
String filename = "test.pdf";
headers.setContentDispositionFormData(filename, filename);
ResponseEntity<byte[]> response = new ResponseEntity<byte[]>(contents, headers, HttpStatus.OK);
return response;
} catch (FileNotFoundException e) {
System.err.println(e);
} catch (IOException e) {
System.err.println(e);
}
return null;
}
首先,您需要将响应类型
设置为arrayBuffer
。如果要创建数据Blob,则需要这样做。见Sending_and_Receiving_Binary_Data。所以你的代码会像这样:
$http.post('/postUrlHere',{myParams}, {responseType:'arraybuffer'})
.success(function (response) {
var file = new Blob([response], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
});
下一部分是,您需要使用$sce服务使角信任成为您的url。可以这样做:
$scope.content = $sce.trustAsResourceUrl(fileURL);
不要忘记注入$sce服务。
如果这一切都完成了,你现在可以嵌入你的pdf:
<embed ng-src="{{content}}" style="width:200px;height:200px;"></embed>
问题内容: 我一直在尝试显示我从响应中获取的pdf文件。pdf必须使用例如在应用程序内显示。 我遇到了几个堆栈帖子,但是以某种方式我的示例似乎不起作用。 JS: 根据这份文件,我继续尝试… 现在,据我所知,将创建一个临时URL,该博客可以用作参考。 HTML: 我不确定如何在Angular中处理此问题,理想情况是 (1) 将其分配给作用域, (2) 将blob“准备/重建”到pdf (3) 使用,
问题内容: 我的Angular 1.5应用程序通过REST连接到Java / Tomcat / Spring后端服务器。 一种REST服务会生成PDF并将其发送给客户端。它在DEsktop浏览器(至少是FF,Chrome)上运行良好,但是 无论我使用的浏览器是什么(Chrome,Safari ), 我都无法在iOS(例如ipad)上看到PDF内容。 这是角度代码: Spring / Jax-RS代
问题内容: 我想以特定尺寸在Android应用程序中显示图片。我该怎么做?请指导我?还有一件事,我想从SD卡中获得该图像。所以请帮帮我。 提前致谢。 问题答案: 首先,您需要创建一个imageview。 创建布局参数以在布局上添加imageview 然后获取您的图像路径 在ImageView上设置图像 获取您要添加的布局 将视图添加到布局
我正在构建一个使用jBoss jBPM作为工作流引擎的Web应用程序。 在管理部分,我建立了上传的功能。bpmn工作流文件导入系统。此时,系统将对其进行处理,并向用户显示工作流的不同工作项、参数和顺序流。 我想在此屏幕上显示进程本身的图像。是否有方法使用的BPMNDiagram属性。要生成此映像的bpmn文件?
问题内容: 我一直在从事一个更像框架的项目,并且可以安装几个应用程序/模块。像基本的应用商店或google.play商店一样看到它。这是一个Intranet应用程序,所有模块都可以添加到您的用户帐户中。 该框架已经在开发中,但是我现在正在围绕应用程序/模块的想法。(链接到开发中的概念证明,可以在这里找到) 一个应用程序应该是独立的,并且不能突然包含框架中的脚本,这可以通过在单独的模块中进行结构化来
我想在我的android react本机应用程序的图像标签中通过URL显示一个简单的gif,但当我启动它时,不会显示任何图像。文档中提供的代码仅适用于iOS,不适用于android: 这里有一个类似的问题,但正如前面所说,这只适用于iOS:如何在React Native中显示动画gif 关于此提交,它应该可以工作:https://github.com/facebook/react-native/c