feat(tools): 2.0 phase 5 wave 2 - pdf depth (21 tools) (#220)

This commit is contained in:
SnapOtter
2026-06-13 10:18:55 +08:00
parent ae1337901d
commit 2f39e38162
128 changed files with 11381 additions and 778 deletions
+232
View File
@@ -756,6 +756,238 @@ export const TOOLS: Tool[] = [
acceptedInputs: [".docx", ".doc", ".odt", ".rtf", ".txt"],
executionHint: "long",
},
{
id: "extract-pages",
name: "Extract Pages",
description: "Pull selected pages into a new PDF",
category: "documents",
icon: "FileOutput",
route: "/extract-pages",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "remove-pages",
name: "Remove Pages",
description: "Delete specific pages from a PDF",
category: "documents",
icon: "FileX",
route: "/remove-pages",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "organize-pdf",
name: "Organize PDF",
description: "Reorder pages with an explicit page order",
category: "documents",
icon: "ListOrdered",
route: "/organize-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "protect-pdf",
name: "Protect PDF",
description: "Add password protection (AES-256 encryption)",
category: "documents",
icon: "Lock",
route: "/protect-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "unlock-pdf",
name: "Unlock PDF",
description: "Remove password protection from a PDF",
category: "documents",
icon: "LockOpen",
route: "/unlock-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "repair-pdf",
name: "Repair PDF",
description: "Attempt to repair a damaged or corrupted PDF",
category: "documents",
icon: "Wrench",
route: "/repair-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "linearize-pdf",
name: "Web-Optimize PDF",
description: "Linearize a PDF for fast web viewing",
category: "documents",
icon: "Zap",
route: "/linearize-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "grayscale-pdf",
name: "Grayscale PDF",
description: "Convert all colors to grayscale",
category: "documents",
icon: "Contrast",
route: "/grayscale-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "pdfa-convert",
name: "PDF/A Convert",
description: "Convert to archival PDF/A-2",
category: "documents",
icon: "Archive",
route: "/pdfa-convert",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "crop-pdf",
name: "Crop PDF",
description: "Crop all pages with a uniform margin",
category: "documents",
icon: "Crop",
route: "/crop-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "nup-pdf",
name: "N-up PDF",
description: "Arrange multiple pages per sheet",
category: "documents",
icon: "LayoutGrid",
route: "/nup-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "booklet-pdf",
name: "Booklet PDF",
description: "Arrange pages for folding into a booklet",
category: "documents",
icon: "BookOpen",
route: "/booklet-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "watermark-pdf",
name: "Watermark PDF",
description: "Add a text watermark to every page",
category: "documents",
icon: "Stamp",
route: "/watermark-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "pdf-page-numbers",
name: "PDF Page Numbers",
description: "Add page numbers to every page",
category: "documents",
icon: "Hash",
route: "/pdf-page-numbers",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "flatten-pdf",
name: "Flatten PDF",
description: "Bake forms and annotations into page content",
category: "documents",
icon: "Layers2",
route: "/flatten-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "redact-pdf",
name: "Redact PDF",
description: "Permanently remove text occurrences (verified true redaction)",
category: "documents",
icon: "EyeOff",
route: "/redact-pdf",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "pdf-to-text",
name: "PDF to Text",
description: "Extract plain text from a PDF",
category: "documents",
icon: "FileText",
route: "/pdf-to-text",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "pdf-to-word",
name: "PDF to Word",
description: "Best for text-based PDFs; scanned pages need OCR",
category: "documents",
icon: "FileType",
route: "/pdf-to-word",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "long",
},
{
id: "pdf-metadata",
name: "PDF Metadata",
description: "Read and write PDF document metadata",
category: "documents",
icon: "Tags",
route: "/pdf-metadata",
modality: "document",
acceptedInputs: [".pdf"],
executionHint: "fast",
},
{
id: "html-to-pdf",
name: "HTML to PDF",
description: "Convert an HTML file to PDF. Remote resources are disabled for privacy.",
category: "documents",
icon: "FileCode",
route: "/html-to-pdf",
modality: "document",
acceptedInputs: [".html", ".htm"],
executionHint: "long",
},
{
id: "markdown-to-pdf",
name: "Markdown to PDF",
description:
"Convert a Markdown file to a styled PDF. Remote resources are disabled for privacy.",
category: "documents",
icon: "FileCode2",
route: "/markdown-to-pdf",
modality: "document",
acceptedInputs: [".md", ".markdown"],
executionHint: "long",
},
// Data Files
{
id: "csv-excel",