首页 > 解决方案 > 将 API 请求中的 PDF 流字节转换为 base64(Javascript *无库!*)

问题描述

我从 AJAX 调用(我将数据发布到)接收 PDF 流数据,我必须将其转换为我可以用来最终在 iFrame 标签内显示 PDF 的东西。我无权访问 API 进行进一步更改,因此无法进行后端修改。我必须在客户端仅使用 Javascript 而不使用 JS 库来解决这个问题。

我研究了几个小时并找到了多种解决方案,但最后,包括 btoa() 方法在内的所有解决方案都不起作用,将其转换为 BLOB 并使用 URL.createObjectURL(blob)...

我什至不知道这些数据是什么。这是一个字节数组吗,因为它看起来不像一个。我不知道还能做什么。

后端具有 'ContentType' 到 'application/pdf' 和 Content = newByteArrayContent(MemoryStream.ToArray()) 用于将 HttpResponseMessage 对象设置为 API 响应。任何帮助将不胜感激!

谢谢大家!

请注意,下面的代码不完整。这只是一个片段。

%PDF-1.4
%����
6 0 obj
<<
/ProcSet [/PDF /ImageC /Text]
/Font
<<
/F10 7 0 R
/F20 9 0 R
/F30 11 0 R
/F40 15 0 R
>>
/XObject<<
/Im1 13 0 R
>>
>>
endobj
13 0 obj
<<
/Type /XObject
/Subtype /Image
/Width 1000
/Height 600
/ColorSpace /DeviceRGB
/Decode [0 1 0 1 0 1]
/BitsPerComponent 8
/SMask 14 0 R
/Length 27501
/Filter [/DCTDecode]
>>
stream
+���צ�j�χ��sV9f���3����  �&amp;�_���d�:Ԕz��F�0㮏UQ��������������Z���
�:3G�C��4��C�}��e����@B��';q��ݨԫ7k�g���J��3�R\,b��(����`�    oU��oBi��%ԚdӍ�2�M�TP����I�S�H���ӎ0!̱�0�Eh�
��;)����|�2{8��/�hɠ�8��_O�9O���:��5���ߞM��܀�5a<����Ū9�WdE��M���1�n���ᖎE`<R��7Ӽԇ3��[�&lt;M�Ё���#zad� |�/NȻ8�AJ�S{ߠQ��[�w���h4���a3�^{�7�i���y���x�E�{�v 8h��,�#�������løh98�,R�����t֤}�tt��5�굱F���t�i��n����;�l��d����M��>D�m���*�uJN`{�����}�T�N�'5�ę�]�d[�ۘ��N����H�|n�|�lm�m��b윃w9
�����ai�o���s
...
...
...
%%EOF

标签: javascriptpdfencodingbase64arraybuffer

解决方案


参考这个,一旦在回调函数中解决了承诺,就实现这个,将 [json] 更改为回调函数返回的数据。

没有链接的 JavaScript blob 文件名


推荐阅读