2021-12-19 12:27:03 +09:00
|
|
|
import React, {useEffect, useState} from 'react';
|
|
|
|
import ReactDOM from 'react-dom';
|
|
|
|
import { MobilePDFReader, PDFReader } from 'react-read-pdf';
|
|
|
|
|
2021-12-21 08:35:53 +09:00
|
|
|
import { SpecialZoomLevel, Viewer, Worker } from '@react-pdf-viewer/core';
|
|
|
|
import { defaultLayoutPlugin } from '@react-pdf-viewer/default-layout';
|
|
|
|
|
|
|
|
import '@react-pdf-viewer/core/lib/styles/index.css';
|
|
|
|
import '@react-pdf-viewer/default-layout/lib/styles/index.css';
|
|
|
|
import { ScrollMode } from '@react-pdf-viewer/scroll-mode';
|
2021-12-19 12:27:03 +09:00
|
|
|
|
|
|
|
const PDFViewer = () => {
|
|
|
|
|
|
|
|
const file_name = document.getElementById('pdf-url').value;
|
|
|
|
const [url, setURL] = useState('');
|
|
|
|
|
2021-12-21 08:35:53 +09:00
|
|
|
const defaultLayoutPluginInstance = defaultLayoutPlugin({
|
|
|
|
toolbarPlugin: {
|
|
|
|
fullScreenPlugin: {
|
|
|
|
onEnterFullScreen: (zoom) => {
|
|
|
|
zoom(SpecialZoomLevel.PageFit);
|
|
|
|
defaultLayoutPluginInstance.toolbarPluginInstance.scrollModePluginInstance.switchScrollMode(
|
|
|
|
ScrollMode.Wrapped
|
|
|
|
);
|
|
|
|
},
|
|
|
|
onExitFullScreen: (zoom) => {
|
|
|
|
zoom(SpecialZoomLevel.PageWidth);
|
|
|
|
defaultLayoutPluginInstance.toolbarPluginInstance.scrollModePluginInstance.switchScrollMode(
|
|
|
|
ScrollMode.Horizontal
|
|
|
|
);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2021-12-19 12:27:03 +09:00
|
|
|
useEffect(()=>{
|
|
|
|
if(file_name == 'default.pdf')
|
|
|
|
setURL('/assets/default/'+file_name);
|
2021-12-19 12:52:15 +09:00
|
|
|
else setURL('/files/'+file_name);
|
2021-12-19 12:27:03 +09:00
|
|
|
}, []);
|
|
|
|
|
|
|
|
return (
|
2021-12-21 08:35:53 +09:00
|
|
|
<Worker workerUrl="https://unpkg.com/pdfjs-dist@2.11.338/build/pdf.worker.js">
|
|
|
|
<div
|
|
|
|
style={{
|
|
|
|
height: '100vh',
|
|
|
|
}}
|
|
|
|
>
|
|
|
|
{
|
|
|
|
url &&
|
2021-12-21 08:41:41 +09:00
|
|
|
<Viewer fileUrl={url}
|
2021-12-21 08:35:53 +09:00
|
|
|
plugins={[defaultLayoutPluginInstance]}
|
|
|
|
/>
|
|
|
|
}
|
|
|
|
</div>
|
|
|
|
</Worker>
|
2021-12-19 12:27:03 +09:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
if(document.getElementById('pdf-preview')){
|
|
|
|
ReactDOM.render(
|
|
|
|
<PDFViewer />,
|
|
|
|
document.getElementById('pdf-preview')
|
|
|
|
)
|
|
|
|
}
|