PDFBox не очищает tmp файлы после метода convertToImage - PullRequest
0 голосов
/ 10 октября 2018

Я использую функцию 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
  }

Пожалуйста, помогите мне решить эту проблему.

...