3

我使用 Mupdf Library 实现了电子书应用程序,并想为我的项目中的每个 pdf 文件生成缩略图,谁能告诉我如何生成这个?提前致谢

4

3 回答 3

5

在 Librelio 中,他们使用的是没有 Cookie 的旧版本的项目 muPDF。在新版本中,您需要扩展 mu pdf 核心,如下所示:

class MuPDFThumb extends MuPDFCore{
    public MuPDFThumb(Context context, String filename) throws Exception{
        super(context, filename);
    }

    public Bitmap thumbOfFirstPage(int w, int h){
        PointF pageSize = getPageSize(0);
        float mSourceScale = Math.max(w/pageSize.x, h/pageSize.y);

        Point size = new Point((int)(pageSize.x*mSourceScale), (int)(pageSize.y*mSourceScale));
        final Bitmap bp = Bitmap.createBitmap(size.x,size.y, Bitmap.Config.ARGB_8888);

        drawPage(bp,0,size.x, size.y, 0, 0, size.x, size.y,new Cookie());
        return bp;
    }
}

需要扩展,因为 Cookie 是 MuPDFCore 的内部类,调用 drawPage 需要它。

thumbOfFirstPage 方法接受 2 个参数:ImageView 的宽度和高度以填充位图:

UIThread 中的 thumbnailImageView.setImageBitmap(bPGenerated)

于 2015-03-24T06:39:21.360 回答
1

尝试以下操作:

core.drawPage(bm, page, pageW, pageH, patchX, patchY, patchW, patchH);
于 2014-07-01T18:34:23.630 回答
0

如果只想为 PDF 文件生成首页的缩略图,可以使用命令行工具 mudraw:

mudraw -w 128 -h 128 -o thumbnail.png file.pdf 1

于 2013-06-28T08:15:24.960 回答