2015-12-25 3 views
5

を使用してオンラインPDFファイルを読みます/ platform/android 私はそのデフォルトのアプリケーションアノテーションをうまく動作させていますが、私はそのプロジェクトを保存したいのですがアノテーションを保存しないことを求めるライブラリファイルに作成します。私は二つの問題 1)注釈は、私は私は、このリンク <a href="http://mupdf.com/doc/how-to-build-mupdf-for-android" rel="nofollow">http://mupdf.com/doc/how-to-build-mupdf-for-android</a></p> <p>1)私は、プロジェクトのmupdfを取得を使用してMuPDFを構築し、オンラインでPDF文書</p> <p>を読みたい) 2を動作しないを持ってMuPDF

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 - 私はすべてのファイルを変更する

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

openBuffer方法開いているマイmainfest

<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 
+0

は、あなたがこの問題を解決することがありますか? –

+0

はい私はそれを解決します。 – RDY

+0

以下の回答をお試しください – RDY

答えて

0

私はPDF Fをダウンロードileで変換して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)); 
関連する問題

 関連する問題