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

相关文章

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

SpringBoot的内嵌和外置tomcat的实现方式

《SpringBoot的内嵌和外置tomcat的实现方式》本文主要介绍了在SpringBoot中定制和修改Servlet容器的配置,包括内嵌式和外置式Servlet容器的配置方法,文中通过示例代码介绍... 目录1.内嵌如何定制和修改Servlet容器的相关配置注册Servlet三大组件Servlet注册详

Python结合Free Spire.PDF for Python实现PDF页面旋转

《Python结合FreeSpire.PDFforPython实现PDF页面旋转》在日常办公或文档处理中,我们经常会遇到PDF页面方向错误的问题,本文将分享如何用Python结合FreeSpir... 目录基础实现:单页PDF精准旋转完整代码代码解析进阶操作:覆盖多场景旋转需求1. 旋转指定角度(90/27

使用C#实现将RTF转换为PDF

《使用C#实现将RTF转换为PDF》RTF(RichTextFormat)是一种通用的文档格式,允许用户在不同的文字处理软件中保存和交换格式化文本,下面我们就来看看如何使用C#实现将RTF转换为PDF... 目录Spire.Doc for .NET 简介安装 Spire.Doc代码示例处理异常总结RTF(R

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

使用Python在PDF中绘制多种图形的操作示例

《使用Python在PDF中绘制多种图形的操作示例》在进行PDF自动化处理时,人们往往首先想到的是文本生成、图片嵌入或表格绘制等常规需求,然而在许多实际业务场景中,能够在PDF中灵活绘制图形同样至关重... 目录1. 环境准备2. 创建 PDF 文档与页面3. 在 PDF 中绘制不同类型的图形python

使用Python实现在PDF中添加、导入、复制、移动与删除页面

《使用Python实现在PDF中添加、导入、复制、移动与删除页面》在日常办公和自动化任务中,我们经常需要对PDF文件进行页面级的编辑,使用Python,你可以轻松实现这些操作,而无需依赖AdobeAc... 目录1. 向 PDF 添加空白页2. 从另一个 PDF 导入页面3. 删除 PDF 中的页面4. 在

OFD格式文件及如何适应Python将PDF转换为OFD格式文件

《OFD格式文件及如何适应Python将PDF转换为OFD格式文件》OFD是中国自主研发的一种固定版式文档格式,主要用于电子公文、档案管理等领域,:本文主要介绍OFD格式文件及如何适应Python... 目录前言什么是OFD格式文档?使用python easyofd库将PDF转换为OFD第一步:安装 eas

基于Java实现PPT到PDF的高效转换详解

《基于Java实现PPT到PDF的高效转换详解》在日常开发中,经常会遇到将PPT文档批量或单文件转换为PDF的需求,本文将详细介绍其使用流程、核心代码与常见问题解决方案,希望对大家有所帮助... 目录一、环境配置Maven 配置Gradle 配置二、核心实现:3步完成PPT转PDF1. 单文件转换(基础版)