react-pdf-viewer的中文文档
时间: 2023-09-03 07:12:55 浏览: 69
react-pdf-viewer是一个基于React的PDF阅读器组件库,由于其开源且易于使用的特点,被广泛应用于Web开发中。
以下是react-pdf-viewer的中文文档:
## 安装
使用npm安装:
```
npm install @react-pdf-viewer/core --save
```
或者使用yarn安装:
```
yarn add @react-pdf-viewer/core
```
## 使用
```javascript
import React from 'react';
import { Viewer } from '@react-pdf-viewer/core';
import '@react-pdf-viewer/core/lib/styles/index.css';
const App = () => (
<Viewer fileUrl="https://arxiv.org/pdf/quant-ph/0410100.pdf" />
);
export default App;
```
## API
### Viewer
PDF阅读器组件,提供一系列的props来控制阅读器的行为。
#### 属性
* `fileUrl: string`:必须的属性。PDF文件的URL。
* `defaultScale?: number | string`:PDF文件的默认缩放比例。可以是数字,也可以是字符串,例如“auto”、“page-width”、“page-fit”、“50%”等。默认值为“auto”。
* `initialPage?: number`:PDF文件的初始页数。默认值为1。
* `onDocumentLoad?(pdfDocument: PdfDocument) => void`:当PDF文件加载完成时调用的回调函数。
* `onPageChange?(page: number) => void`:当页码发生改变时调用的回调函数。
* `renderError?(error: Error) => React.ReactElement`:当加载PDF文件出错时的自定义渲染函数。
* `renderLoader?() => React.ReactElement`:当加载PDF文件时的自定义渲染函数。
* `theme?: ThemeContext`:阅读器的主题。默认为`defaultTheme`。
### defaultLayoutPlugin
默认的布局插件,提供一系列的props来控制布局。
#### 属性
* `defaultScale?: number | string`:PDF文件的默认缩放比例。可以是数字,也可以是字符串,例如“auto”、“page-width”、“page-fit”、“50%”等。默认值为“auto”。
* `sidebarTabs?: Array<SidebarTab>`:侧边栏选项卡列表。默认为`[bookmarksTab, attachmentsTab]`。
* `sidebarWidth?: number`:侧边栏的宽度。默认为`280`。
* `thumbnailContainer?: (props: ThumbnailContainerProps) => React.ReactElement`:自定义缩略图容器组件。
* `topToolbar?: (props: ToolbarProps) => React.ReactElement`:自定义顶部工具栏组件。
* `zoom?(scale: number) => void`:缩放PDF文件的函数。当需要在自定义组件中调用缩放功能时,需要将此函数作为props传递给自定义组件。
### defaultToolbarPlugin
默认的工具栏插件,提供一系列的props来控制工具栏。
#### 属性
* `numberOfPages?: number`:PDF文件的总页数。当PDF文件加载完成后,将自动更新此属性。
* `page?: number`:PDF文件的当前页码。当页码发生改变时,将自动更新此属性。
* `zoom?(scale: number) => void`:缩放PDF文件的函数。当需要在自定义组件中调用缩放功能时,需要将此函数作为props传递给自定义组件。
### defaultTheme
默认的主题。
#### 属性
* `background?: string`:阅读器的背景色。默认为`#fff`。
* `color?: string`:阅读器的前景色。默认为`#000`。
* `primaryColor?: string`:阅读器的主色调。默认为`#4caf50`。
* `secondaryColor?: string`:阅读器的次色调。默认为`#2196f3`。
## 示例
以下是一个包含自定义缩略图容器和工具栏的示例:
```javascript
import React, { useState } from 'react';
import { Viewer, defaultLayoutPlugin, defaultToolbarPlugin, ThumbnailList, Toolbar } from '@react-pdf-viewer/core';
import '@react-pdf-viewer/core/lib/styles/index.css';
const App = () => {
const [numPages, setNumPages] = useState(0);
const [currentPage, setCurrentPage] = useState(0);
const handleDocumentLoadSuccess = ({ numPages }) => {
setNumPages(numPages);
};
const handlePageChange = (page) => {
setCurrentPage(page);
};
const handleZoom = (scale) => {
console.log(`Zoom to ${scale}`);
};
const thumbnailContainer = (props) => (
<div style={{ padding: '16px 0' }}>
<ThumbnailList {...props} />
</div>
);
const topToolbar = (props) => (
<div style={{ padding: '16px 0' }}>
<Toolbar {...props} pageIndex={currentPage} numberOfPages={numPages} zoom={handleZoom} />
</div>
);
return (
<div style={{ display: 'flex', flexDirection: 'row', height: '100vh' }}>
<Viewer
fileUrl="https://arxiv.org/pdf/quant-ph/0410100.pdf"
plugins={[
defaultLayoutPlugin({
thumbnailContainer,
}),
defaultToolbarPlugin({
topToolbar,
}),
]}
onDocumentLoadSuccess={handleDocumentLoadSuccess}
onPageChange={handlePageChange}
/>
</div>
);
};
export default App;
```
## 参考
* [react-pdf-viewer官方文档](https://react-pdf-viewer.dev/)