Java 如何从多部分文件中获取文件,以便可以创建PDImageXObject?

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 =

我正在使用ApachePDFBox从图像创建pdf。我从表单提交中获得一个图像。我将其转换为BuffereImage。我需要从此图像创建PDImageXObject。是否有方法将此文件转换为文件对象,以便可以使用PDImageXObject.createFromFileByContent方法

 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方法不可用。