当前位置: 首页 > 知识库问答 >
问题:

如何在Android上显示Base64字符串中的PDF?

濮阳宁
2023-03-14

我正在开发一款Android应用程序。我在MYSQL数据库中以blob类型保存PDF数据。我将以base64发送到Android应用程序。如何在Android应用程序中显示pdf?

共有1个答案

谷光誉
2023-03-14

当你带着你的Base64String时,你可以把它转换成字节数组,然后保存为文件。

   FileOutputStream fos = null;
    try {
        if (yourBase64String != null) {
           fos = context.openFileOutput("myPdf.pdf", Context.MODE_PRIVATE);
           byte[] decodedString = android.util.Base64.decode(yourBase64String , android.util.Base64.DEFAULT);
           fos.write(decodedString);                        
           fos.flush();
           fos.close();             
        }

    } catch (Exception e) {

    } finally {
        if (fos != null) {
            fos = null;
        }
    }

在这之后打开这个PDF文件

 Uri path = Uri.fromFile(new File(myPdf.pdf));
 Intent intent = new Intent(Intent.ACTION_VIEW);
 intent.setDataAndType(path, "application/pdf");
 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

 try {
    startActivity(intent);
  } 
 catch (ActivityNotFoundException e) {
   Toast.makeText(OpenPdf.this, 
   "No Application Available to View PDF", 
   Toast.LENGTH_SHORT).show();
 }

在清单中添加此权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 类似资料:
  • 在我的模板中,我有以下内容: 在这篇文章中,我想突出显示字符串中的所有单词 所以我想我创建了一个新的刀片指令: 错误:缺少参数2 发现指令不包含2个参数。我尝试了所有我能找到的解决办法,但没有一个奏效。它们总是以普通字符串的形式返回参数,甚至不传递实际值。 我尝试添加一个助手函数,如下所述:https://stackoverflow.com/a/32430258/928666.不起作用: 错误:未

  • 问题内容: 非常简单的问题,但是由于某种原因,在谷歌搜索10分钟后,我在任何地方都找不到答案。使用JavaScript打印时如何显示转义符? 例: 给出: 当我要它给: 问题答案: 如果你的目标是 并以字符串文字形式输出它包含的内容,您可以使用: 添加外引号(至少在Chrome的实现中),但是其中的内容是字符串文字(是的,这有点令人困惑)。 接受您提供的内容(在这种情况下为字符串),并返回包含该值

  • 问题内容: 我必须从在线数据库中获取以Latin-1字符集编码的文本,并且每个特殊的拉丁字符(即à,ò,ù,è…)都用带有“?”的黑色正方形显示。内。 如何正确显示此内容? 幸运的是,几个小时后我找到了答案,我想与大家分享。请阅读下面的解决方案 问题答案: 解决方案确实很简单,但是我还没有考虑过,但是它的好处是易于理解和实现。实际上,这是代码: 这样,来自Latin-1服务器的所有传入字符串都将正

  • 问题内容: 我有一个PHP脚本,可以将PNG图像编码为Base64字符串。 我想使用JavaScript做同样的事情。我知道如何打开文件,但不确定如何进行编码。我不习惯使用二进制数据。 问题答案: 您可以使用和来与base64编码进行相互转换。 关于这些功能接受/返回的内容,评论中似乎有些混乱,所以…… 接受一个“字符串”,其中每个字符代表一个8位字节-如果传递的字符串包含不能以8位表示的字符,则

  • 问题内容: 我想将字符串转换为Base64。我在几个地方都找到了答案,但是在Swift中它不再起作用了。我正在使用Xcode 6.2。我相信答案可能适用于以前的Xcode版本,而不适用于Xcode 6.2。 有人可以指导我在Xcode 6.2中执行此操作吗? 我发现的答案是这样,但是在我的Xcode版本中不起作用: 参考:http : //iosdevelopertips.com/swift-co

  • 问题内容: 我一直在尝试使用 GZIPOutputStream 等,但在理解它们方面没有成功。我要做的就是将字符串- “字符串” 转换为GZIP Base64格式。我怎样才能做到这一点? 编辑: 通过GZIP Base64格式,我的意思是字符串首先使用GZIP压缩,然后转换为Base64 问题答案: 使用Apache Commons Codec 。 这是一个示例类: 哪个输出: 在Linux下,您