php - 从 MySql 数据库检索 PDF 到 android(使用 Volley)

标签 php android android-intent android-volley

你好,我有一个表格,里面有一些 pdf 文件 像这样 (注意我正在使用 php 存储 pdf,我将使用简单的 php 发送 pdf 文件的 api)

表格

id(INT) | book_name(BLOB)
   1    | book_one
   2    | book_two
   3    | book_three

我的 android 应用程序看起来像这样

Android Layout

是否可以将 pdf 从 JSON(使用 php)加载到 android 并以这种方式显示

如果有人可以为我提供正确的教程或帮助我做到这一点,我将非常高兴 我是 android 编程的新手,我们将不胜感激

最佳答案

当然,我会加载 BLOB 数据,存储到 App 数据目录中某处的临时文件中,然后用 https://developer.android.com/reference/android/graphics/pdf/PdfRenderer.html 显示它。

关于“是否可以从 JSON 加载 pdf”:是的,您可以将任何 BLOB 作为 base64 编码字符串存储在 json 中。在这种情况下,加载、解析 json、读取和解码后,您可以将其再次保存为临时文件并使用 PDFRenderer 显示。对于 Android 上的 base64 解码,请查看此 https://developer.android.com/reference/android/util/Base64对于在 php 中的编码,你可以使用 base64_encode()

我认为没有针对您的特定复杂用例的教程。我将按照以下步骤前进:

  1. 努力从您的数据库加载纯 pdf BLOB 并将其作为文件存储在本地,直到您可以在普通 PDF 阅读器应用程序中成功打开它
  2. 既然您知道您的 tmp.pdf 文件已正确恢复并且应该可以呈现,请尝试使用 android.graphics.pdf.PdfRenderer 在您的应用程序中呈现它 - 这是第 2 步,因为您已经知道您的问题不是文件当你遇到问题时
  3. 接下来尝试第 1 步和第 2 步,使用 json 字符串中的 base64 编码的 pdf blob
  4. 完成

找到你可以使用的东西,学习如何快速使用它,检查它是否部分解决了你的问题,然后将拼图拼凑成你的解决方案,这是我要说的常规练习。没有关于所有内容的教程,通常只有基本用法。

关于php - 从 MySql 数据库检索 PDF 到 android(使用 Volley),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54876061/

相关文章:

php - phpurple编译错误-php 5.3

android - 在 Android TimePicker 上禁用键盘输入

安卓错误 "android.app.Application does not implement dagger.android.HasActivityInjector"

android - 如何在 Intent 中传递 uuid?

android - intent.setClass() 和 intent.setComponent() 之间的区别

php - 从订单表中查找新买家和回头客

php - 显示和隐藏缺货变体 woocommerce

Android - 如何将项目点击方法添加到 ArrayAdapter

Android 在后台堆栈中的另一个 Activity 之前启动一个新 Activity,并清除旧 Activity 之上的 Activity

PHP 和 undefined variable 策略