【发布时间】:2020-12-08 02:40:07
【问题描述】:
我目前正在尝试为我的 Android 应用程序添加 PDF 导出功能。
这涉及填充一个 Url,将其放入 WebView,然后使用此处的改编代码将该 WebView 的内容写入 PDF:
public Bitmap viewToBitmap(View view) { 位图位图 = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); 画布画布=新画布(位图); view.draw(画布); 返回位图; }
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 文件...?
【问题讨论】:
标签: java android html android-studio android-webview