Cómo renderizar PDF en Android

Resuelto Mikey asked hace 54 años • 6 respuestas

En mi aplicación recibiré un flujo de bytes y lo convertiré a un archivo pdf en la memoria del teléfono. ¿Cómo lo renderizo en un pdf? ¿Y mostrarlo en una actividad?

Mikey avatar Jan 01 '70 08:01 Mikey
Aceptado

Algunos teléfonos (como el Nexus One) vienen con una versión de Quickoffice preinstalada, por lo que puede ser tan fácil como enviar el Intent apropiado una vez que hayas guardado el archivo en la tarjeta SD.

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

        Button button = (Button) findViewById(R.id.OpenPdfButton);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                File file = new File("/sdcard/example.pdf");

                if (file.exists()) {
                    Uri path = Uri.fromFile(file);
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.setDataAndType(path, "application/pdf");
                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                    try {
                        startActivity(intent);
                    } 
                    catch (ActivityNotFoundException e) {
                        Toast.makeText(OpenPdf.this, 
                            "No Application Available to View PDF", 
                            Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
    }
}
Tim Kryger avatar May 21 '2010 21:05 Tim Kryger

Abra el archivo pdf en la vista web .

public class MyPdfViewActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WebView mWebView=new WebView(MyPdfViewActivity.this);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+LinkTo);
    setContentView(mWebView);
  }
}
Shankar Agarwal avatar Jun 02 '2012 10:06 Shankar Agarwal