# PdfViewPager **Repository Path**: hihopeorg/PdfViewPager ## Basic Information - **Project Name**: PdfViewPager - **Description**: pdf 文件的展示,缩放,翻页功能库 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-03-19 - **Last Updated**: 2021-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PdfViewPager **本项目是基于开源项目 PdfViewPager 进行 ohos 化的移植和开发的,可以通过项目标签以及 github 地址( https://github.com/voghDev/PdfViewPager )追踪到原项目版本** #### 项目介绍 - 项目名称:PdfViewPager - 所属系列:ohos的第三方组件适配移植 - 功能:pdf 文件的展示,缩放,翻页功能。 - 项目移植状态:完成 - 调用差异:无差异。 - 项目作者和维护人:hihope - 联系方式:hihope@hoperun.com - 原项目Doc地址:https://github.com/voghDev/PdfViewPager - 基线release版本:V1.1.2,SHA1:5a6304048f972410049ee171f06d7cae8d151019 - 编程语言:Java - 外部库依赖:无 #### 效果演示 ![gif](preview.gif) #### 安装教程 方式一: 1. 编译PdfViewPager的har包PdfViewPager.har。 2. 启动 DevEco Studio,将har包导入工程目录“entry->libs”下。 3. 在moudle级别下的build.gradle文件中添加依赖,在dependences标签中增加对libs目录下har包的引用。 ``` dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) …… } ``` 在导入的har包上点击右键,选择“Add as Library”对包进行引用,选择需要引用的模块,并点击“OK”即引用成功。 方式二: 1.在工程的build.gradle的allprojects中,添加HAR所在的Maven仓地址 ```java repositories { maven { url 'http://106.15.92.248:8081/repository/Releases/' } } ``` 2.在应用模块的build.gradle的dependencies闭包中,添加如下代码: ``` dependencies { implementation 'es.voghdev.ohos:pdfviewpager:1.0.1' } ``` #### 使用说明: **第一种:展示项目中 rawfile 文件夹内的 PDF 文件** 第一步: 如果您的 PDF 位于 rawfile 目录,复制您的文件到缓存目录; ```java CopyAsset copyAsset = new CopyAssetThreadImpl(this, new EventHandler(EventRunner.getMainEventRunner())); copyAsset.copy(asset, new File(getCacheDir(), asset).getAbsolutePath()); ... ``` 第二步:创建您的 PDFViewPager 传递您的 PDF 文件,有两种方式传递,使用java代码传递或者使用xml传递 ```java pdfViewPager = new PDFViewPager(this, "sample.pdf"); 或者 ``` 第三步:使用完记得释放资源 ```java @Override protected void onStop() { super.onStop(); if (pdfViewPager != null) { ((BasePDFPagerAdapter) pdfViewPager.getProvider()).close(); } } ``` **第二种:展示本地 sd 卡内的 PDF 文件** 第一步:复制sd卡文件到缓存文件夹,复制成功后将返回的path传递给 PDFViewPager ```java CopyAsset copyAsset = new CopyAssetThreadImpl(getApplicationContext(), new EventHandler(EventRunner.getMainEventRunner()), new CopyAsset.Listener() { @Override public void success(String assetName, String destinationPath) { pdfViewPager = new PDFViewPager(context, destinationPath); ...... } @Override public void failure(Exception e) { e.printStackTrace(); ...... } }); } ``` 第二步:使用完记得释放资源 ```java @Override protected void onStop() { super.onStop(); if (pdfViewPager != null) { ((BasePDFPagerAdapter) pdfViewPager.getProvider()).close(); } } ``` **第三种:展示远程URL PDF 文件** 第一步:在 config.json 文件中添加相关权限 ```java "reqPermissions": [ { "name": "ohos.permission.INTERNET" } ] ``` 第二步:在你的 RemotePDFAbility 中实现 DownloadFile.Listener ```java public class RemotePDFAbility extends Ability implements DownloadFile.Listener { ``` 第三步:创建 RemotePDFViewPager 对象 ```java String url = "http://www.cals.uidaho.edu/edComm/curricula/CustRel_curriculum/content/sample.pdf"; RemotePDFViewPager remotePDFViewPager = new RemotePDFViewPager(context, url, this); ``` 第四步:在 DownloadFile.Listener 的监听回调函数里处理 pdf展示 ```java @Override public void onSuccess(String url, String destinationPath) { adapter = new PDFPagerAdapter(this, destinationPath); remotePDFViewPager.setProvider(adapter); } @Override public void onFailure(Exception e) { ... } @Override public void onProgressUpdate(int progress, int total) { ... } ``` 第五步:资源释放 ```java @Override protected void onStop() { super.onStop(); if (pdfViewPager != null) { ((BasePDFPagerAdapter) pdfViewPager.getProvider()).close(); } } ``` #### 版本迭代 - v1.0.1 #### License - Apache license, version 2.0