2015-12-25 23 views
5

Ho due problemi 1) Annotazione non funziona 2) Voglio leggere online in formato pdfLeggere file PDF online utilizzando MuPDF

costruisco MuPDF utilizzando questo link http://mupdf.com/doc/how-to-build-mupdf-for-android

1) ottengo progetto MuPDF/platform/android Eseguo che l'annotazione app predefinita funzioni bene, ma creo quel progetto nel file della libreria che chiedono vogliono salvare ma l'annotazione non viene salvata.

2) Legge il file locale ma voglio anche leggere il file online. il mio codice Android

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 Modified - a cambiare tutti i file sono il metodo openBuffer aperto

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

mio 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> 

mio stacktrace

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

Hai risolvere questo problema? –

+0

si lo risolvo. – RDY

+0

Prova qui sotto Risposta Ho fatto per questo modello – RDY

risposta

0

posso scaricare PDF f ile e convertire in byte e aprire in MuPDF Core.

file Download

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

     }); 

Aprire nucleo

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