Сгенерируйте pdf, используя массив байтов в react js

#javascript #reactjs #react-native

#javascript #reactjs #react-native

Вопрос:

У меня есть вызов API, который вернет json в качестве ответа.Объект json содержит PDF-байты и xml в виде строки.Как я могу извлечь PDF-байты из ответа в виде большого двоичного объекта и сгенерировать документ.

Ниже приведен мой фрагмент кода, здесь ранее я получал только один ответ от моего API, то есть только байты pdf, и он работал, как ожидалось, но теперь с json он не работает.

  var oReq = new XMLHttpRequest();

  var URLToPDF =
    "http://localhost:8080/downloadPDF";

  oReq.open("GET", URLToPDF, true);
  oReq.responseType = "blob";
  var that = this;
  oReq.onload = function() {
    console.log("Response received",oReq.response);
    const file = new Blob([oReq.response], { type: "application/pdf" });

    fileURL = URL.createObjectURL(file);
 window.open(fileURL, "_blank");
    that.setState({ loaderFlagInvoicePdf: false });
    that.setState({ invoicePDFDisplay: true });
  };

  oReq.send();
  

Может кто-нибудь, пожалуйста, подсказать, как я могу извлечь большой двоичный объект из ответа json?

Комментарии:

1. Вам нужно изменить тип на {type: ‘application/json’} или изменить oReq.responseType на «json». Затем получите байтовый текст из json

2. да, я внес эти изменения, но при экспорте pdf выдается ошибка «Не удается загрузить PDF». Можете ли вы просто помочь мне извлечь байты pdf в виде большого двоичного объекта из ответа JSON, чего в данном случае не происходит

3. закодирован ли текст blob в json base64? если да, вам необходимо декодировать его перед использованием с new Blob()

4. Нет, я декодировал его с помощью java.util.Base64.GetDecoder().decode(новая строка(pdfData.getBytes(), проблема, с которой я сталкиваюсь, заключается в невозможности извлечь PDF-байты из JSON и преобразовать их в PDF