android+web+to+pdf,如何从Android中的webview创建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();

}

祝你好运

@H_301_6@

@H_301_6@

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值