【问题标题】:Obtaining thumbnail of pdf present in assets folder gives file not found exception获取资产文件夹中存在的 pdf 缩略图会导致找不到文件异常
【发布时间】:2019-06-06 09:25:13
【问题描述】:

我正在尝试从 pdf 中提取位图图像。 我正在从堆栈溢出中关注这篇文章 Generate Thumbnail of Pdf in Android

我的 Pdf 文件位于 assets 文件夹中

private var quaranPdfUri = "quran.pdf"

我尝试了以下方法从 assets 文件夹中打开 pdf

1.val parcelFileDescriptor  = contentResolver.openFileDescriptor(Uri.parse("file:///android_asset/$quaranPdfUri"),"r")
2. val parcelFileDescriptor = contentResolver.openAssetFileDescriptor(Uri.parse("file:///android_asset/$quaranPdfUri"),"r")?.parcelFileDescriptor
3. val parcelFileDescriptor = contentResolver.openInputStream(Uri.parse("file:///android_asset/$quaranPdfUri"))

但在上述所有情况下,我都得到了找不到文件的异常。

我通过一堆关于堆栈溢出的帖子来获取资产文件夹中存在的文件的 uri,但我不断收到文件未找到异常

How to get URI from an asset File? Get Uri from file in either assets or res/raw How to pass a file path which is in assets folder to File(String path)?

【问题讨论】:

  • 您解压了 APK 以检查文件是否存在?
  • @Blundell 该文件 100% 存在。我面前有这个项目。我也在为其他屏幕打开 pdf

标签: android pdf kotlin


【解决方案1】:

file:///android_asset/ 适用于 WebView,仅此而已。

试试这个:

val context = TODO() // get a Context from somewhere
val assetFd = context.assets.openFd("quran.pdf")
val parcelFileDescriptor = assetFd.getParcelFileDescriptor()

基本上,使用AssetManager and openFd() 获取AssetFileDescriptor,然后使用getParcelFileDescriptor() 获取ParcelFileDescriptor 尝试交给您的PdfiumCore

如果这不起作用,请查看他在 AndroidPdfViewer 中的处理方式。那肯定支持资产并使用 PdfiumAndroid,所以他以某种方式让资产工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 2020-10-27
    • 2019-04-04
    • 2019-06-19
    • 2018-01-19
    • 1970-01-01
    相关资源
    最近更新 更多