Mostrar el contenido de la base de datos sqlite en formato pdf en android

Tengo una base de datos Sqlite en Android y quiero mostrar su contenido en un archivo PDF, construyéndolo dinámicamente en Android pulsando un botón.

Estoy enterado con iText pero quiero ir con una solución más simple. ¿Puede alguien ayudarme con él PLZ !!

Mira a droidtext que un puerto de la versión de la biblioteca iText 2.1.7 para Android.

Hay muchos ejemplos también. Comience con Helloworld .

public class HelloWorld { /** * Generates a PDF file with the text 'Hello World' * * @param args * no arguments needed here */ public static void main(String[] args) { System.out.println("Hello World"); // step 1: creation of a document-object Document document = new Document(); try { // step 2: // we create a writer that listens to the document // and directs a PDF-stream to a file PdfWriter.getInstance(document, new FileOutputStream(android.os.Environment.getExternalStorageDirectory() + java.io.File.separator + "droidtext" + java.io.File.separator + "HelloWorld.pdf")); // step 3: we open the document document.open(); // step 4: we add a paragraph to the document document.add(new Paragraph("Hello World")); } catch (DocumentException de) { System.err.println(de.getMessage()); } catch (IOException ioe) { System.err.println(ioe.getMessage()); } // step 5: we close the document document.close(); } } 

Para mostrar el contenido de la base de datos Sqlite en pdf, debes usar itextpdf-5.2.1.jar.you puede descargarlo desde aquí

Ejemplo de código:

 DatabaseHandlerofdatabase dbHandler = new DatabaseHandlerofdatabase(this); SQLiteDatabase db = dbHandler.getWritableDatabase(); Cursor c1 = db.rawQuery("SELECT * FROM tablename", null); String filename="nameoffile.pdf"; Document document=new Document(); // create the document File root = new File(Environment.getExternalStorageDirectory(), "Notes"); if (!root.exists()) { root.mkdirs(); // create root directory in sdcard } File gpxfile = new File(root,filename); // generate pdf file in that directory PdfWriter.getInstance(document,new FileOutputStream(gpxfile)); document.open(); // open the directory Paragraph p3=new Paragraph(); // to enter value you have to create paragraph and add value in it then paragraph is added into document p3.add("Username : "); document.add(p3); // now for ad table in pdf use below code PdfPTable table = new PdfPTable(3); // Code 1 // Code 2 table.addCell("CATEGORY"); table.addCell("BUDGET"); table.addCell("USED BUDGET"); // now fetch data from database and display it in pdf while (c1.moveToNext()) { // get the value from database String ex_bdgt = c1.getString(3); String used_bdgt = c1.getString(5); table.addCell(type); table.addCell(ex_bdgt); table.addCell(used_bdgt); int temp_ex=Integer.parseInt(ex_bdgt); ttlbud=ttlbud+temp_ex; int temp_used=Integer.parseInt(used_bdgt); usdbud=usdbud+temp_used; } // add table into document document.add(table); document.addCreationDate(); document.close(); 

He intentado la solución Ketul Patel, la solución está bien en principio, pero necesitaba cambiar algunas cosas en ella. He cambiado la forma en que creé el archivo en el directorio, tengo la idea de aquí , y funcionó perfectamente. Y mi código final es:

El DatabaseHelper es una clase que creé en mi proyecto que extiende SQLiteOpenHelper. Lee mas

 public void createPdf() throws FileNotFoundException, DocumentException { String dir = Environment.getExternalStorageDirectory()+File.separator+"myLogs"; File folder = new File(dir); folder.mkdirs(); File file = new File(dir, "LogHistory.pdf"); Cursor c1 = database.rawQuery("SELECT * FROM " + DatabaseHelper.TABLE_LOG, null); Document document = new Document(); // create the document PdfWriter.getInstance(document, new FileOutputStream(file)); document.open(); Paragraph p3 = new Paragraph(); p3.add("Your Log History for \n"); document.add(p3); PdfPTable table = new PdfPTable(4); table.addCell("Date"); table.addCell("Start"); table.addCell("End"); table.addCell("Total"); while (c1.moveToNext()) { String date = c1.getString(3); String start = c1.getString(1); String end = c1.getString(2); String total = c1.getString(4); table.addCell(date); table.addCell(start); table.addCell(end); table.addCell(total); } document.add(table); document.addCreationDate(); document.close(); } 

He completado la implementación de PDF en php con la ayuda de Tutoriales fpdf . Con esto también obtuve ayuda para Gráficos de Pie y Gráficos de Bar para representación gráfica en mi pdf. También este formato se simplifica para enviar nuestro archivo pdf como un archivo adjunto, ya que podría ser almacenado de varias maneras.

  • ¿Cómo elimino una entrada de fila de tabla sqlite por cadena?
  • SQLite: Consulta que devuelve datos antiguos / en caché
  • Android MediaStore obtiene distintas carpetas de archivos de música
  • Android: Actualización de bases de datos locales desde una base de datos en línea
  • Android.database.sqlite.SQLiteException: la tabla X no tiene columna llamada Y:, mientras compila: INSERT INTO
  • Android sqlite delete no elimina realmente las filas
  • Android: Cómo sumar todas las columnas de una base de datos SQLite y devolver 1 variable única
  • Bases de datos de sincronización Mysql SQLite
  • PhoneGap / Apache Cordova propone una API para la base de datos cifrada SQLite
  • Cómo obtener el registro de llamadas desde fecha específica en android
  • No se puede INSERTAR en SQLite, Código de error: 19
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.