Java-код и библиотека iText PDF не будут отображать изображение этикетки доставки в браузере - PullRequest
0 голосов
/ 09 октября 2018

У меня есть метод Java, который при вызове отображает изображение pdf этикетки доставки в моем браузере.Для этого я использую iText, а также библиотеки Apache Commons.

import org.jasypt.contrib.org.apache.commons.codec_1_3.binary.Base64;
import com.itextpdf.text.*;

...

public void constructLabel(HttpServletResponse response) {
    Document document = new Document();
    byte[] image = null;
    Image labelImage = null;
    try {
        document.setPageSize(PageSize.LETTER);
        PdfWriter.getInstance(document, response.getOutputStream());
        document.open();
        String base64Label = "a3B4GHHh6Y0m923xKj="; //<--This is longer, but I shortened it for this question
        image = Base64.decodeBase64(base64Label.getBytes());
        labelImage = Image.getInstance(image);
        labelImage.setAlignment(Image.TOP);
        labelImage.scalePercent(new Float("35"));
        document.add(labelImage);
        response.getOutputStream().write(image);
        response.setContentType("application/pdf");
        response.setContentLength(image.length);
        document.close();
    } catch (IOException | DocumentException e) {
        e.printStackTrace();
    }
}
...

Для этикеток ИБП он работает нормально.Когда мой код выполняет метку ИБП в кодировке Base-64, эта метка отображается в браузере.Но для ярлыков FedEx в браузере появляется модальное сообщение об ошибке «Ошибка при загрузке PDF-документа».Пожалуйста, смотрите фотографии этикеток (напечатанных из онлайн-конвертера PDF) и модальности ошибок ниже.

Это оставило меня в неведении, поскольку в консоли вообще нет ошибок, исключений или следов стека.

Как получить этот код для отображения PDF-изображения ярлыка FedEx в браузере?

UPS Label

FedEx Label

Browser Error

...