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

相关文章

Java高效实现PowerPoint转PDF的示例详解

《Java高效实现PowerPoint转PDF的示例详解》在日常开发或办公场景中,经常需要将PowerPoint演示文稿(PPT/PPTX)转换为PDF,本文将介绍从基础转换到高级设置的多种用法,大家... 目录为什么要将 PowerPoint 转换为 PDF安装 Spire.Presentation fo

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Java实现为PDF设置背景色和背景图片

《Java实现为PDF设置背景色和背景图片》在日常的文档处理中,PDF格式因其稳定性和跨平台兼容性而广受欢迎,本文将深入探讨如何利用Spire.PDFforJava库,以简洁高效的方式为你的PDF文档... 目录库介绍与安装步骤Java 给 PDF 设置背景颜色Java 给 PDF 设置背景图片总结在日常的

Java轻松实现PDF转换为PDF/A的示例代码

《Java轻松实现PDF转换为PDF/A的示例代码》本文将深入探讨Java环境下,如何利用专业工具将PDF转换为PDF/A格式,为数字文档的永续保存提供可靠方案,文中的示例代码讲解详细,感兴趣的小伙伴... 目录为什么需要将PDF转换为PDF/A使用Spire.PDF for Java进行转换前的准备通过

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法