2016-05-26 2 views
2

У меня есть файлы PDF, которые мне нужно отображать в Aurelia View. Файлы не доступны по прямой ссылке У меня есть функция API, которая возвращает массив байтов.Показать содержимое PDF в Aurelia View

В ASP.Net у меня есть некоторый контроль над заголовками и типом контента объекта ответа, и он может BinaryWrite содержимое в ответ.

Я не могу понять, как это сделать в Аурелии. Любые предложения?

Редактировать: Я пытаюсь использовать pdf.js, как было предложено. Инъекция в Аурелии терпит неудачу.

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/[email protected]/aurelia-dependency-injection.js:480:15) 
    at Object.invoke (http://localhost:65397/jspm_packages/npm/[email protected]/aurelia-dependency-injection.js:341:81) 
    at InvocationHandler.invoke (http://localhost:65397/jspm_packages/npm/[email protected]/aurelia-dependency-injection.js:300:168) 
    at Container.invoke (http://localhost:65397/jspm_packages/npm/[email protected]/aurelia-dependency-injection.js:564:25) 
    at StrategyResolver.get (http://localhost:65397/jspm_packages/npm/[email protected]/aurelia-dependency-injection.js:127:37) 
    at Container.get (http://localhost:65397/jspm_packages/npm/[email protected]/aurelia-dependency-injection.js:501:23) 
    at eval (http://localhost:65397/jspm_packages/npm/[email protected]/aurelia-templating.js:3925:73) 
End Inner Error Stack 
------------------------------------------------ 

Оператор импорта должен быть провал, но pdfjs, кажется, успешно загружаться я получаю статус 200 для обоих [email protected] и pdfjs, когда страница загружается.

Я не могу найти образцы приложений Aurelia/pdfjs. Повторение: мне нужно встроить поток, поскольку PDF недоступен через HTTP.

Я не уверен, куда идти отсюда

+0

Я также изо всех сил пытаюсь найти какие-либо примеры. Вы когда-нибудь смогли найти подходящий пример? – DeVil

ответ

1

Насколько я знаю, нет ничего Aurelia конкретного о загрузке файлов в формате PDF.

Вы можете использовать pdf.js. Он имеет метод getDocument, который принимает двоичные данные, хранящиеся в массиве байтов.

Затем вы можете разместить холст внутри своего вида, загрузить данные в формате PDF во время просмотра и вставить страницы в него с помощью pdf.js после присоединения html. Например, ответ проверки кода на toddmo за этот пост: Pdf.js and viewer.js. Pass a stream or blob to the viewer

Смежные вопросы