Java 如何从多部分文件中获取文件,以便可以创建PDImageXObject?
我正在使用ApachePDFBox从图像创建pdf。我从表单提交中获得一个图像。我将其转换为BuffereImage。我需要从此图像创建PDImageXObject。是否有方法将此文件转换为文件对象,以便可以使用PDImageXObject.createFromFileByContent方法Java 如何从多部分文件中获取文件,以便可以创建PDImageXObject?,java,grails,pdfbox,Java,Grails,Pdfbox,我正在使用ApachePDFBox从图像创建pdf。我从表单提交中获得一个图像。我将其转换为BuffereImage。我需要从此图像创建PDImageXObject。是否有方法将此文件转换为文件对象,以便可以使用PDImageXObject.createFromFileByContent方法 def f = request.getFile('file') InputStream inputStream = f.getInputStream() BufferedImage bimg =
def f = request.getFile('file')
InputStream inputStream = f.getInputStream()
BufferedImage bimg = ImageIO.read(inputStream);
float width = bimg.getWidth();
float height = bimg.getHeight();
我非常感谢您的见解。如果您坚持使用本地文件(而不是更新您的PDFBox版本,这将是最佳做法),以下是一些代码:
Path tempPath = Files.createTempFile("pdfbox", null);
Files.copy(inputStream, tempPath, StandardCopyOption.REPLACE_EXISTING);
System.out.println(tempPath);
// do stuff with that file
// delete when done
Files.delete(tempPath);
要将路径对象转换为文件对象,请使用
tempPath.toFile()
这是否回答了您的问题?i、 e.将流转换为字节数组。无需调用ImageIO.read()来转换为BuffereImage。你需要2.0.21。对不起,那不行。我使用的是稍旧一点的版本,因此PDImageXObject.createFromByteArray方法不可用。