在我的一个观点中,我想显示一个可以通过 URL 访问的 PDF。无需在浏览器中打开额外的选项卡,也无需下载 PDF(在浏览器外查看)即可完成此操作。它应该在 Ember 应用程序中嵌入可见。
我的想法是:
- 使用 URL 获取 PDF 并使其可供 ember 应用程序访问。
- 使用特殊的“PDF 视图”来显示 PDF。
这可能吗?在 Ember 应用程序中显示嵌入的 PDF 有哪些选项?
显示 PDF 与 ember 并没有真正的关系,因为要查看 PDF,您需要在浏览器中安装一个 PDF 插件(默认情况下大部分安装取决于浏览器)。
也就是说,我可以想象的一个可能的解决方案是创建一个带有 tagName 的自定义 ember 视图iframe
,您在该视图上将src
属性设置为引用 PDF 的链接。
App.PDFView = Ember.View.extend({
tagName: 'iframe',
attributeBindings: ['src', 'width', 'height', 'frameborder'],
src: 'pdffile.pdf',
width: 800,
height: 600,
frameborder: 0
});
我也使用了width
,只是为了方便,您可以在 ember 中轻松控制 的某些height
属性。这是一个工作演示。frameborder
iframe
您还可以使用更详细的内容并使用像http://pdfobject.com/didInsertElement
这样的 js 库,然后在视图的挂钩中对其进行初始化:
App.PDFView = Ember.View.extend({
src: 'pdffile.pdf',
width: 800,
height: 600,
didInsertElement: function() {
new PDFObject({
url: this.get('src'),
width: this.get('width'),
height: this.get('height')}
).embed(this.get('elementId'));
}
});
(没有测试过后者,但你明白了)
然后App.PDFView
像在模板中使用普通的 ember 视图一样使用它。
{{view App.PDFView}}
或者您可以直接在模板中设置src
, width
&height
{{view App.PDFView src="pdffile.pdf" width="600" height="800"}}
希望能帮助到你。