android webview 创建,如何从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();

}

祝你好运

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值