A client-side file viewer for documents, spreadsheets, PDFs, and more.
npm install @codetesseract/react-file-viewerA React-based client-side file viewer supporting documents, spreadsheets, PDFs, images, text files, audio, and video.
.docx, .xlsx)react-pdf.png, .jpg, .gif, etc.)``sh`
npm install @tesseract/react-file-viewer
or
`sh`
yarn add @tesseract/react-file-viewer
`tsx
import React, { useState } from "react";
import SheetViewer from "@tesseract/react-client-file-viewer/components/viewers/SheetViewer";
import DocumentViewer from "@tesseract/react-client-file-viewer/components/viewers/DocumentViewer";
import ImageViewer from "@tesseract/react-client-file-viewer/components/viewers/ImageViewer";
import TextViewer from "@tesseract/react-client-file-viewer/components/viewers/TextViewer";
import PortableDocumentViewer from "@tesseract/react-client-file-viewer/components/viewers/PortableDocumentViewer";
import AudioViewer from "@tesseract/react-client-file-viewer/components/viewers/AudioViewer";
import VideoViewer from "@tesseract/react-client-file-viewer/components/viewers/VideoViewer";
import { FileTypeEnum } from "@tesseract/react-client-file-viewer/utils/enums/file-type.enum";
import { typeExtensions } from "@tesseract/react-client-file-viewer/utils/Helper";
const App: React.FC = () => {
const [file, setFile] = useState
const [fileType, setFileType] = useState
const handleFileChange = (event: React.ChangeEvent
if (event.target.files && event.target.files.length > 0) {
const selectedFile = event.target.files[0];
const extension = selectedFile.name.split('.').pop()?.toLowerCase();
let detectedType: FileTypeEnum | null = null;
for (const [type, extensions] of Object.entries(typeExtensions)) {
if (extensions.includes(extension!)) {
detectedType = type as FileTypeEnum;
break;
}
}
if (detectedType) {
setFile(selectedFile);
setFileType(detectedType);
} else {
alert("Unsupported file type.");
setFile(null);
setFileType(null);
}
}
};
const fileExtensions = Object.values(typeExtensions).flat().map(ext => .${ext}).join(",");
return (
{file && fileType === FileTypeEnum.SHEET &&
{file && fileType === FileTypeEnum.DOCUMENT &&
{file && fileType === FileTypeEnum.IMAGE &&
{file && fileType === FileTypeEnum.TEXT &&
{file && fileType === FileTypeEnum.PORTABLE_DOCUMENT &&
{file && fileType === FileTypeEnum.AUDIO &&
{file && fileType === FileTypeEnum.VIDEO &&
export default App;
`
| File Type | Extensions |
|---------------|--------------------------------|
| Documents | .docx, .txt |.xlsx
| Spreadsheets | |.pdf
| PDFs | |.png
| Images | , .jpg, .gif, .bmp |.txt
| Text | , .csv |.mp3
| Audio | , .wav, .ogg |.mp4
| Video | , .webm, .ogg` |
MIT License
This is trial version of document viewer.
Feel free to contribute by submitting issues or pull requests!
Tesseract Team