如何使用muPDF库导航到特定页面?或者有没有办法让图书馆不记得我最后在那个PDF页面上的哪个页面?
Uri uri = Uri.parse(path);
Intent intent = new Intent(MainActivity.getContext(), MuPDFActivity.class)
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
c.startActivity(intent);
//c is context
这就是我目前正在打开pdf的方式。
答案 0 :(得分:3)
您可以将Bundle中的页面索引添加到您的意图中,然后在MuPDFActivity中加载该索引并调用mDocView.setDisplayedViewIndex(your_index_from_bundle);那应该可以胜任。
类似的东西:
Uri uri = Uri.parse(path);
Intent intent = new Intent(MainActivity.getContext(), MuPDFActivity.class)
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
Bundle extras = intent.getExtras();
extras.putInt("key_page_index", 10);
c.startActivity(intent);
然后在MuPDFActivity中编辑onCreate,在onCreate的末尾添加此代码:
Intent intent = getIntent();
if(intent!=null){
Bundle extras = intent.getExtras();
if(extras!=null){
int index = extras.getInt("key_page_index");
mDocView.setDisplayedViewIndex(index);
}
}
答案 1 :(得分:0)
package com.artifex.mupdf;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Point;
import android.util.Log;
public class MuPDFPageView extends PageView {
private final MuPDFCore mCore;
public MuPDFPageView(Context c, MuPDFCore core, Point parentSize) {
super(c, parentSize);
mCore = core;
}
public String hitLinkPage(float x, float y) {
// Since link highlighting was implemented, the super class
// PageView has had sufficient information to be able to
// perform this method directly. Making that change would
// make MuPDFCore.hitLinkPage superfluous.
float scale = mSourceScale * getWidth() / mSize.x ;
float docRelX = (x - getLeft()) / scale;
float docRelY = (y - getTop()) / scale;
Log.d("Page Number", "hitLinkPage with page = " + mCore.hitLinkPage(mPageNumber, docRelX, docRelY));
return mCore.hitLinkPage(mPageNumber, docRelX, docRelY);
}
@Override
protected void drawPage(Bitmap bm, int sizeX, int sizeY, int patchX,
int patchY, int patchWidth, int patchHeight) {
mCore.drawPage(mPageNumber, bm, sizeX, sizeY, patchX, patchY,
patchWidth, patchHeight);
}
@Override
protected LinkInfo[] getLinkInfo() {
return mCore.getPageLinks(mPageNumber);
}
}