Я хочу разрешить пользователю загружать PDF-файл, созданный в iText.
Ожидаемый результат - пользователь может загрузить PDF-файл в свой выбранный каталог. Фактическим результатом является то, что файл не будет загружен.
Я создаю PDF-файл с помощью iText и передаю результат обратно в свой ajax вызов, чтобы пользователь мог загрузить файл. У меня base64. Я проверил, что он действителен, используя https://base64.guru/converter/decode/pdf. Это правильно показывает pdf. Однако я не могу получить результат для загрузки в ajax ".done".
Я пробовал использовать:
byte[] decoder = Base64.getDecoder().decode(b64);
Перед тем, как передать его обратно; однако я получаю сообщение об ошибке в ".getDecoder ()" из "Метод getDecoder () не определен для типа Base64".
Код java:
resourceImage = MySQLConnection.recipePDF(accountID, crID, servings, servingSize);
String imageDataString = Base64Encode2.encode(resourceImage);
System.out.println("imageDataString: " + imageDataString);
if (resourceImage == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No recipe pdf.");
} else {
String json = new Gson().toJson(imageDataString);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
Код javascript / ajax на сайте:
.done(function(responseJson1a){
dataType: "json";
alert(JSON.stringify(responseJson1a));
download(responseJson1a, "resourcefile.pdf", "application/pdf");
});