我目前正在尝试为我的Android应用程序添加PDF导出功能。如何获取Web View的全部内容以在Android中生成PDF文件?
这涉及填充一个网址,投入到这一个WebView中,然后编写的WebView的内容,使用适合的代码从这里PDF:
公共位图viewToBitmap(查看视图){ 位图位=位图。 createBitmap(view.getWidth(),view.getHeight(),Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); view.draw(canvas); 返回位图; }
public void deleteRecursive(File fileOrDirectory) {
if (fileOrDirectory.isDirectory())
for (File child : fileOrDirectory.listFiles())
deleteRecursive(child);
fileOrDirectory.delete();
}
public void bmpToPdfMail(Bitmap bitmap) {
String GVCode = String.valueOf(System.currentTimeMillis() + "_InvoiceTest");
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/Invoices");
if (myDir.exists()) {
deleteRecursive(myDir);
}
myDir.mkdirs();
String fname = GVCode + ".jpg";
File file = new File(myDir, fname);
if (file.exists()) {
deleteRecursive(file);
}
try {
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
Document document = new Document();
String input = Environment.getExternalStorageDirectory().toString() + "/Invoices/" + GVCode + ".jpg";
String output = Environment.getExternalStorageDirectory().toString() + "/Invoices/" + GVCode + ".pdf";
String stringPrintDirectory = Environment.getExternalStorageDirectory().toString() + "/Invoices/";
File myDirPdf = new File(stringPrintDirectory);
if (!myDirPdf.exists()) {
myDirPdf.mkdirs();
}
try {
FileOutputStream fos = new FileOutputStream(output);
PdfWriter writer = PdfWriter.getInstance(document, fos);
writer.open();
document.open();
Image img = Image.getInstance(input);
document.setPageSize(img);
document.newPage();
img.setAbsolutePosition(0, 0);
document.add(img);
document.close();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
如何从WebView中创建PDF,这是隐藏的部分?
但是,当生成PDF时,我只能看到 WebView的可见区域,因此关闭屏幕信息。
如何在WebView中获取像(可见或不可见部分)的整个内容以从我的Android应用程序中导出PDF文件...?
我试试这个方法但没有得到一个合适的位图文件 –
那么,所有的内容都包含在位图中吗? – Wizard
不,我得到一个唯一的可见部分和其他部分是空白打印 –