feat(merge): Migrate merge operations to Web Workers and reorganize tool categories
- Create merge.worker.js and alternate-merge.worker.js for offloading PDF merge operations to background threads - Migrate merge and alternate-merge logic to use Web Worker architecture for improved performance - Move flatten tool from singlePdfLoadTools to multiFileTools configuration - Update merge and alternate-merge tool subtitles to indicate bookmark preservation - Refactor alternate-merge.ts to use Web Worker instead of pdf-lib for interleaving operations - Refactor merge.ts to use Web Worker for standard merge operations - Update fileHandler.ts to recognize flatten as a multi-file tool requiring process button handling - Simplify form-creator.ts and flatten.ts implementations with Web Worker integration - Update UI state management to support Web Worker-based PDF processing - Improve performance by moving computationally intensive PDF operations off the main thread
This commit is contained in:
@@ -9,7 +9,7 @@ export const singlePdfLoadTools = [
|
||||
'pdf-to-greyscale',
|
||||
'edit-metadata',
|
||||
'remove-metadata',
|
||||
'flatten',
|
||||
|
||||
'delete-pages',
|
||||
'add-blank-page',
|
||||
'extract-pages',
|
||||
@@ -68,4 +68,5 @@ export const multiFileTools = [
|
||||
'txt-to-pdf',
|
||||
'compress',
|
||||
'extract-attachments',
|
||||
'flatten',
|
||||
];
|
||||
|
||||
@@ -13,7 +13,7 @@ export const categories = [
|
||||
id: 'merge',
|
||||
name: 'Merge PDF',
|
||||
icon: 'combine',
|
||||
subtitle: 'Combine multiple PDFs into one file.',
|
||||
subtitle: 'Combine multiple PDFs into one file. Preserves Bookmarks.',
|
||||
},
|
||||
{
|
||||
id: 'split',
|
||||
@@ -310,7 +310,7 @@ export const categories = [
|
||||
id: 'alternate-merge',
|
||||
name: 'Alternate & Mix Pages',
|
||||
icon: 'shuffle',
|
||||
subtitle: 'Combine PDFs by alternating pages from each.',
|
||||
subtitle: 'Merge PDFs by alternating pages from each PDF. Preserves Bookmarks',
|
||||
},
|
||||
{
|
||||
id: 'organize',
|
||||
|
||||
Reference in New Issue
Block a user