Я использую функцию PDFBox, например convertToImage, все работает нормально, но PDFBox не очищает временные файлы после преобразования.В моей системе в каталоге для временных файлов "/ tmp" есть много файлов, таких как us + ~ 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
}
Пожалуйста, помогите мне решить эту проблему.