javascript - 将 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���� �&�_���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��[�<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
解决方案
参考这个,一旦在回调函数中解决了承诺,就实现这个,将 [json] 更改为回调函数返回的数据。
推荐阅读
- reactjs - 在生产模式下,反应头盔异步不起作用,反应头盔异步如何工作?
- cairo - 如何通过 Image Magick 在 Cairo Graphics 中包含图像?
- javascript - 如何通过单击按钮将特定字符输入到 TextField
- swift - Swift String 罕见崩溃
- ssh - SSH 在 Windows 10 中不接受密码:read_passphrase:无法打开 /dev/tty:没有这样的文件或目录
- r - 随机参数线性回归是否有 R 函数?
- javascript - 如何从自定义时间对象生成 momentjs 格式
- mysql - 使用两个存储过程——一个获取,一个更新;但是尽管记录很大,但更新的行数 = 0,我的代码有什么问题吗?
- reactjs - React - Firebase,检测配置文件数据更新以重新加载组件
- php - PHP - 如何复制一段 URL 并将其处理成一个按钮?(语言代码 - ?lang=xx-