【发布时间】:2013-03-15 02:02:49
【问题描述】:
我正在尝试将图像添加到我的 pdf 文件中。图片位于“WebContent/img/image.png”中。首先我将相对路径保存为字符串,然后将此相对路径转换为真实路径。
String relativeWebPath = "/img/image.png";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
Image image1 = Image.getInstance(absoluteDiskPath);
这个
String absoluteDiskPath = getServletContext().getRealPath("/");
没用。
我在定义相对路径时尝试了一些变体,但无法使它们中的任何一个起作用。当这条线 String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath); 尝试执行时,我总是得到 nullPointerException。我在相对路径或其他方面做错了吗?我不知道这是否相关,但我正在使用 Spring。
@RequestMapping(value = "/exportPhonebook.html", method = RequestMethod.POST)
public void exportPhonebook(Model model, HttpServletResponse response) {
try {
setResponseHeaderPDF(response);
Document document = new Document();
ByteArrayOutputStream baosPDF = new ByteArrayOutputStream();
PdfWriter pdfWriter = null;
pdfWriter = PdfWriter.getInstance(document, baosPDF);
PageNumbersEventHelper events = new PageNumbersEventHelper();
pdfWriter.setPageEvent(events);
document.open();
addMetaData(document);
addTitlePage(document);
String relativeWebPath = "/img/image.png";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
Image image1 = Image.getInstance(absoluteDiskPath);
document.add(image1);
addContent(document);
document.close();
pdfWriter.close();
OutputStream os = response.getOutputStream();
baosPDF.writeTo(os);
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
这就是我在jsp中的使用方式:
<input type="hidden" value="<%=getServletContext().getRealPath("/") %>" name="path">
我将它传递给控制器并将相对路径添加到该路径。
path = path + "img\\image.png";
Image image = Image.getInstance(path);
这很好用。 我不明白为什么这在我的控制器中不起作用。
【问题讨论】:
标签: java spring-mvc itext relative-path realpath