Читайте онлайн-файл PDF, используя MuPDF

У меня есть две проблемы: 1) Аннотации не работают 2) Я хочу читать онлайн-документ pdf

Я создаю MuPDF, используя эту ссылку http://mupdf.com/doc/how-to-build-mupdf-for-android

1) Я получаю проект mupdf / platform / android. Я запускаю эту аннотацию приложения по умолчанию, прекрасно работающую, но я создаю этот проект в библиотечном файле, который они хотят сохранить, но аннотация не сохраняется.

2) Он будет читать локальный файл, но я хочу также прочитать онлайн-файл. Мой код андроида

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 – я меняю все файлы на открытый 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> 

Мой стек

 12-25 19:02:41.544: E/TAG(22925): /sample.pdf: open failed: ENOENT (No such file or directory) 12-25 19:02:41.544: E/tag(22925): file 12-25 19:02:41.546: I/System.out(22925): Trying to open /sample.pdf 12-25 19:02:41.549: D/dalvikvm(22925): Trying to load lib /mnt/asec/com.example.testnew-1/lib/libmupdf.so 0x41792e10 12-25 19:02:41.576: D/dalvikvm(22925): Added shared lib /mnt/asec/com.example.testnew-1/lib/libmupdf.so 0x41792e10 12-25 19:02:41.576: D/dalvikvm(22925): No JNI_OnLoad found in /mnt/asec/com.example.testnew-1/lib/libmupdf.so 0x41792e10, skipping init 12-25 19:02:41.577: I/libmupdf(22925): Opening document... 12-25 19:02:41.577: E/libmupdf(22925): error: cannot open /sample.pdf: No such file or directory 12-25 19:02:41.577: E/libmupdf(22925): error: cannot load document '/sample.pdf' 12-25 19:02:41.577: E/libmupdf(22925): error: Cannot open document: '/sample.pdf' 12-25 19:02:41.577: E/libmupdf(22925): Failed: Cannot open document: '/sample.pdf' 12-25 19:02:41.580: I/System.out(22925): java.lang.Exception: Cannot open file: /sample.pdf 

Я загружаю PDF-файл и конвертирую в Bytes и открываю в MuPDF Core.

Скачать файл

 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));