PDFBox在convertToImage方法后无法清除tmp文件

时间:2018-10-10 09:57:19

标签: pdfbox

我使用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
  }

请帮助我解决此问题。

0 个答案:

没有答案