本文概述
- Java脚本
- Java脚本
- Java脚本
先决条件:
- 你的项目需要使用React 16.3或更高版本。
- 包装基本知识
第1步:创建React应用
npx create-react-app appname cd appname npm start第2步:安装反应PDF包。
npm install react-pdf第三步:首先做一个单独的组件PDF(组件名称, 可以是任何名称), 并在App.js中呈现PDF组件。
App.js:
Java脚本
import React from 'react' ;
import Pdf from './Pdf'const App = ()=>
{return (
<
div className= "App" >
//Rendering a pdf component
<
Pdf />
<
/div>
);
}export default App;
创建pdf组件后, 你的项目目录将如下所示。
文章图片
步骤4:在本部分中, 我们将加载PDF并将其呈现在你的应用程序上。
文件:加载使用文件属性传递的文档。
文件属性:它告诉应该显示什么PDF, 在上面的代码中, 我们将URL传递给它。
网址:此处的URL由两部分组成。
- 第一部分是由于防止cors错误, 你可以参考文档以详细了解内核。
1st part: https://cors-anywhere.herokuapp.com/
- 第二部分是我们实际的PDF URL。
2nd part: http://www.pdf995.com/samples/pdf.pdf
我们需要做的另一件事是启用PDF.JS工作人员, 你可以从外部CDN使用pdf.worker.js。
onDocumentLoadSuccess:成功加载文档后, 我们设置页码状态以告知用户pdf所在的页码。
Pdf.js:现在打开PDF组件。
Java脚本
import React, { useState } from 'react' ;
import { Document, Page, pdfjs } from 'react-pdf' ;
import './pdf.css'//PDFjs worker from an external cdn
const url =
"https://cors-anywhere.herokuapp.com/http://www.pdf995.com/samples/pdf.pdf"export default function Test() {pdfjs.GlobalWorkerOptions.workerSrc =
https://www.lsbin.com/` //cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;
const [numPages, setNumPages] = useState( null );
const [pageNumber, setPageNumber] = useState(1);
function onDocumentLoadSuccess({ numPages }) {
setNumPages(numPages);
setPageNumber(1);
}
return (
<
>
<
div className="main" >
<
Document
file={url}
onLoadSuccess={onDocumentLoadSuccess}
>
<
Page pageNumber={pageNumber} />
<
/Document>
<
/div>
<
/>
);
}
步骤5:现在, 最后一件事是将NEXT和PREVIOUS按钮添加到PDF文件。
Pdf.js:在这里我们添加了两个按钮下一个和上一个及其功能命名上一页()和下一页()更改当前页面的状态。
Java脚本
import React, { useState } from 'react' ;
import { Document, Page, pdfjs } from 'react-pdf' ;
const url =
"https://cors-anywhere.herokuapp.com/http://www.pdf995.com/samples/pdf.pdf"export default function Test() {pdfjs.GlobalWorkerOptions.workerSrc =
https://www.lsbin.com/` //cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;
const [numPages, setNumPages] = useState( null );
const [pageNumber, setPageNumber] = useState(1);
/*To Prevent right click on screen*/
document.addEventListener("contextmenu" , (event) =>
{
event.preventDefault();
});
/*When document gets loaded successfully*/
function onDocumentLoadSuccess({ numPages }) {
setNumPages(numPages);
setPageNumber(1);
}function changePage(offset) {
setPageNumber(prevPageNumber =>
prevPageNumber + offset);
}function previousPage() {
changePage(-1);
}function nextPage() {
changePage(1);
}return (
<
>
<
div className= "main" >
<
Document
file={url}
onLoadSuccess={onDocumentLoadSuccess}
>
<
Page pageNumber={pageNumber} />
<
/Document>
<
div>
<
div className= "pagec" >
Page {pageNumber || (numPages ? 1 : '--' )} of {numPages || '--' }
<
/div>
<
div className= "buttonc" >
<
button
type= "button"
disabled={pageNumber <
= 1}
onClick={previousPage}
className= "Pre">
Previous
<
/button>
<
button
type= "button"
disabled={pageNumber >
= numPages}
onClick={nextPage}>
Next
<
/button>
<
/div>
<
/div>
<
/div>
<
/>
);
}
【如何使用URL在React应用中将PDF显示为图像()】输出如下:
文章图片
推荐阅读
- 如何在使用C语言的情况下释放内存而不使用free()()
- Python中的numpy.sqrt()用法指南
- 计算机病毒(蠕虫,病毒及其他!)
- Python数组Array用法经典指南
- C语言简明教程(二)(C程序编译链接过程和实例对照详解)
- C语言简明教程(一)(C语言标准版本之C89(C90) C99 C11)
- 热门JavaScript前端开发面试题汇总和答案详解
- 热门前端开发面试题之CSS面试题和答案分析
- 热门前端开发面试题及答案汇总(一)(HTML经典面试题和答案分析)