如何在reactjs的新标签页中打开pdf?

时间:2017-01-10 05:43:11

标签: arrays reactjs asp.net-web-api react-redux

  

我们从webapi获取pdf文档保存在数据库中   返回为字节数组,现在从UI我必须在新选项卡中打开pdf   浏览器,用户应该能够下载pdf。我怎么能够   达到打开和下载pdf文档的要求?

3 个答案:

答案 0 :(得分:2)

您可以使用以下内容:

<a href='/api/v1/print/example.pdf' target='_blank'>

答案 1 :(得分:1)

以下代码对我有用

try {
    await axios
      .get(uri.ApiBaseUrl + "AccountReport/GetTrialBalancePdfReport", {
        responseType: "blob",
        params: {
          ...searchObject,
        },
      })
      .then((response) => {
        //Create a Blob from the PDF Stream
        const file = new Blob([response.data], { type: "application/pdf" });
        //Build a URL from the file
        const fileURL = URL.createObjectURL(file);
        //Open the URL on new Window
         const pdfWindow = window.open();
         pdfWindow.location.href = fileURL;            
      })
      .catch((error) => {
        console.log(error);
      });
  } catch (error) {
    return { error };
  }

答案 2 :(得分:1)

2020年的解决方案

   import Pdf from '../Documents/Document.pdf';

   <a href={Pdf} without rel="noopener noreferrer" target="_blank">
      <button trailingIcon="picture_as_pdf" label="Resume">
        PDF
      </button>
   </a>