Как создать файл из буфера с помощью JavaScript? - PullRequest
0 голосов
/ 06 ноября 2018

Мой API возвращает строку, подобную этой:

%PDF-1.4
%����
1 0 obj
<</Creator (Chromium)
/Producer (Skia/PDF m71)
/CreationDate (D:20181106140055+00'00')
/ModDate (D:20181106140055+00'00')>>
endobj
2 0 obj
<</Filter /FlateDecode
/Length 1728>> stream
x��ZY�#7~����@����gg���$م��������R�=n_�����:����<ʺB�
��t��QŔ��?�����s�SQ&ư���J����_��X�����8O���0�~}]��_w�^���?Ҝ�[���}�)�̢�Q�X��z)&/)8T�R@I!�����d%  ��>!&(�c�'=�K�zb"�&��+� �3��h���W���"Ĉ��5й�n0
:�-�R4C&.����2  ����,)�/4Iq�\���؊���b���D��h��o�xh&FLLl�#@31b�b
"�Xt�s��
-c�<�
�7V��3�۷�p_�nt�(���3�>�M�2�Bws�䈅���!��:)N�4��.RH��B��
!Ni,B()�(�E�,���!m���K��� W�)X.kY� �D"9�Ds�\�s�� u�G�m3ȓ�����

Он создал буфер в моем узле api и отправил его в мое приложение (vuejs). Я пытался сделать это (в моем приложении):

var link = document.createElement("a");
link.setAttribute("target","_blank");
if(Blob !== undefined) {
  var blob = new Blob([res.data],{type:"application/pdf;charset=utf-8;"});
  link.setAttribute("href", URL.createObjectURL(blob));
} else {                         
  link.setAttribute("href","data:application/pdf," + 
  encodeURIComponent(res.data));
}
link.setAttribute("download",'filename.pdf');
document.body.appendChild(link);
link.click();
document.body.removeChild(link);

но я получил пустой PDF-файл.

Заголовки моего API:

let buffer = await avaliacaoPDF.gerarPDFAvaliacao(register);        
res.status(200).header('Content-type', 'application/pdf').send(buffer);

Что я могу сделать, чтобы создать этот файл?

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