Java 使用MuPDF读取联机PDF文件
我有两个问题 1) 注释无效 2) 我想在线阅读pdf文档 我使用此链接构建MuPDF 1) 我得到了项目mupdf/platform/android 我运行默认的应用程序注释工作正常,但我将该项目创建到他们希望保存但注释未保存的库文件中 2) 它将读取本地文件,但我想读取在线文件也。我的android代码Java 使用MuPDF读取联机PDF文件,java,android,pdf,mupdf,Java,Android,Pdf,Mupdf,我有两个问题 1) 注释无效 2) 我想在线阅读pdf文档 我使用此链接构建MuPDF 1) 我得到了项目mupdf/platform/android 我运行默认的应用程序注释工作正常,但我将该项目创建到他们希望保存但注释未保存的库文件中 2) 它将读取本地文件,但我想读取在线文件也。我的android代码 pdf = (TextView) findViewById(R.id.pdf); onPdf = (TextView) findViewById(R.id.onPdf);
pdf = (TextView) findViewById(R.id.pdf);
onPdf = (TextView) findViewById(R.id.onPdf);
pdf.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse(path);
Intent intent = new Intent(context, MuPDFActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
}
});
onPdf.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse(netPath);
Intent intent = new Intent(context, MuPDFActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
}
});
修改的MuPDFActivity-I更改所有文件都是打开的openBuffer方法
private MuPDFCore openBuffer(byte buffer[]) {
System.out.println("Trying to open byte buffer");
try {
String magic = "";
core = new MuPDFCore(this, buffer, magic);
// New file: drop the old outline data
OutlineActivityData.set(null);
} catch (Exception e) {
System.out.println(e);
return null;
}
return core;
}
我的主食
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".PdfTestActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.artifex.mupdfdemo.MuPDFActivity"
android:label="@string/app_name"
android:theme="@style/AppBaseTheme" >
</activity>
<activity
android:name="com.artifex.mupdfdemo.OutlineActivity"
android:label="@string/outline_title"
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.artifex.mupdfdemo.PrintDialogActivity"
android:label="@string/print"
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
</application>
我下载PDF文件并转换成字节,然后在MuPDF核心中打开 下载文件
byte buffer[] = null;
HttpURLConnection urlConnection = null;
try {
urlConnection = (HttpURLConnection) urls[0].openConnection();
urlConnection.setReadTimeout(TIMEOUT_READ);
InputStream inputStream = urlConnection.getInputStream();
int len = inputStream.available();
buffer = new byte[len];
// inputStream.read(buffer, 0, len);
while ((len = inputStream.read(buffer)) != -1) {
byteBuffer.write(buffer, 0, len);
}
Log.e("Length", "" + byteBuffer.size());
inputStream.close();
// and then we can return your byte array.
} catch (Exception e) {
e.printStackTrace();
});
开核
RelativeLayout mupdfWrapper;
MuPDFCore core;
public byte[] buffer;
mupdfWrapper = (RelativeLayout) viewRoot
.findViewById(R.id.mupdf_wrapper);
// Intent intent =new Intent(getActivity(),MuPDFActivity.class);
// startActivity(intent);
core = new MuPDFCore(getActivity(), buffer, "");
MuPDFReaderView mDocView = new MuPDFReaderView(getActivity());
mDocView.setAdapter(new MuPDFPageAdapter(getActivity(), core));
mupdfWrapper.addView(mDocView, new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
你解决这个问题了吗?试试下面我为这个模型所做的回答。你能不能分享这个问题的完整代码,因为我不能让它工作?多谢各位
RelativeLayout mupdfWrapper;
MuPDFCore core;
public byte[] buffer;
mupdfWrapper = (RelativeLayout) viewRoot
.findViewById(R.id.mupdf_wrapper);
// Intent intent =new Intent(getActivity(),MuPDFActivity.class);
// startActivity(intent);
core = new MuPDFCore(getActivity(), buffer, "");
MuPDFReaderView mDocView = new MuPDFReaderView(getActivity());
mDocView.setAdapter(new MuPDFPageAdapter(getActivity(), core));
mupdfWrapper.addView(mDocView, new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));