Android内嵌MuPDF打开PDF文件

2024-08-31 20:32
文章标签 android 内嵌 pdf 打开 mupdf

本文主要是介绍Android内嵌MuPDF打开PDF文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、基本实现

       1,导入so库;


        2,声明库文件中方法

</pre><pre name="code" class="java">public class MuPDFCore {/* load our native library */static {System.loadLibrary("mupdf");}/* Readable members */private int pageNum = -1;;private int numPages = -1;public float pageWidth;public float pageHeight;/* The native functions */private static native int openFile(String filename);private static native int countPagesInternal();private static native void gotoPageInternal(int localActionPageNum);private static native float getPageWidth();private static native float getPageHeight();public static native void drawPage(Bitmap bitmap, int pageW, int pageH,int patchX, int patchY, int patchW, int patchH);public static native RectF[] searchPage(String text);public static native int getPageLink(int page, float x, float y);public static native boolean hasOutlineInternal();public static native boolean needsPasswordInternal();public static native boolean authenticatePasswordInternal(String password);public static native void destroying();public MuPDFCore(String filename) throws Exception {if (openFile(filename) <= 0) {throw new Exception("Failed to open " + filename);}}public int countPages() {if (numPages < 0)numPages = countPagesSynchronized();return numPages;}private synchronized int countPagesSynchronized() {return countPagesInternal();}/* Shim function */public void gotoPage(int page) {if (page > numPages - 1)page = numPages - 1;else if (page < 0)page = 0;if (this.pageNum == page)return;gotoPageInternal(page);this.pageNum = page;this.pageWidth = getPageWidth();this.pageHeight = getPageHeight();}public synchronized PointF getPageSize(int page) {gotoPage(page);return new PointF(pageWidth, pageHeight);}public synchronized void onDestroy() {destroying();}public synchronized void drawPage(int page, Bitmap bitmap, int pageW,int pageH, int patchX, int patchY, int patchW, int patchH) {gotoPage(page);drawPage(bitmap, pageW, pageH, patchX, patchY, patchW, patchH);}public synchronized int hitLinkPage(int page, float x, float y) {return getPageLink(page, x, y);}public synchronized RectF[] searchPage(int page, String text) {gotoPage(page);return searchPage(text);}public synchronized boolean hasOutline() {return hasOutlineInternal();}public synchronized boolean needsPassword() {return needsPasswordInternal();}public synchronized boolean authenticatePassword(String password) {return authenticatePasswordInternal(password);}
}

           
  3,使用 

public class MuPDFActivity extends BaseActivity {private MuPDFCore core;private String mFileName;private ListView mDocListView;private View mButtonsView;private boolean mButtonsVisible;private EditText mPa

这篇关于Android内嵌MuPDF打开PDF文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124919

相关文章

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源