我需要在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获得。
我不确定从哪里开始
答案 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