¿Cómo puedo obtener una vista previa de un PDF con iTextPDF?

publicado por: Anonymous

Quiero generar una vista previa del documento, este es mi código:

 public void generarPDF(){


    //creamos el documento
    final Document documento = new Document(PageSize.LEGAL);
    //creamos el fichero con el nombre que queramos
    String NOMBRE_DOCUMENTO =  "PDF14.pdf";


    try {
        File f = crearFichero(NOMBRE_DOCUMENTO);
        //creamos el flujo de datos de salida
        FileOutputStream ficheroPdf = new FileOutputStream(f.getAbsolutePath());

        //asociamos el flujo al documento
        final PdfWriter writer = PdfWriter.getInstance(documento, ficheroPdf);
        writer.setPageEvent(new CabezaPies());
        documento.setMargins(40, 40, 40, 40);


        //abrimos el documento y le ponemmos contenido
        documento.open();
....

documento.close();

        Toast.makeText(MainActivity.this, "SE CREO CON EXITO EL DOCUMENTO !!", Toast.LENGTH_LONG).show();



    }catch(Exception e){
        e.getMessage();
        Toast.makeText(MainActivity.this, "NO SE CREO EL DOCUMENTO !!", Toast.LENGTH_LONG).show();
    }

}

public static File crearFichero(String nombreFichero) throws IOException {

    File ruta = getRuta();
    File fichero = null;
    if(ruta !=null){
        fichero = new File(ruta, nombreFichero);
    }
    return fichero;
}

public static File getRuta(){

    String NOMBRE_DIRECTORIO = "PDF PRUEBAS2";
    //el fichero se va a guardar en un directorio dentro
    //de descargas
    File ruta = null;

    if (Environment.MEDIA_MOUNTED.equals(Environment
            .getExternalStorageState())) {
        ruta = new File(Environment.getExternalStorageDirectory(), NOMBRE_DIRECTORIO);

        if (ruta != null) {
            if (!ruta.mkdirs()) {
                if (!ruta.exists()) {
                    return null;
                }
            }
        }
    } else {
    }

    return ruta;


}

Este es el método para abrir el PDF pero me sale error debido a que no especifico la ruta del documento. ¿Cómo paso la ruta?.

public void abrirPDF(){


    Toast.makeText(this, "Leyendo documento", Toast.LENGTH_LONG).show();

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.fromFile(getRuta()), "PDF PRUEBAS2");
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    startActivity(intent);
}

solución

Creo que estas confundiendo el directorio con el fichero:

intent.setDataAndType(Uri.fromFile(getRuta()), "PDF PRUEBAS2");

Debería ser:

intent.setDataAndType(Uri.fromFile(getRuta()), NOMBRE_DOCUMENTO);

Por otro lado, no usaría el espacio en el nombre del directorio! PDF_PRUEBAS2

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *