PDFView
簡介
PDFView ,是一款高性能預(yù)覽pdf文件的庫。
- 支持在線PDF文件預(yù)覽
- 支持本地rawfile文件預(yù)覽
- 使用Lazy懶加載方式,優(yōu)化性能
- 支持分頁加載
- API 12
下載安裝
ohpm install @hjm/pdfview
接口和屬性列表
接口列表
| 接口 | 參數(shù) | 描述 |
|---|---|---|
| pdfInit | (totalPage: 總頁數(shù),pagesPerLoad: 當(dāng)前分頁數(shù)) | PDF初始化數(shù)據(jù)回調(diào)函數(shù) |
| onReachEnd | (totalPage: 總頁數(shù)) | PDF滑動(dòng)到底部回調(diào)函數(shù) |
| onScrollIndex | (pageIndex: 當(dāng)前滾動(dòng)索引值) | PDF滑動(dòng)時(shí)回調(diào)函數(shù) |
屬性列表
| 屬性 | 描述 |
|---|---|
| pdfUrl | PDF文件地址(在線地址或者本地地址) |
| pagesPerLoad | 分頁加載數(shù)量 |
性能分析
-
結(jié)合HarmonyOS官方文檔要求,應(yīng)用CPU占用峰值應(yīng)< 2%為性能最優(yōu)體驗(yàn),使用PDFView加載100頁的PDF性能表現(xiàn)如下:
PDFViewProfiler.png
使用示例
import { PDFView } from '@hjm/pdfview'
@Entry
@Component
struct Test8Page {
// @State pdfUrl: string = 'https:XXXX/test/demo.pdf'; //在線地址
@State pdfUrl: Resource = $rawfile('demo.pdf'); //本地地址
build() {
Column(){
Row(){
PDFView({
/* 數(shù)據(jù)源 */
pdfUrl:this.pdfUrl,
/* 實(shí)現(xiàn)分頁加載功能,以縮短首頁加載時(shí)間。 */
pagesPerLoad: 10,
/**
* PDF初始化數(shù)據(jù)回調(diào)函數(shù)。`
* @param {number} totalPage - PDF文檔的總頁數(shù)。
* @param {number} pagesPerLoad - 每次分頁加載的頁數(shù)。
*/
pdfInit: (totalPage: number,pagesPerLoad: number) => {
console.log('總頁數(shù)為:',totalPage,',當(dāng)前分頁數(shù)為:',pagesPerLoad)
},
/**
* PDF滑動(dòng)到底部回調(diào)函數(shù)。
* @param {number} totalPage - PDF文檔的總頁數(shù)。
*/
onReachEnd: (totalPage: number) => {
console.log('總頁數(shù)為:',totalPage)
},
/**
* PDF滑動(dòng)時(shí)回調(diào)函數(shù)。
* @param {number} pageIndex - PDF文檔當(dāng)前滾動(dòng)索引值。
*/
onScrollIndex: (pageIndex: number) => {
console.log(`當(dāng)前滾動(dòng)到第${pageIndex}頁`)
},
})
}
.width('100%')
.height('100%')
}
.width('100%')
.height('100%')
}
}
