此问题在此处已有答案:
How can I display a pdf document into a Webview?(12个答案)
5天前关闭。
这篇文章是昨天编辑并提交审查的。
我已经尝试了很多加载pdf文件从本地存储到内部的webview。我已经显示了下面的实现。请检查,让我知道你是否可以指导我
webView.settings.javaScriptEnabled = true
webView.settings.builtInZoomControls = true
webView.webViewClient = object : WebViewClient() {
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
}
override fun onPageFinished(view: WebView?, url: String?) {
// PDF file has finished loading
val test = url
// Toast.makeText(this, url, Toast.LENGTH_SHORT).show()
}
override fun onReceivedError(view: WebView?, request: WebResourceRequest?, error: WebResourceError?) {
// An error has occurred while loading the PDF file
val test = error?.description
}
}
// Load the PDF file into the WebView
try {
val inputStream = assets.open("test.pdf")
val data = ByteArray(inputStream.available())
inputStream.read(data)
inputStream.close()
val base64 :String = android.util.Base64.encodeToString(
data, android.util.Base64.DEFAULT)
val mimeType = "application/pdf"
val encoding = "utf-8"
val html = "<iframe src='data:$mimeType;base64,$base64' " +
"width='100%' height='100%' " +
"style='border: none;'></iframe>"
webView.loadData(html, mimeType, encoding)
} catch (e: Exception) {
e.printStackTrace()
Log.e("TAG", e.toString())
}
清单权限
<uses-permission android:name="android.permission.INTERNET" />
1条答案
按热度按时间9gm1akwq1#
我尝试在WebView中打开PDF,但它不工作,所以我认为它不支持它。
但是您可以使用pdf.js。Here是一个演示。
您也可以使用PdfRenderer类,但我认为它只呈现一个页面。
另一个选项是将PDF转换为HTML,例如LibreOffice Draw可以做到这一点。
您也可以将PDF文件上传到Google驱动程序,然后在WebView中查看此URL。