我使用PDFBox函数(例如convertToImage),一切正常,但是PDFBox在转换后不会清除临时文件。在我的系统中,临时文件“ / tmp”的目录中有很多文件,例如+ JF132216249314633400.tmp,它们仅在重新启动我的应用程序后才被删除,但是当应用程序继续工作时,临时文件不会被删除。>
PDFBox版本-1.8.15
当我使用这个
page.convertToImage(BufferedImage.TYPE_INT_RGB, 300)
PDFbox库创建tmp文件,例如“ +〜JF132216249314633400.tmp”
我的方法:
def splitPdfToImages(file: File): List[File] = {
val document = PDDocument.load(file)
val pages = (for (i <- 0 until document.getNumberOfPages)
yield document.getDocumentCatalog.getAllPages.get(i).asInstanceOf[PDPage]).toList
val imgFiles = pages.zipWithIndex.map { case (page, i) =>
val baos = IOUtils.createBAOS
ImageIO.write(page.convertToImage(BufferedImage.TYPE_INT_RGB, 300), "jpg", baos)
val bais = IOUtils.createBAIS(baos.toByteArray)
try {
val img = Image.fromStream(bais)
implicit val writer = JpegWriter().withCompression(100)
val tmpFile = File.createTempFile(s"""${file.getName.split("\\.").head}_$i""", file.getName.split("\\.").last)
img.output(tmpFile)
} finally {
baos.close()
bais.close()
}
}
document.close()
imgFiles
}
请帮助我解决此问题。