Android实现pdf在线预览或本地预览的方法

方案说明:
Android实现pdf在线预览或本地预览的方法一般有两种方案:

  1. 使用第三方库方式,如mupdf、vudroid等;
  2. 使用WebView加载pdf预览。

下面分别列出这两种方案的详细实现。

第一种方案:使用第三方库方式
Step 1:导入库文件
下载对应的pdf库文件,以mupdf为例,将库文件导入到工程目录中。

Step 2:添加依赖
在工程目录中的gradle文件中添加对应的依赖。

compile 'com.artifex.mupdf:android-ndk:1.9a'
compile 'com.artifex.mupdf:android:1.9a'

Step 3:实现预览
实现pdf在线预览或本地预览需要进行以下操作:

  1. 获取pdf文件的路径
  2. 将pdf文件解析成bitmap格式
  3. 使用java或者NDK将pdf文件解析成bitmap格式
  4. 将bitmap绘制到Canvas中
  5. 在View中显示Canvas
/**
 * 将pdf文件解析成bitmap格式
 * @param path 文件路径
 * @param pageNum 页面数
 * @return P对应页数的bitmap
 */
public static Bitmap getPDFBitmap(String path,int pageNum)
{
    Bitmap bitmap=null;
    try {
        //打开文件
        RandomAccessFile raf = new RandomAccessFile(path, "r");
        FileChannel channel = raf.getChannel();
        ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
        //打开文档-对象方式
        MuPDFCore pdfCore = new MuPDFCore(buf);
        //获取总页数
        int pageCount = pdfCore.countPages();
        //获取对应的page
        MuPDFPage page = pdfCore.loadPage(pageNum);
        //解析page成bitmap
        bitmap=page.toBitmap();
    }catch (Exception e)
    {
        e.printStackTrace();
    }
    return bitmap;
}

第二种方案:使用WebView加载pdf预览
Step 1:添加支持库
在gradle文件中添加支持库。

compile 'com.github.barteksc:android-pdf-viewer:2.8.2'

Step 2:自定义View
自定义一个继承WebView的pdfView控件。

public class PdfView extends WebView {

    public PdfView(Context context) {
        super(context);
    }

    public PdfView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public PdfView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public void loadPDF(String path) {
        //设置WebView支持javascript
        getSettings().setJavaScriptEnabled(true);
        //加载pdf
        loadUrl("http://docs.google.com/gview?embedded=true&url=" + path);
    }
}

Step 3:实现预览
在需要预览pdf的Activity中使用自定义的pdfView控件,调用loadPDF方法即可。

public class MainActivity extends AppCompatActivity {

    private PdfView mPdfView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mPdfView = findViewById(R.id.pdf_view);

        //加载本地pdf文件
        mPdfView.loadPDF("file:///sdcard/Download/test.pdf");

        //加载网络pdf文件
        //mPdfView.loadPDF("http://xxx/test.pdf");
    }
}

以上就是使用第三方库和WebView加载pdf预览的详细实现步骤。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android实现pdf在线预览或本地预览的方法 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 关于JSqlparser使用攻略(高效的SQL解析工具)

    关于JSqlparser使用攻略包含以下内容: 1. 什么是JSqlparser JSqlparser是开源的Java SQL语句解析器,能够解析各种SQL语句,例如SELECT、INSERT、UPDATE、DELETE、UPSERT等语句,并将其转化为Java对象表示。它可以轻松地将SQL语句转化为Java对象,对于对SQL语句进行处理,修改或转化为其他语…

    GitHub 2023年5月16日
    00
  • 用Anaconda安装本地python包的方法及路径问题(图文)

    下面就给您详细讲解一下“用Anaconda安装本地python包的方法及路径问题(图文)”的完整攻略。 1. 安装Anaconda 首先需要下载安装Anaconda,官网下载地址为:https://www.anaconda.com/products/individual。根据自己的操作系统下载对应的安装包,安装过程中可以按照默认设置进行安装即可。 2. 安装…

    GitHub 2023年5月16日
    00
  • 详解Eclipse提交项目到GitHub以及解决代码冲突

    如何将项目提交到Github? 在Eclipse中,可以使用EGit插件来将项目提交到Github。具体步骤如下: 在Eclipse中安装EGit插件。在Eclipse中选择“Help” → “Eclipse Marketplace”,然后搜索“EGit”,选择“Install”,安装完成后重启Eclipse。 在Github上创建一个Repository。…

    GitHub 2023年5月16日
    00
  • go程序员日常开发效率神器汇总

    “go程序员日常开发效率神器汇总”是一篇介绍提高golang程序员开发效率的文章,其中涵盖了多个常用的工具和技巧。以下是该攻略的完整说明: 1. 使用代码格式化工具 代码格式化是一项非常重要的任务,可以大幅提高代码的可读性,使代码风格统一。对于Golang程序员来说,常用的代码格式化工具是gofmt和goimports。 gofmt是一个官方的代码格式化工具…

    GitHub 2023年5月16日
    00
  • BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)

    BootStrap 轮播插件(carousel)是一款基于 jQuery 和 CSS3 技术的滑动轮播插件,它可以帮助网站快速搭建功能强大的轮播图。同时,它也支持左右手势滑动,实现更好的用户体验。下面将详细讲解三种支持手势滑动的方法,并提供两个示例。 方法一 这种方法可以在Bootstrap原有代码的基础上,直接添加左右手势滑动功能。 // 手势滑动支持 $…

    GitHub 2023年5月16日
    00
  • 如何用 Python 制作 GitHub 消息助手

    请看以下步骤,让我们来一步步学习如何用 Python 制作 GitHub 消息助手。 1. 创建一个 GitHub Access Token 在 GitHub 的设置中创建一个 Access Token(访问令牌),这个 Token 会被用于 Python 代码中,用于对 GitHub API 接口进行访问。你可以按照以下步骤创建: 登录 GitHub 网站…

    GitHub 2023年5月16日
    00
  • Git 教程之服务器搭建详解

    下面是 “Git 教程之服务器搭建详解” 的完整攻略: 前言 Git 是当今最为流行的版本控制工具之一,其在开发中的优势得到了广泛的认可。通过在服务器上搭建 Git 服务,可以更好地管理本地所做的修改,并实现团队协作。 准备工作 在进行服务器搭建之前,需要进行以下准备工作: 选择 Git 服务商 选择 Git 服务商可以帮助我们快速、高效地搭建 Git 服务…

    GitHub 2023年5月16日
    00
  • git多人协作_动力节点Java学院整理

    Git多人协作攻略 前言 Git是一个强大的版本控制工具,在多人协作开发中扮演了重要的角色。本文将介绍如何在团队中利用Git进行多人协作开发。 Git多人协作步骤 1. 创建项目 首先,需要建立一个新的Git项目,这个项目可以是你自己的,也可以是团队的共享项目,以下是示例命令: mkdir my_project cd my_project git init …

    GitHub 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部