- 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文件