¿Cómo crear PDF desde webview en android?
Estoy mostrando la webpage
en webview
. Ahora, ¿cómo crear PDF desde webview ?
Por ejemplo: cargas de vista web La URL es "www.google.co.in"
. Ahora cómo guardar esta página web como imagen y crear pdf ??
- Detección automática de número de teléfono, correo electrónico y enlace URL en Webview - Android sdk
- Android - después de cargar URL con webview puedo cambiar el color de fondo
- Android webView saveState
- Android: Callbacks con componente WebView?
- Cómo cambiar el tamaño de una vista web de Android después de agregar datos en ella
Cualquier ayuda sería apreciada
- El botón Atrás destruye la actividad de Crosswalk Android
- Android webview rendimiento, ¿qué me falta?
- AdView ralentiza la aplicación completa, posible razón
- Android WebView canGoBack siempre es cierto
- Cómo manejar las devoluciones de llamada en la vista web
- ¿Puedo hacer que el elemento WebView "flote" encima de mi diseño principal?
- Vista web de Android dentro de un servicio?
- Cómo buscar texto en la vista web
Intente esto
WebView tiene un método setPictureListener
llamado setPictureListener
Utilice ese método como a continuación
webView1.setPictureListener(new PictureListener() { public void onNewPicture(WebView view, Picture picture) { if (picture != null) { try { bmp = pictureDrawable2Bitmap(new PictureDrawable( picture)); } catch (Exception e) { e.printStackTrace(); } } } });
Para la obtención de mapa de bits he utilizado pictureDrawable2Bitmap
y aquí es que uno
private static Bitmap pictureDrawable2Bitmap(PictureDrawable pictureDrawable) { Bitmap bitmap = Bitmap.createBitmap( pictureDrawable.getIntrinsicWidth(), pictureDrawable.getIntrinsicHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawPicture(pictureDrawable.getPicture()); return bitmap; }
Ahora su mapa de bits está listo, Ahora configure el cliente de vista web como se indica a continuación
webView1.setWebViewClient(new myWebClient());
Y aquí está myWebClient
public class myWebClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub super.onPageStarted(view, url, favicon); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super.onPageFinished(view, url); Log.i("OnPageLoadFinished", url); img.setImageBitmap(bmp); }
Como se muestra en la carga de la página terminado he fijado el mapa de imagen que es el broche de presión actual url en su webview
Ahora Bitmap está listo pasar ese mapa de bits a Pdf utilizando IText Library
Aquí está un ejemplo de la escritura pdf con la imagen en la función del uso de iText abajo para eso
public void SimplePDFTable() throws Exception { File direct = new File(Environment.getExternalStorageDirectory() .getAbsolutePath() + "/AamirPDF"); if (!direct.exists()) { if (direct.mkdir()) { Toast.makeText(MainActivity.this, "Folder Is created in sd card", Toast.LENGTH_SHORT) .show(); } } String test = Environment.getExternalStorageDirectory() .getAbsolutePath() + "/AamirPDF"; Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream(test + "/mypdf.pdf")); document.open(); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] byteArray = stream.toByteArray(); Image image = Image.getInstance(byteArray); image.scaleToFit(PageSize.A4.getHeight(), PageSize.A4.getWidth()); document.add(image); document.close(); }
Buena suerte
A partir de la API 19 (KitKat), Android ahora le permite imprimir una vista web directamente. Además, la misma API de PrintManager se puede utilizar para generar un PDF desde una WebView sin bibliotecas externas.
Como muestra el código de ejemplo, sólo tiene que obtener el PrintManager , crear un PrintDocumentAdapter desde el WebView en cuestión, a continuación, crear un nuevo PrintJob y su usuario debe ver la opción para guardarlo en un archivo como PDF o imprimir en una impresora en la nube. En los androides más recientes que 4.4 también obtendrá una vista previa visual de lo que se imprimirá / PDF'd.
- SearchManager.getSearchableInfo (getComponentName ()) devuelve null
- No se puede comprobar si AlarmManager ha configurado la alarma