借鉴EBookDroid源码,将一个pdf文件按页生成一系列的图片的实现方法

[java]  view plain copy
  1. package com.pdf.test;  
  2.   
  3. import org.ebookdroid.core.BitmapRef;  
  4. import org.ebookdroid.core.CodecDocument;  
  5. import org.ebookdroid.core.CodecPage;  
  6. import org.ebookdroid.core.LogContext;  
  7. import org.ebookdroid.droids.mupdf.codec.PdfContext;  
  8. import android.graphics.RectF;  
  9.   
  10. import java.util.concurrent.atomic.AtomicLong;  
  11.   
  12.   
  13. public class PDFPageBitmapFactory {  
  14.   
  15.     private static final AtomicLong SEQ = new AtomicLong();  
  16.     private  final LogContext LCTX  = LogContext.ROOT.lctx(this.getClass().getSimpleName(), true).lctx("" + SEQ.getAndIncrement(), true);  
  17.   
  18.   
  19.     private static PDFPageBitmapFactory  INSTANCE = new PDFPageBitmapFactory();  
  20.     private  PdfContext context;  
  21.     private  CodecDocument document;  
  22.     private  CodecPage page;  
  23.   
  24.     private PDFPageBitmapFactory(){  
  25.   
  26.     }  
  27.   
  28.     public static PDFPageBitmapFactory getInstance(){  
  29.         return INSTANCE;  
  30.     }  
  31.   
  32.     public void makePdfPagePreview(final String filePath,  
  33.             final String password){  
  34.         new Thread(){  
  35.             public void run(){  
  36.                 context = new PdfContext();  
  37.                 document = context.openDocument(filePath, password);  
  38.                 RectF pageSliceBounds  = new RectF(0011);  
  39.                 int a = document.getPageCount();  
  40.                 String picName = "page_";  
  41.                 for (int i = 0; i < a; i++) {  
  42.                     page = document.getPage(i);  
  43.                     BitmapRef bitmapRef = page.renderBitmap(page.getWidth(), page.getHeight(),pageSliceBounds);  
  44.                     LCTX.i("make bitmap "+i);  
  45.                     FileUtils.saveBitmapToFile(bitmapRef.getBitmap(), "/sdcard/pic/"+picName+i);  
  46.                     LCTX.i("after save bitmap "+i);  
  47.                 }  
  48.             }  
  49.   
  50.         }.start();  
  51.     }  
  52.   
  53. }  

//注意要添加 libebookdroid.so文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值