在Aurelia视图中显示PDF内容

时间:2016-05-26 18:42:55

标签: pdf aurelia pdf.js

我需要在Aurelia View中显示一些PDF文件。 直接链接无法使用这些文件 我有一个返回字节数组的API函数。

在ASP.Net中,我可以控制响应对象的标题和内容类型,并且可以将内容写入响应中。

我无法弄清楚如何在奥里利亚做到这一点。 有什么建议吗?

编辑: 我正在尝试按照建议使用pdf.js。 Aurelia注射失败。

import {inject} from "aurelia-framework";
import {HttpClient} from "aurelia-fetch-client";
import {PDF} from "pdfjs-dist"

@inject(Router, HttpClient, PDF)
export class PDFView {

    constructor(router, http, pdf) {

        this.router = router;
        this.http = http;
        this.pdf = pdf;

    }

控制台显示以下错误:

Inner Error:
Message: key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?
Inner Error Stack:
Error: key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?
    at Container.get (http://localhost:65397/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.2.3/aurelia-dependency-injection.js:480:15)
    at Object.invoke (http://localhost:65397/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.2.3/aurelia-dependency-injection.js:341:81)
    at InvocationHandler.invoke (http://localhost:65397/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.2.3/aurelia-dependency-injection.js:300:168)
    at Container.invoke (http://localhost:65397/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.2.3/aurelia-dependency-injection.js:564:25)
    at StrategyResolver.get (http://localhost:65397/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.2.3/aurelia-dependency-injection.js:127:37)
    at Container.get (http://localhost:65397/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.2.3/aurelia-dependency-injection.js:501:23)
    at eval (http://localhost:65397/jspm_packages/npm/aurelia-templating@1.0.0-beta.1.2.7/aurelia-templating.js:3925:73)
End Inner Error Stack
------------------------------------------------

import语句必须失败,但pdfjs似乎加载成功,因为我在页面加载时收到pdfjs-dist@1.5.294.js和pdfjs的状态200。

我找不到Aurelia / pdfjs应用程序的样本。 重复:我需要嵌入流,因为PDF不能通过HTTP获得。

我不确定从哪里开始

1 个答案:

答案 0 :(得分:1)

据我所知,Aurelia没有特别关于加载pdf文件的内容。

您可以使用pdf.js。它有方法 getDocument ,它接受存储在字节数组中的二进制数据。

然后,您可以在视图中放置画布,在视图激活期间加载pdf数据,并在附加html后使用pdf.js将页面渲染到其中。例如,toddmo针对此帖子的代码检查答案:Pdf.js and viewer.js. Pass a stream or blob to the viewer