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