2012-05-07 24 views
5

Come aprire il file pdf dal server senza salvarlo sul dispositivo e senza utilizzare alcuna applicazione di terze parti. Perché non voglio che il mio utente scarichi alcuna applicazione per utilizzare le mie app. E non lo faccio t voglio usare la visualizzazione web per aprire il file pdf.Come aprire PDF in Android

risposta

0

per questo u have a utilizzare lettore PDF libraries.this collegamento aiuterà u

https://stackoverflow.com/questions/4665957/pdf-parsing-library-for-android

+0

non riesco a capire come utilizzare la libreria nella mia applicazione. Sono molto nuovo ad Android quindi per favore aiutami. –

+0

verifica questo link ti darà una breve idea sull'aggiunta della libreria nel tuo progetto http://stackoverflow.com/questions/3642928/adding-a-library-jar-to-an-eclipse-android-project –

+0

se non vuoi per archiviare il pdf in locale poi dovresti usare la webview meathod ... –

15

Questo metodo ha funzionato nelle versioni precedenti di Android:

In una nuova attività:

 WebView webview = new WebView(this); 
     setContentView(webview); 
     webview.getSettings().setJavaScriptEnabled(true); 
     webview.getSettings().setPluginsEnabled(true); 
     webview.loadUrl("http://docs.google.com/gview?embedded=true&url=URL_of_PDF/fileName.pdf"); 
     setContentView(webview); 

dare il permesso internet nel file manifest.

Utilizzare il seguente metodo per aprire un file PDF con un'applicazione di terze parti già installata.

Per aprire il PDF in uso dell'applicazione:

Uri path = Uri.fromFile(file); 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(path, "application/pdf"); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
+0

non voglio visualizzare il mio pdf in webview .. quindi per favore suggeriscimi come posso aprire pdf nell'applicazione. –

+0

vedi, nella tua domanda, hai detto che non vuoi nessuna applicazione di terze parti, quindi 'WEBVIEW' è la via d'uscita. Nell'URL è possibile passare direttamente l'URL di quel sito Web in cui esiste il PDF. Se sai che l'applicazione di terze parti è consentita, puoi andare per gli "intenti" nell'esempio sopra. – Pallavi

+0

per l'utilizzo di Intent devo archiviare il file pdf su locale ma non lo memorizzo su locale. posso usare qualche file jar per visualizzare il pdf ?? –

3

uso PdfViewer.jar e facendo un codice come qui sotto - copiata da here

First.java

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    File images = Environment.getExternalStorageDirectory(); 
    imagelist = images.listFiles(new FilenameFilter() 
    { 
      public boolean accept(File dir, String name) 
      { 
        return ((name.endsWith(".pdf"))); 
      } 
    }); 
    pdflist = new String[imagelist.length]; 
    for(int i = 0;i<imagelist.length;i++) 
    { 
      pdflist[i] = imagelist[i].getName(); 
    } 
    this.setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, pdflist)); 
} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) 
{ 
     super.onListItemClick(l, v, position, id); 
     String path = imagelist[(int)id].getAbsolutePath(); 
     openPdfIntent(path); 
} 

private void openPdfIntent(String path) 
{ 
    try 
    { 
     final Intent intent = new Intent(First.this, Second.class); 
     intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, path); 
     startActivity(intent); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 

Seconda. java

public class Second extends PdfViewerActivity 
{ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
} 

public int getPreviousPageImageResource() { 
    return R.drawable.left_arrow; 
} 

public int getNextPageImageResource() { 
    return R.drawable.right_arrow; 
} 

public int getZoomInImageResource() { 
    return R.drawable.zoom_in; 
} 

public int getZoomOutImageResource() { 
    return R.drawable.zoom_out; 
} 

public int getPdfPasswordLayoutResource() { 
    return R.layout.pdf_file_password; 
} 

public int getPdfPageNumberResource() { 
    return R.layout.dialog_pagenumber; 
} 

public int getPdfPasswordEditField() { 
    return R.id.etPassword; 
} 

public int getPdfPasswordOkButton() { 
    return R.id.btOK; 
} 

public int getPdfPasswordExitButton() { 
    return R.id.btExit; 
} 

public int getPdfPageNumberEditField() { 
    return R.id.pagenum_edit; 
} 
} 

Spero che questo ti aiuti molto. Prova questo. Non dimenticare di aggiungere Second.java nel tuo manifest. Aggiungi alcuni drawable qualunque cosa richieda in second.java con i tuoi drawable. E, fare riferimento all'esempio da GitHub

+0

Ciao Agarwal! Sono stato in grado di visualizzare il file pdf nel dispositivo, ma questa libreria non è stata in grado di caricare file pdf di dimensioni maggiori e anche le immagini all'interno del file pdf sono visualizzate come immagini sfocate. Hai affrontato questo problema ?? –

+0

Una volta che ho funzionato, sono rimasto deluso dalla mancanza di un'interfaccia liscia e mancanza di gesti e moltitudine di nio.BufferUnderflowExceptions, anche dopo aver aggiunto android: largeHeap = "true" al mio tag nel Manifest –

Problemi correlati