Stirling-PDF/frontend/src/core/utils
Balázs Szücs a05c5a53c7
[V2] feat(convert): add support for CBZ to PDF and PDF to CBZ conversion (#4831)
# Description of Changes


TLDR:
- Implemented `ConvertFromCbzSettings` component for CBZ to PDF options
- Added `ConvertToCbzSettings` component for PDF to CBZ options
- Extended conversion constants with new CBZ-related formats and
mappings
- Updated `ConvertSettings` to include CBZ-specific configuration forms
- Updated `useConvertOperation` to handle CBZ conversion parameters

For backend reference see this PR: #4472

This pull request adds support for converting between CBZ (Comic Book
Zip) and PDF formats in the frontend conversion tool. It introduces new
UI components for CBZ-to-PDF and PDF-to-CBZ conversion options, updates
the conversion parameters and form data logic, and integrates these
formats into the available conversion options and endpoints.

**CBZ/PDF Conversion Support:**

* Added `ConvertFromCbzSettings` and `ConvertToCbzSettings` components
to provide user options for CBZ-to-PDF and PDF-to-CBZ conversions,
including "Optimize for ebook" and DPI settings.

**Conversion Logic and Parameters:**

* Extended the `ConvertParameters` interface and default parameters to
include `cbzOptions` (for CBZ-to-PDF) and `cbzOutputOptions` (for
PDF-to-CBZ).

**Conversion Matrix and Endpoint Integration:**

* Added CBZ to the supported "from" and "to" format lists, updated the
conversion matrix to allow CBZ-to-PDF and PDF-to-CBZ, and mapped the new
conversions to appropriate API endpoints.
* Updated URL mapping to recognize `/cbz-to-pdf` and `/pdf-to-cbz` as
conversion tool routes.

### Front-end

<img width="1852" height="994" alt="image"
src="https://github.com/user-attachments/assets/b902438a-8ce7-4eed-a4f8-d80677c0c796"
/>
<img width="270" height="994" alt="image"
src="https://github.com/user-attachments/assets/87556380-e0c5-4974-93c2-d36f86268b49"
/>
<img width="417" height="389" alt="image"
src="https://github.com/user-attachments/assets/1889a3ec-0c06-442a-b3bb-71e1a7c34e4c"
/>
<img width="1853" height="994" alt="image"
src="https://github.com/user-attachments/assets/d6d68f5f-ed70-4be9-89b1-2e4b7cd90921"
/>
<img width="265" height="994" alt="image"
src="https://github.com/user-attachments/assets/36a05dd5-164f-46a7-b8af-aa815d6c0767"
/>




<!--
Please provide a summary of the changes, including:

- What was changed
- Why the change was made
- Any challenges encountered

Closes #(issue_number)
-->

---

## Checklist

### General

- [X] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [X] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [X] I have performed a self-review of my own code
- [X] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### Translations (if applicable)

- [ ] I ran
[`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md)

### UI Changes (if applicable)

- [X] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [X] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.

---------

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2025-11-12 15:27:41 +00:00
..
bulkselection Feature/v2/extract pages (#4828) 2025-11-06 13:57:31 +00:00
automationExecutor.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
automationFileProcessor.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
clickHandlers.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
convertUtils.test.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
convertUtils.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
cropCoordinates.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
downloadUtils.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
fileHash.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
fileHistoryUtils.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
fileIdSafety.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
fileResponseUtils.test.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
fileResponseUtils.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
fileUtils.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
fuzzySearch.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
genericUtils.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
hotkeys.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
languageMapping.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
pageMetadata.ts Viewer update and autozoom (#4800) 2025-11-10 13:52:13 +00:00
pageSelection.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
resourceManager.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
scarfTracking.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
scriptLoader.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
settingsNavigation.ts Add audit system, invite links, and usage analytics (#4749) 2025-11-06 17:29:34 +00:00
settingsPendingHelper.ts Add audit system, invite links, and usage analytics (#4749) 2025-11-06 17:29:34 +00:00
sidebarUtils.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
signatureFlattening.ts Feature/v2/compare tool (#4751) 2025-11-12 14:54:01 +00:00
storageUtils.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
textDiff.ts Feature/v2/compare tool (#4751) 2025-11-12 14:54:01 +00:00
textUtils.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
thumbnailUtils.ts Viewer update and autozoom (#4800) 2025-11-10 13:52:13 +00:00
toolErrorHandler.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
toolResponseProcessor.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
toolSearch.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
toolSynonyms.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
urlMapping.ts [V2] feat(convert): add support for CBZ to PDF and PDF to CBZ conversion (#4831) 2025-11-12 15:27:41 +00:00
urlRouting.ts Restructure frontend code to allow for extensions (#4721) 2025-10-28 10:29:36 +00:00
viewerZoom.ts Viewer update and autozoom (#4800) 2025-11-10 13:52:13 +00:00