PDFObject не отображается правильно в браузере - PullRequest
1 голос
/ 11 декабря 2019

Я пытаюсь сделать PDF-файл для вставки с помощью PDFObject. В бэкэнде я отправляю pdf-файл следующим образом:

fs.readFile(uploadFileFd, function (err,data){
    res.contentType("application/pdf");
    res.send(data);
 });

После этого я получаю ответный текст в следующем виде:

$.get("/loadDocument",function(data){
    PDFObject.embed(data,"#test");
  });

И я получаю следующий результат изображение с рендером в браузере pdf

Знаете, как это исправить?

1 Ответ

0 голосов
/ 11 декабря 2019

Похоже, он идет в двоичном формате, поэтому вам нужно снова преобразовать его в pdf для рендеринга в браузере.

var request = new XMLHttpRequest();
request.open("GET", "/path/to/pdf", true); 
request.responseType = "blob";
request.onload = function (e) {
    if (this.status === 200) {
        // `blob` response
        console.log(this.response);
        // create `objectURL` of `this.response` : `.pdf` as `Blob`
        var file = window.URL.createObjectURL(this.response);
        var a = document.createElement("a");
        a.href = file;
        a.download = this.response.name || "detailPDF";
        document.body.appendChild(a);
        a.click();
        // remove `a` following `Save As` dialog, 
        // `window` regains `focus`
        window.onfocus = function () {                     
          document.body.removeChild(a)
        }
    };
};
request.send();

Пожалуйста, попробуйте выше.

...