加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在AngularJS中处理来自Web API的PDF文件?

发布时间:2020-12-17 07:21:26 所属栏目:安全 来源:网络整理
导读:我有这个Web API post方法来生成PDF: [HttpPost][Route("api/pdf")]public HttpResponseMessage Post(CustomType type){ StreamContent pdfContent = PdfGenerator.GeneratePdf(); HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.
我有这个Web API post方法来生成PDF:
[HttpPost]
[Route("api/pdf")]
public HttpResponseMessage Post(CustomType type)
{
    StreamContent pdfContent = PdfGenerator.GeneratePdf();

    HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
    response.Content = pdfContent;
    response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
    response.Content.Headers.ContentDisposition.FileName = "PDFName.pdf"

    return response;
}

在AngularJS中我想得到这样的PDF文件:

$http.post("api/pdf",object).then(function (results) {
    var data = results.data;

    //TODO: got PDF,how to handle?

},function (results) {
    console.log(results);
});

但是我应该如何处理AngularJS中的PDF数据?在iPad上,我希望PDF能够打开,但如果文件被下载或只是在桌面上打开并不重要.

EDIT1:

使用SaveAS JS library我可以在桌面上制作出可行的解决方案:

$http.post("api/pdf",object).then(function (results) {
    var data = results.data;

    var file = new Blob([data],{ type: 'application/pdf' });
    saveAs(file,"test.pdf");

},function (results) {
    console.log(results);
});

该文件正在直接下载到我的桌??面,但出于某种原因,此解决方案在iOS中无法正常工作.什么都没发生.见JSFiddle.

有没有其他方法可以在我的iPad上显示PDF而无需将文件嵌入我的网站?

您可能很清楚,ios设备不允许您将文件下载并存储到内存/磁盘,就像在台式机/笔记本电脑上一样.

下载的项目必须由应用程序打开

由于您已经在网站上工作,浏览器似乎是一个自然的候选人.

我猜测你不希望将pdf文件嵌入你的网站,另一种方法是在新的浏览器选项卡中打开pdf.

如果您可以接受这样的解决方案,请查看此SO帖子:

window.open() in an iPad

提供的解决方案确实有效,但只有在配置Safari时才能阻止弹出窗口.

我担心这可能是你唯一可行的选择. Having the iPad store the pdf into apps like iBooks will not work,根据这篇文章.它不能用javaScript自动化.

据我所知,在这种情况下没有完美的解决方案,只是一个最可接受的解决方案:如果检测到ios,则在浏览器的新选项卡中打开pdf.

如果您对此妥协感兴趣,并遇到使用window.open()实现它的问题,我将很乐意提供帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读