Java使用多线程完成PDF文件转图片

多线程完成PDF文件转图片

系统需要将PDF文件由后台直接转为img图片,供前端页面直接展示,不需要用户下载即可预览文件内容。直接转换时如果文件过大,耗时很长,影响用户体验,后调研后使用多线程方式进行,显著加快图片转换速度。
原始版访问:https://blog.csdn.net/wmf_helloWorld/article/details/104051137

1、创建线程池

ExecutorService executorService = 
new ThreadPoolExecutor(5, 10, 60L, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(50));      

初始化线程池,因系统默认一次预览5张图片,进行分页分步预览,所以设置核心线程池大小为5.设置最后队列为new ArrayBlockingQueue(50)),可以排队50个等待任务,若大于50则不建议预览,或根据需要使用其他队列。
可访问:https://www.cnblogs.com/dafanjoy/p/9729358.html
2、主要转换方法体
2.1、全部转换

public List<String> pdfTurnImage(String filePath) throws CodeException {
        
        List<String> fileImageList;
        
        File file = new File(filePath);
        try(PDDocument pdDocument = PDDocument.load(file)) {
            PdfReader reader = new PdfReader(filePath);
            int pages = reader.getNumberOfPages();
            LOGGER.info(LogType.INFO, "pdf文件共有"+ pages +"页文件");
            String[] imgStrArr = new String[pages];
            fileImageList = Arrays.asList(imgStrArr);
            List<Future<Boolean>> futureTaskList =new ArrayList<>();
            for(int i=0; i<pages;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wmf_helloWorld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值