首页 > 解决方案 > PDFBox拆分单个PDF的多线程范围页面

问题描述

我的 PDFBox 库有问题,我有一个 pdf,我必须将其拆分为 n 个文件,我需要在此操作中非常快,因为 pdf 非常大。所以我使用了并行方法。我设法通过使用 PageExtractor 拆分了所有页面,但我注意到在某些情况下(并非总是)图像不可见。这是我的代码:

        Long endBu = sommario.getEndDoc();
        Long starBd = sommario.getStartBd();
        // range di pagine da estrarre per la bolletta unica
        PageExtractor pExBu = new PageExtractor(currentPdf);
        pExBu.setStartPage(startBu.intValue());
        pExBu.setEndPage(endBu.intValue());
        PDDocument pdfDocBu = null;
        try {
        
            pdfDocBu = pExBu.extract();
            String fileName = tempDirSplitter + nomeFileBolletta + "_" + TIPO_BOLLETTA.get(INDEX_BS_P_BD)
                    + Constants.PDF_EXTENSION;
         pdfDocBu.save(fileName);
                } finally {
            try {
                if (null != pdfDocBu) {

                    pdfDocBu.close();
                }
            } catch (IOException e) {
                getLogger().error("Errore Chiusura Pdf "+item.getIdDocumento() +  " - " + pdfDocBu.getNumberOfPages());
                e.printStackTrace();
            }
        }

这段代码属于可运行类型的类

标签: javamultithreadingpdfpdfboxrunnable

解决方案


推荐阅读