我在webview中显示网页.现在如何从webview创建PDF?
例如:webview加载URL是“www.google.co.in”.现在如何将此网页保存为图像并创建pdf?
任何帮助将不胜感激
解决方法
尝试这样
WebView有内置的方法称为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); }
如页面加载完成后,我已经设置了图像位图,这是当前加载的网址在您的Webview
现在Bitmap可以通过使用IText Library将该位图传递给Pdf
下面是一个使用iText Use Below功能编写pdf的例子
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(); }
祝你好运
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。