您的位置:首页 > 其它

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

2012-08-03 16:25 1171 查看
package com.pdf.test;

import org.ebookdroid.core.BitmapRef;
import org.ebookdroid.core.CodecDocument;
import org.ebookdroid.core.CodecPage;
import org.ebookdroid.core.LogContext;
import org.ebookdroid.droids.mupdf.codec.PdfContext;
import android.graphics.RectF;

import java.util.concurrent.atomic.AtomicLong;

public class PDFPageBitmapFactory {

private static final AtomicLong SEQ = new AtomicLong();
private  final LogContext LCTX  = LogContext.ROOT.lctx(this.getClass().getSimpleName(), true).lctx("" + SEQ.getAndIncrement(), true);

private static PDFPageBitmapFactory  INSTANCE = new PDFPageBitmapFactory();
private  PdfContext context;
private  CodecDocument document;
private  CodecPage page;

private PDFPageBitmapFactory(){

}

public static PDFPageBitmapFactory getInstance(){
return INSTANCE;
}

public void makePdfPagePreview(final String filePath,
final String password){
new Thread(){
public void run(){
context = new PdfContext();
document = context.openDocument(filePath, password);
RectF pageSliceBounds  = new RectF(0, 0, 1, 1);
int a = document.getPageCount();
String picName = "page_";
for (int i = 0; i < a; i++) {
page = document.getPage(i);
BitmapRef bitmapRef = page.renderBitmap(page.getWidth(), page.getHeight(),pageSliceBounds);
LCTX.i("make bitmap "+i);
FileUtils.saveBitmapToFile(bitmapRef.getBitmap(), "/sdcard/pic/"+picName+i);
LCTX.i("after save bitmap "+i);
}
}

}.start();
}

}


//注意要添加 libebookdroid.so文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐