Android集成mupdf,实现手写笔签字,手指翻页的java代码
阅读原文时间:2023年07月08日阅读:1

import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.RectF;
import android.util.Log;

import java.util.LinkedList;

import com.artifex.mupdfdemo.MuPDFCore;
import com.artifex.mupdfdemo.OutlineActivityData;
import com.artifex.mupdfdemo.Page;
import com.artifex.mupdfdemo.TextWord;

public class MuPDFReader {
private final static String TAG = "MuPDFReader";

private MuPDFCore mCore;  
private Page mCurrentPage;  
private int mCurrentPageNumber;  
private DocumentListener mListener;

public MuPDFReader(String path) {  
    try {  
        mCore = new MuPDFCore(path);  
        mCurrentPageNumber = 0;  
        mCurrentPage = mCore.getPage(0);  
    } catch (Exception e) {  
        Log.e(TAG, e.getMessage());  
    }  
}

public int getPageCount() {  
    return mCore.countPages();  
}

public void setCurrentPage(int pageNumber) {  
    if (pageNumber < 0 || pageNumber >= mCore.countPages()) {  
        return;  
    }  
    mCurrentPageNumber = pageNumber;  
    mCurrentPage = mCore.getPage(pageNumber);  
    if (mListener != null) {  
        mListener.onPageChanged(pageNumber);  
    }  
}

public int getCurrentPageNumber() {  
    return mCurrentPageNumber;  
}

public void setDocumentListener(DocumentListener listener) {  
    mListener = listener;  
}

public void goToPreviousPage() {  
    if (mCurrentPageNumber > 0) {  
        mCurrentPageNumber--;  
        mCurrentPage = mCore.getPage(mCurrentPageNumber);  
        if (mListener != null) {  
            mListener.onPageChanged(mCurrentPageNumber);  
        }  
    }  
}

public void goToNextPage() {  
    if (mCurrentPageNumber < mCore.countPages() - 1) {  
        mCurrentPageNumber++;  
        mCurrentPage = mCore.getPage(mCurrentPageNumber);  
        if (mListener != null) {  
            mListener.onPageChanged(mCurrentPageNumber);  
        }  
    }  
}

public Bitmap getPageBitmap(int width, int height) {  
    return mCurrentPage.getBitmap(width, height);  
}

public LinkedList<OutlineActivityData> getOutlines() {  
    LinkedList<OutlineActivityData> data = new LinkedList<OutlineActivityData>();  
    OutlineActivityData root = new OutlineActivityData(null, -1);  
    root.children = mCore.getOutline();  
    data.add(root);  
    return data;  
}

public LinkedList<TextWord> getTextWords() {  
    return mCurrentPage.getText();  
}

public RectF getPageBounds(int width, int height) {  
    return mCurrentPage.getBounds(width, height);  
}

public void drawBackground(Bitmap bm, int pageW, int pageH, int patchX,  
        int patchY, int patchW, int patchH) {  
    mCurrentPage.drawBackground(bm, pageW, pageH, patchX, patchY, patchW,  
            patchH);  
}

public void drawPage(Bitmap bm, int pageW, int pageH, int patchX,  
        int patchY, int patchW, int patchH) {  
    mCurrentPage.draw(bm, pageW, pageH, patchX, patchY, patchW, patchH,  
            Color.BLACK, Color.WHITE);  
}

public void addAnnotation(float x, float y, float w, float h, int color) {  
    mCurrentPage.addAn

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章