我显示webpage
在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上当前加载的URL的快照
现在,位图已准备就绪,可以使用IText库将该位图传递给Pdf。
这是一个在iText上使用以下功能在图像上写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();
}
祝你好运
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句