我有一个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();
}
}
...
对于UPS标签,它可以正常工作。当我的代码运行base-64编码的UPS标签时,该标签将显示在浏览器中。但是对于FedEx标签,我在浏览器中看到一个错误模态,显示为“无法加载PDF文档错误”。请在下面查看标签的图片(从在线PDF转换器打印)和错误模式。
这让我无处可去,因为控制台中根本没有错误,异常或堆栈跟踪。
如何获取此代码以在浏览器中显示FedEx标签的PDF图像?