Add PDF upload with text extraction

This commit is contained in:
2026-02-07 20:49:38 +01:00
parent 684a4dd0b8
commit 77fec69959
7 changed files with 306 additions and 4 deletions
+7 -2
View File
@@ -13,6 +13,7 @@ import { InfoModal } from "./components/modals/InfoModal";
import { SettingsModal } from "./components/modals/SettingsModal";
import { ShortcutsModal } from "./components/modals/ShortcutsModal";
import { parseEpub, fetchMetadataFromOpenLibrary } from "./lib/epub";
import { parsePdf } from "./lib/pdf";
import { formatReadingTime, getORPIndex, getWordDelay } from "./lib/reading";
import {
IOS_BANNER_DISMISSED_KEY,
@@ -148,12 +149,16 @@ export default function App() {
}
}
setBookMetadata(metadata);
} else if (file.name.endsWith(".pdf")) {
const extractedText = await parsePdf(file);
setText(extractedText);
setBookMetadata({ title: file.name, author: null, cover: null });
} else if (file.name.endsWith(".txt")) {
const textContent = await file.text();
setText(textContent);
setBookMetadata(null);
} else {
alert("Please upload an EPUB or TXT file");
alert("Please upload an EPUB, PDF, or TXT file");
}
} catch (err) {
console.error("Error loading file:", err);
@@ -387,7 +392,7 @@ export default function App() {
onToggleTextInput={() => setShowTextInput((prev) => !prev)}
fileInputRef={fileInputRef}
onFileUpload={handleFileUpload}
fileAccept=".epub,.txt"
fileAccept=".epub,.pdf,.txt"
isLoadingFile={isLoadingFile}
fullscreenSupported={isFullscreenSupported()}
isFullscreen={isFullscreen}