PDF.JS: рендеринг PDF с использованием ArrayBuffer или Blob вместо URL

Я знаю подобный вопрос к этому:Pdf.js: рендеринг файла PDF с использованием исходного файла base64 вместо URL, На этот вопрос отлично ответилиCodetoffel но мой вопрос другой в том, что мой PDF извлекается через вызов RESTful моей реализации Web API. Позволь мне объяснить...

Во-первых, вот основной способ использования PDF.JS для открытия PDF-файла через URL:

PDFJS.getDocument("/api/path/to/my.pdf").then(function (pdf) {
  pdf.getPage(1).then(function (page) {
    var scale = 1;
    var viewport = page.getViewport(scale);
    var canvas = document.getElementById('the-canvas');
    var context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;
    page.render({canvasContext: context, viewport: viewport});
  });
});

Это прекрасно работает, но я использую Angular и его$resource сервис для запроса PDF через мой RESTful Web API. Я знаю, что PDF.JS позволяет мне заменить передачу URL-адреса в виде строки в методе PDFJS.getDocument (выше) наDocumentInitParams объект, который определенВот, Использование объекта DocumentInitParams работает следующим образом:

var docInitParams = {
    url: "/api/path/to/my.pdf",
    httpHeaders: getSecurityHeaders(), //as needed
    withCredentials: true
};
PDFJS.getDocument(docInitParams).then(function (pdf) {
    ...
});

Это также работает, но работает вокруг моего Angular$resource потребовав, чтобы я создал URL API. Но это нормально, потому что PDFJS позволяет мне передавать данные PDF напрямую, а не URL-адрес PDF, следующим образом:

var myPdf = myService.$getPdf({ Id: 123 });

//It's an Angular $resource, so there is a promise to be fulfilled...
myPdf.$promise.then(function() {
    var docInitParams = {
        data: myPdf
    };
    PDFJS.getDocument(docInitParams).then(function (pdf) {
        ...
    });
});

Это тот, кого я не могу заставить работать. Я могу сказатьmyService.$gtPdf метод для возврата данных в видеblob или какarraybuffer но ни один не работает. Я пытался преобразовать возвращенные данные массива буфера вUint8Array тоже, но безрезультатно.

Я не уверен, что еще можно попробовать и мог бы действительно использовать чаевые.

Как получить данные, возвращенные из моей службы, для работы с PDFJS?

Заранее спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос