Intereting Posts
Как применять * .cube Lut в растровых изображениях android? Несколько MediaPlayers не работают на Nexus 5 Как установить максимальную ширину для макета Поддерживаемые размеры предварительного просмотра камер для популярных телефонов Android Нужна помощь в настройке Android TableLayout Лисп и Android NDK Настройка приоритета WiFi на Android Lollipop или позже через интерфейс настроек Android: Java, C или C ++? Android Как понравится сообщение с facebook 3.0 sdk Java.lang.IllegalArgumentException: column '_id' не существует Максимальная длина имени файла в Android Каков наиболее эффективный с точки зрения батареи подход использования LocalClient для периодического получения обновлений? Каков наилучший способ загрузки 1000+ записей на сервер, который также содержит изображения для каждой записи из приложения iOS / Android? Где и зачем добавлять репозитории на build.gradle Как использовать словарь (например, iphone NSDictionary) в android?

Как создать PDF из webview в Android?

Я показываю webpage в webview . Теперь, как создать PDF из webview ?

Например: URL-адрес загрузки веб-страниц "www.google.co.in" . Теперь, как сохранить эту веб-страницу как изображение и создать pdf?

Любая помощь будет оценена

Solutions Collecting From Web of "Как создать PDF из webview в Android?"

Попробуйте это

WebView имеет встроенный метод, называемый setPictureListener Используйте этот метод, как setPictureListener ниже.

 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(); } } } }); 

Для получения растрового изображения я использовал pictureDrawable2Bitmap и вот что

 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; } 

Теперь ваш растровый рисунок готов, Теперь установите клиент webview, как показано ниже.

 webView1.setWebViewClient(new myWebClient()); 

И вот 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); } 

Как показано на загруженной странице, я установил растровое изображение изображения, которое является привязкой текущего загруженного URL-адреса на вашем веб-просмотре

Теперь Bitmap готов передать растровое изображение в Pdf, используя библиотеку IText

Вот пример написания pdf с изображением на функции iText Use Below для этого

 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(); } 

Удачи

Начиная с API 19 (KitKat), Android теперь позволяет печатать веб-просмотр напрямую. Более того, один и тот же API PrintManager можно использовать для создания PDF-файла из WebView без каких-либо внешних библиотек.

Как показывает пример кода, просто запустите PrintManager , создайте PrintDocumentAdapter из рассматриваемого WebView , затем создайте новый PrintJob, и ваш пользователь должен увидеть, как сохранить его в файл в формате PDF или распечатать на облачном принтере. На более новых андроидах, чем в 4,4, они также получат визуальный предварительный просмотр того, что будет напечатано / PDF'd.