【问题标题】:How do I display a PDF that is getting returned from an api?如何显示从 api 返回的 PDF?
【发布时间】:2021-02-13 03:40:12
【问题描述】:

我正在开发一个 JavaScript/React 项目,并且我有一个 GET 端点,当我点击它时会返回一个 PDF。我能够成功地达到终点并获得 200 次成功,但我得到的响应看起来类似于......

%PDF-1.4 1 0 obj

有谁知道我可以如何在单独的窗口或弹出窗口中将其转换为 PDF 文件?我找到的所有解决方案都要求我有一个 pdf url 或文件来执行此操作。我对此完全陌生,非常感谢您的帮助。

【问题讨论】:

  • 您强制浏览器将二进制信息显示为文本,很可能是由于错误的内容类型标题。请参阅 this answer 或使用像 pdf.js by mozilla 这样的 js 插件(即使浏览器没有 inbuit 查看器也可以使用)。

标签: javascript reactjs pdf


【解决方案1】:

如果您将返回内容类型设置为“application/pdf”,我认为您的浏览器应该正确显示它。如何设置内容类型取决于您使用的服务器端。

【讨论】:

    【解决方案2】:

    如果你也开发API,设置Content-Disposition headerContent-Type hader就完美了。

    也不要使用调用 fetch 到 url 的按钮,只使用一个链接,一个真正的不是反应路由器链接

    【讨论】:

      【解决方案3】:

      我认为您应该尝试将您的 PDF 文件从端点作为 base64 URI 发送,这样您就可以下载该文件或在浏览器中打开它,您的 API 应该响应以下链接:

      echo "data:application/pdf;base64,".base64_encode($YourFileHere);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多