目前正在尝试为我的应用程序添加PDF导出功能。这包括填充HTML模板,将其放入WebView,然后使用适用的代码将该WebView的内容写入PDF:How to create PDF from webView, which is hidden? - 但是当生成PDF时,我只获得了该模板的可见区域WebView,因此屏幕外的信息被切断了。
这是我的代码,有没有办法可以从整个WebView中捕获数据?
public void createPDF() {
PdfDocument doc = new PdfDocument();
PdfDocument.PageInfo inf = new PdfDocument.PageInfo.Builder(A4_width, A4_height, 1).create();
PdfDocument.Page page = doc.startPage(inf);
Canvas c = page.getCanvas();
int webWidth = htmlViewer.getWidth();
float scale = A4_width / (float) webWidth;
c.save();
c.scale(scale, scale);
htmlViewer.draw(c);
c.restore();
doc.finishPage(page);
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
String name = requestID + ".pdf";
try {
FileOutputStream fos = null;
try {
File file = (new File(dir, name));
if(!file.exists()) {
file.createNewFile();
}
fos = new FileOutputStream(file);
doc.writeTo(fos);
doc.close();
Log.d(TAG, "PDF made");
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (fos != null) { fos.close(); }
}
} catch (IOException e) {
e.printStackTrace();
}
}