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文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

Java高效实现Word转PDF的完整指南

《Java高效实现Word转PDF的完整指南》这篇文章主要为大家详细介绍了如何用Spire.DocforJava库实现Word到PDF文档的快速转换,并解析其转换选项的灵活配置技巧,希望对大家有所帮助... 目录方法一:三步实现核心功能方法二:高级选项配置性能优化建议方法补充ASPose 实现方案Libre

使用Python提取PDF大纲(书签)的完整指南

《使用Python提取PDF大纲(书签)的完整指南》PDF大纲(Outline)​​是PDF文档中的导航结构,通常显示在阅读器的侧边栏中,方便用户快速跳转到文档的不同部分,大纲通常以层级结构组织,包含... 目录一、PDF大纲简介二、准备工作所需工具常见安装问题三、代码实现完整代码核心功能解析四、使用效果控

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1:

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.