And*_*eas 5 printing pdf android webview android-4.4-kitkat
我想将我的网页视图保存为 PDF 文件。我知道我可以使用 WebView.createPrintDocumentAdapter() 和 PrintManager.print() 打印 WebView。但是我需要一种方法来保存由 PrintDocumentAdapter 内部生成的 PDF,无需任何用户交互,因为我需要该文件在我的应用程序中进行进一步处理。
有任何想法吗?
小智 5
我意识到这个问题现在已经很老了。但我刚刚意识到如何明智地做到这一点。
本质上,根据问题,您可以使用createPrintDocumentAdapter上面提到的方法并将结果传递给您自己的“假”PrintManager 实现,该实现只需重写 onWrite 方法即可将输出保存到您自己的文件中。下面的代码片段展示了如何获取任何内容PrintDocumentAdapter并将其输出发送到文件。
public void print(PrintDocumentAdapter printAdapter, final File path, final String fileName) {
printAdapter.onLayout(null, printAttributes, null, new PrintDocumentAdapter.LayoutResultCallback() {
@Override
public void onLayoutFinished(PrintDocumentInfo info, boolean changed) {
printAdapter.onWrite(null, getOutputFile(path, fileName), new CancellationSignal(), new PrintDocumentAdapter.WriteResultCallback() {
@Override
public void onWriteFinished(PageRange[] pages) {
super.onWriteFinished(pages);
}
});
}
}, null);
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,有相当多的空值传递到适配器方法中,但我检查了 Chromium 源代码,这些变量从未使用过,因此空值是可以的。
我在这里创建了一篇关于如何执行此操作的博客文章: http://www.annalytics.co.uk/android/pdf/2017/04/06/Save-PDF-From-An-Android-WebView/
| 归档时间: |
|
| 查看次数: |
5698 次 |
| 最近记录: |