如何使用Javascript在网页的iframe中预览从外部API生成的PDF文件?
How can I preview a PDF file generated from an external API in an iframe of my webpage, using Javascript?
我一直试图在网上找到一个例子,其中PDF由外部API返回(响应中发送的文件,内容类型设置为application/PDF的响应头),然后该文件在JS中处理并显示在嵌入的div/iframe中。
我一直在试图找到一个使用pdf .js或PDFObject的例子,但我能找到使用服务器上托管的pdf文件的直接路径。我需要在客户端执行此操作,并且只能使用API检索该文件。
我很抱歉,如果这已经回应了某处,但我找不到任何符合我的要求,我希望我描述得足够好!
//Pseudo code of what I'd like to achieve
$.get('http.service.com/getPDF', function(data) {
var pdfString = changeDataToPDFString(data);
magicLibrary.previewPDF(pdfString, $('#container_pdf'));
}
对于那些偶然发现这一点的人,这里是我使用RequireJS和PDFJS的非常具体的解决方案。
changeDataToPDFString: function(file) {
var base64ToUint8Array = function(base64) {
var raw = atob(base64),
uint8Array = new Uint8Array(raw.length);
for (var i = 0; i < raw.length; i++) {
uint8Array[i] = raw.charCodeAt(i);
}
return uint8Array;
},
base64Data = file.split(',')[1],
pdfData = base64ToUint8Array(base64Data);
return pdfData;
},
renderPDF: function(file, container) {
var self = this,
pdfData = self.changeDataToPDFString(file);
require(['pdfjs-dist/build/pdf'], function(app){
var iframe;
if(container.find('iframe').length) {
iframe = container.find('iframe')[0];
iframe.contentWindow.PDFViewerApplication.open(pdfData);
}
else {
iframe = $('<iframe src="js/lib/pdfjs/web/viewer.html" style="width: 100%; height: 700px;" allowfullscreen="" webkitallowfullscreen=""></iframe>')[0];
iframe.onload = function() {
iframe.contentWindow.PDFViewerApplication.open(pdfData);
}
container.append(iframe);
}
});
}
相关文章:
- Firebase2(Firebase.google.com)推送通知-从外部管理
- 如何从外部页面激活非默认引导选项卡
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何从外部url寻址数据
- 从外部函数渲染后更改ReactJS类的状态
- 使用ajax长轮询从外部API更新页面上的响应
- 如何从外部api获取数据
- 从开放的外部API-visual studio-AJAX检索值
- 如何使用Node.js显示从http请求到外部API的图像
- Meteor:从服务器调用相互依赖的外部 API 并将数据转储到 db
- 如何将特定信息从外部 API 获取到我的 ng-repeat
- 如何将二进制文件从 Meteor 上传到外部 API
- Soundcloud API - 使用 SC.recordupload 从外部 URL 上传曲目图稿的图像
- Google Apps 脚本从外部 API 获取响应
- 谷歌地图api v3-从外部链接关闭信息窗口
- METEOR:从外部api存储数据失败
- 如果从Parse Cloud调用外部api,原始主机名是什么?
- 如何使用Javascript在网页的iframe中预览从外部API生成的PDF文件?
- 从外部API获取数据时出错
- Rails-如何将从外部API检索到的前端javascript数据发送到控制器