Mupdf Создать миниатюру

Я реализовал приложение E-Book с помощью библиотеки Mupdf и хочу создать миниатюру для каждого файла PDF в моем проекте. Может ли кто-нибудь сказать мне, как это создать? заранее спасибо


person Bibo Wagdy    schedule 27.06.2013    source источник
comment
Ваш вопрос похож на stackoverflow.com/questions/15358461/   -  person Librelio    schedule 28.06.2013


Ответы (3)


В Librelio используется старая версия проекта muPDF без Cookie. В новых версиях нужно расширить ядро ​​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 для заполнения растровым изображением:

thumbnailImageView.setImageBitmap(bPGenerated) в UIThread

person ldd    schedule 24.03.2015
comment
У меня была такая же проблема с внутренним классом Cookie. Благодаря вашему комментарию теперь мы знаем, что вынуждены расширять MuPDFCore. - person MatPag; 13.01.2017

Попробуйте следующее:

core.drawPage(bm, page, pageW, pageH, patchX, patchY, patchW, patchH);
person user2589629    schedule 01.07.2014
comment
Хочешь объяснить больше!? - person Dr.jacky; 16.06.2015

Если вы просто хотите создать миниатюру первой страницы для PDF-файла, вы можете использовать инструмент командной строки mudraw:

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

person ccxvii    schedule 28.06.2013
comment
извините, я хочу сгенерировать его внутри кода, чтобы справиться с ним и отобразить его в виде сетки - person Bibo Wagdy; 28.06.2013
comment
@BiboWagdy, просто посмотрите на источник в mudraw.c. - person lhf; 12.07.2013
comment
Пожалуйста, когда я нажимаю кнопку поиска, текстовое поле поиска не появляется в портретном режиме и не поддерживает арабские слова для поиска. - person Bibo Wagdy; 19.09.2013