自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

2021年值得關注的React PDF 庫

開發(fā) 前端
今天,許多網絡應用程序為其用戶提供內置的PDF瀏覽選項。然而,選擇一個并不容易,因為它們的功能遠遠超過顯示PDF。在這篇文章中,我將評估5個React的PDF瀏覽器庫,并進行功能比較,以幫助你選擇最適合你要求的。

大家好,我是小弋。

分享的內容是2021年頂級React PDF 庫。

2021 年頂級 React PDF 庫

[[406442]]

今天,許多網絡應用程序為其用戶提供內置的PDF瀏覽選項。然而,選擇一個并不容易,因為它們的功能遠遠超過顯示PDF。

因此,在這篇文章中,我將評估5個React的PDF瀏覽器庫,并進行功能比較,以幫助你選擇最適合你要求的。

主要介紹下面5個庫:

  • react-pdf/renderer
  • react-pdf
  • @phuocng/react-pdf-viewer
  • react-file-viewer
  • @mikecousins/react-pdf

react-pdf/renderer

 

react-pdf/renderer

專門用于渲染和創(chuàng)建PDF。

React-pdf/renderer是一個廣泛使用的庫,用于在瀏覽器和服務器上創(chuàng)建PDF文件。

地址:https://www.npmjs.com/package/@react-pdf/renderer

這個庫提供了一些基本的組件來開始工作,隨著你的熟悉,你可以定制它們來提出更吸引人的設計:

  • Document: 這是match一個PDF文件的根。
  • Page: 單頁是由這個標簽描述的。它需要有一定的尺寸(如A4)。
  • View: 一個通用的容器,用于樣式和格式化PDF。你可以使用StyleSheet.create() API,用Flexbox和CSS屬性的全部功能來設計你的視圖,以布局PDF,類似于它在React Native中的使用方式。
  • Text: 用于顯示文本。
  • Image: 可用于在PDF文檔中插入圖片。
  • Link: 可用于生成超鏈接注釋。

另外,React-pdf/renderer帶有一些驚人的功能,可以用來生成令人驚嘆的文檔。我可以很容易地列出其中的一些功能:

  • 支持各種樣式和CSS屬性。
  • 通過usePDF hook API對文檔進行更多控制。
  • 提供一個Node API。
  • 快速和高效。
  • 高度可定制&易于使用。

除了這些,React-pdf/renderer庫每周有大約93,000次下載,GitHub上有超過9.3k顆星星。

你可以使用npm install - save @react-pdf/renderer命令輕松地將這個庫安裝到你的項目中,下面的代碼顯示了一個使用React-pdf/renderer的簡單例子。

  1. import React from 'react'
  2. import { Document, Page, Text, View, StyleSheet } from '@react-pdf/renderer'
  3.  
  4. // Create styles 
  5. const styles = StyleSheet.create({ 
  6.   page: { 
  7.     flexDirection: 'row'
  8.     backgroundColor: '#C0C0C0' 
  9.   }, 
  10.   section: { 
  11.     margin: 10, 
  12.     padding: 10, 
  13.     flexGrow: 1 
  14.   } 
  15. }); 
  16.  
  17. // Create Pdf Component 
  18. const MyPdf = () => ( 
  19.   <Document> 
  20.     <Page size="A4" style={styles.page}> 
  21.       <View style={styles.section}> 
  22.         <Text>Heading #1</Text> 
  23.       </View
  24.       <View style={styles.section}> 
  25.         <Text>Heading #2</Text> 
  26.       </View
  27.     </Page> 
  28.   </Document> 
  29. ); 

react-pdf

像顯示圖片一樣顯示PDF。

我們之前討論過的React-pdf/renderer是專門用于創(chuàng)建PDF的。但如果你正在尋找一個只顯示PDF的庫,React-pdf是最佳選擇。

地址:https://www.npmjs.com/package/react-pdf

React-pdf提供了一個React組件API,允許打開PDF文件并使用PDF.js渲染。雖然這是一個專門用于查看PDF的簡單庫,但它有一些驚人的功能,比如:

  • 易于使用 - 插入Document組件并給它一個文件道具。React-pdf會把它整理出來,不管它是一個URL,一個文件,還是base64。
  • 支持自定義事件。
  • 多種渲染方法。
  • 支持文本選擇和注釋。
  • 跨瀏覽器兼容性。
  • 可訪問性 - React-pdf不僅將PDF渲染成圖像。還可以作為屏幕閱讀器可以掌握的可見文本層,使你的內容對視力障礙者來說更可用。
  • 免費和開源。

除此以外,每周有超過296,000次的下載和4.6K顆GitHub星,這表明這個庫在React社區(qū)是多么受歡迎。

你可以使用npm i react-pdf命令來安裝它,下面的例子顯示了React-pdf的基本用法。

  1. import React, { useState } from 'react'
  2. import { Document, Page } from 'react-pdf'
  3.  
  4. function MyPdf() { 
  5.   const [numPages, setNumPages] = useState(null); 
  6.   const [pageNumber, setPageNumber] = useState(1); 
  7.  
  8.   function onDocumentLoadSuccess({ numPages }) { 
  9.     setNumPages(numPages); 
  10.   } 
  11.  
  12.   return ( 
  13.     <div> 
  14.       <Document 
  15.         file="myfile.pdf" 
  16.         onLoadSuccess={onDocumentLoadSuccess} 
  17.       > 
  18.         <Page pageNumber={pageNumber} /> 
  19.       </Document> 
  20.       <p>Page {pageNumber} of {numPages}</p> 
  21.     </div> 
  22.   ); 
  23. export default MyPdf; 

@phuocng/react-pdf-viewer

 

@phuocng/react-pdf-viewer

React-pdf-viewer是一個完全由React鉤子驅動的React組件,用TypeScript編寫。

盡管是新的,React-pdf-viewer有一些令人興奮的功能,讓你為之傾倒。為了更好地理解,我將把它們列舉如下:

  • 支持受密碼保護的文件。
  • 縮放:支持自定義級別,如實際尺寸、頁面合適和頁面寬度。
  • 頁面之間的導航。
  • 搜索文本。
  • 預覽頁面縮略圖。
  • 查看和瀏覽目錄。
  • 列出和下載附件。
  • 旋轉和許多滾動模式。文本選擇和手動工具模式。
  • 全屏模式。
  • 可以打開本地文件(例如,拖放一個本地文件來查看它。
  • 下載文件和打印。
  • 查看文件屬性。
  • 支持SSR。

另外,它的插件集合是完全可定制的,并以優(yōu)秀的文檔幫助用戶。

文檔:https://react-pdf-viewer.dev/docs/

從它首次發(fā)布到現在只有一年時間,它已經有超過2000次的每周下載和519顆GitHub星。

注意:你需要有React 16.8以上版本和TypeScript 3.8以上版本才能使用React-pdf-viewer。

你可以使用npm i @phuocng/react-pdf-viewer命令來安裝它,下面的例子展示了React-pdf-viewer的基本用法。

  1. // Core viewer 
  2. import { Viewer } from '@react-pdf-viewer/core'
  3.  
  4. // Plugins 
  5. import { defaultLayoutPlugin } from '@react-pdf-viewer/default-layout'
  6.  
  7. // Import styles 
  8. import '@react-pdf-viewer/core/lib/styles/index.css'
  9. import '@react-pdf-viewer/default-layout/lib/styles/index.css'
  10.  
  11. // Create new plugin instance 
  12. const defaultLayoutPluginInstance = defaultLayoutPlugin(); 
  13.  
  14. <Viewer 
  15.     fileUrl='/my Documents/sample_doc.pdf' 
  16.     plugins={[ 
  17.         // Register plugins 
  18.         defaultLayoutPluginInstance, 
  19.         ... 
  20.     ]} 
  21. /> 

react-file-viewer

React-file-viewer是一個可擴展的文件查看器,用于Web應用程序,支持PDF、圖片、csv、xslx和docx。

這個庫提供了一個名為FileViewer的組件,用來顯示內容,它接受幾個props:

  • fileType String: 要顯示的資源類型。如果你使用一個不支持的文件類型,將出現一個不支持的文件類型通知。
  • filePath String: FileViewer將顯示的資源的URL。
  • onError Function [optional]:如果文件查看器無法獲取或呈現所請求的資源,該函數將被調用。在這里你可以指定一個日志工具的回調。
  • errorComponent react element [optional]: 一個在發(fā)生錯誤時渲染的組件,而不是 react-file-viewer 默認的錯誤組件。
  • unsupported Component react element [Optional]:在文件格式不被支持的情況下要呈現的組件。

除此以外,它還有一些特殊的功能,比如:

  • 用Jest或Enzyme進行測試。
  • 通過使用make lint運行l(wèi)inter,在我們運行代碼之前發(fā)現錯誤,從而節(jié)省時間。
  • 可擴展性--添加支持的文件類型很容易。

此外,這也是最受歡迎的pdf查看器庫之一,每周有17348次下載和291個GitHub Stars。

注意:這個庫在React 16以上版本中功能良好。如果你使用React< 16版本,你很可能需要安裝React-file-viewer 0.5版本。

React-file-viewer可以用npm i react-file-viewer命令安裝,下面的例子顯示了React-file-viewer的一個簡單例子:

  1. // MyApp.js 
  2. import React, { Component } from 'react'
  3. import logger from 'logging-library'
  4. import FileViewer from 'react-file-viewer'
  5. import { CustomErrorComponent } from 'custom-error'
  6.  
  7. const file = 'http://mysite.com/sampledoc.pdf' 
  8. const type = 'pdf' 
  9.  
  10. class MyDocComponent extends Component { 
  11.   render() { 
  12.     return ( 
  13.       <FileViewer 
  14.         fileType={type} 
  15.         filePath={file} 
  16.         errorComponent={CustomErrorComponent} 
  17.         onError={this.onError}/> 
  18.     ); 
  19.   } 
  20.  
  21.   onError(e) { 
  22.     logger.logError(e, 'error in file-viewer'); 
  23.   } 

@mikecousins/react-pdf

@mikecousins/react-pdf是一個使用PDF.js來渲染PDF文檔的組件。

這個庫使用一個叫做usePdf的Hook來渲染PDF,我們需要用這個Hook傳遞幾個props:

  • file:PDF文件的URL。
  • Page: 表示你要顯示的頁面。默認=1。
  • scal:允許你對PDF進行縮放。默認=1。
  • onDocumentLoadSuccess:你可以定義一個回調函數,在PDF文檔數據被完全加載后被調用。
  • onDocumentLoadFail:讓你定義一個回調函數,當發(fā)生PDF文檔數據加載錯誤時被調用。
  • onPageLoadSuccess:讓你定義一個回調,它將在PDF頁面數據加載完畢后被調用。
  • onPageRenderSuccess:讓你定義一個回調,在PDF頁面被完全渲染到DOM后執(zhí)行。

如果你認為這工作太多,你可以簡單地直接使用Pdfcomponent,它在內部利用usePdf鉤子。

  1. import React, { useState } from 'react'
  2. import Pdf from '@mikecousins/react-pdf'
  3.   
  4. const MyPdfViewer = () => { 
  5.   const [page, setPage] = useState(1); 
  6.   
  7.   return <Pdf file="sampledoc.pdf" page={page} />; 
  8. }; 

npm軟件包@mikecousins/react-pdf-js每周有2,646次下載,有497顆GitHub星。

你可以簡單地用yarn add @mikecousins/react-pdf或npm install @mikecousins/react-pdf來安裝@mikecousins/react-pdf。

小結

我們來看看他們具體的下載量:

Source: https://www.npmtrends.com/

Source: https://www.npmtrends.com/

在分析了功能、流行度、安全問題和社區(qū)支持之后,我認為pdf查看器庫的最佳選擇是React-pdf。

考慮到發(fā)布版本的模式、軟件庫活動和其他相關數據,React-pdf的維護狀況遠遠領先于其他所有庫。

不過,庫的選擇可以根據你的要求來改變。我想這篇文章一定會幫助你更多地了解這些庫。

 

責任編輯:姜華 來源: TianTianUp
相關推薦

2021-07-06 12:06:40

React

2020-12-29 10:58:40

RPA機器人流程自動化人工智能

2021-02-19 22:35:29

DevOps開發(fā)軟件開發(fā)

2020-12-29 16:33:07

邊緣計算自動化量子計算

2022-08-05 09:25:27

React庫JavaScript工具

2021-06-16 08:00:00

存儲磁盤數據中心

2021-01-20 09:00:00

開發(fā)軟件測試工具

2021-02-17 23:45:06

大數據工具架構

2021-02-22 10:49:45

大數據數據湖數據倉庫

2020-12-20 17:19:24

主機托管邊緣計算遠程工作

2021-01-11 10:55:12

混合云云計算云平臺

2020-11-26 15:06:59

物聯網人工智能技術

2021-03-02 22:46:39

安全訪問服務邊緣SASE安全服務

2021-02-26 20:11:54

邊緣計算云計算安全

2021-04-21 10:40:43

物聯網威脅物聯網安全網絡攻擊

2021-02-26 11:12:22

人工智能AI機器學習

2020-12-29 11:10:00

大數據數據數據分析

2021-04-20 12:50:24

漏洞網絡安全網絡攻擊

2021-03-30 14:28:53

云計算

2021-01-14 11:33:11

物聯網應用物聯網IOT
點贊
收藏

51CTO技術棧公眾號