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

相关文章

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

Python实现PDF与多种图片格式之间互转(PNG, JPG, BMP, EMF, SVG)

《Python实现PDF与多种图片格式之间互转(PNG,JPG,BMP,EMF,SVG)》PDF和图片是我们日常生活和工作中常用的文件格式,有时候,我们可能需要将PDF和图片进行格式互转来满足... 目录一、介绍二、安装python库三、Python实现多种图片格式转PDF1、单张图片转换为PDF2、多张图

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图