Edit PDF Text
+Open a PDF to edit its text, images and shapes.
+ ++ Everything runs locally in your browser — nothing is uploaded. +
+diff --git a/eslint.config.mjs b/eslint.config.mjs index 0c303c25..8fdab9f1 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -26,6 +26,7 @@ export default [ ], }, { languageOptions: { globals: { ...globals.browser, ...globals.node } } }, + pluginJs.configs.recommended, ...tseslint.configs.recommended, eslintConfigPrettier, @@ -89,4 +90,14 @@ export default [ 'no-misleading-character-class': 'warn', }, }, + { + files: ['src/js/editcore/**/*.js'], + rules: { + 'no-useless-assignment': 'off', + 'security/detect-unsafe-regex': 'off', + 'security/detect-object-injection': 'off', + 'no-unsanitized/property': 'off', + 'no-empty': 'off', + }, + }, ]; diff --git a/package-lock.json b/package-lock.json index b22a0d1f..31e1586c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "@types/node-forge": "^1.3.14", "@types/papaparse": "^5.5.2", "archiver": "^7.0.1", + "bentopdf-pdfium": "file:vendor/bentopdf-pdfium/bentopdf-pdfium-0.0.6.tgz", "bentopdf-viewer": "file:vendor/bentopdf-viewer/bentopdf-viewer-2.9.1.tgz", "blob-stream": "^0.1.3", "bwip-js": "^4.8.0", @@ -4269,10 +4270,16 @@ ], "license": "MIT" }, + "node_modules/bentopdf-pdfium": { + "version": "0.0.6", + "resolved": "file:vendor/bentopdf-pdfium/bentopdf-pdfium-0.0.6.tgz", + "integrity": "sha512-aCFpvPArlkjc5rVtxN/GW9MALjSnjzc7sXf/CqIY5MiVujbhyrMWKnXDtahUiX/O4OWhcneJXCi398mS4/FB9Q==", + "license": "AGPL-3.0" + }, "node_modules/bentopdf-viewer": { "version": "2.9.1", "resolved": "file:vendor/bentopdf-viewer/bentopdf-viewer-2.9.1.tgz", - "integrity": "sha512-WCKztFUzEuWpqvLu8UeXN1aEWgUUNHmV0K+d1PPS9DwCXEoc0d8K0qO59fMHxim3Xr2jaD7i8gECW6iiEcmBBA==", + "integrity": "sha512-CHrH1YcodFmR6PpaeBdK5K585rsF5ec+NU42xkLU2y8el/L4Y7lyAVgGFiNtRHLwzwaNpuRGs72DVCCZdCcJuw==", "license": "MIT", "dependencies": { "preact": "^10.17.0", diff --git a/package.json b/package.json index 38ec47e9..33ee7bf2 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,7 @@ "@types/node-forge": "^1.3.14", "@types/papaparse": "^5.5.2", "archiver": "^7.0.1", + "bentopdf-pdfium": "file:vendor/bentopdf-pdfium/bentopdf-pdfium-0.0.6.tgz", "bentopdf-viewer": "file:vendor/bentopdf-viewer/bentopdf-viewer-2.9.1.tgz", "blob-stream": "^0.1.3", "bwip-js": "^4.8.0", diff --git a/pdf-editor.html b/pdf-editor.html index d926a7f7..da9ba6d4 100644 --- a/pdf-editor.html +++ b/pdf-editor.html @@ -116,6 +116,11 @@
Comprehensive editing
+ + +Rewrite text in place
++ Click any paragraph and edit it in place with live reflow. Move and + restyle text, images, and shapes — then save a clean PDF. +
+ ++ Click to select a file + or drag and drop +
++ PDF file +
++ Your files never leave your device. +
++ Select or drag and drop the PDF whose text you want to edit +
++ Every editable paragraph is outlined — click one and type; text + reflows live as you edit +
++ Change fonts, size, color, alignment and spacing, move or + replace images, add new text boxes +
++ Download a clean PDF with your edits baked in — everything stays + on your device +
++ No. The whole editor — including the PDF engine — runs in your + browser. Files are never uploaded anywhere. +
++ Paragraphs using fragile subset fonts or complex layouts are + protected so your document can't be silently corrupted. Everything + else stays fully editable. +
++ Yes — the editor reuses the document's embedded fonts where + possible, and you can also pull in fonts installed on your device. +
+Open a PDF to edit its text, images and shapes.
+ ++ Everything runs locally in your browser — nothing is uploaded. +
++ Processing... +
+