# Description
1. **Conditional Support for DatabaseController**:
- The `DatabaseController` is now annotated with
`@Conditional(H2SQLCondition.class)` to ensure it is only available for
H2SQL database setups.
- This prevents unnecessary exposure of endpoints when the application
is configured for H2SQL.
2. **Database Web Template Adjustments**:
- The UI elements related to database management are conditionally
hidden when the database type is not supported (e.g., `databaseVersion
== 'Unknown'`).
- Improves user experience by avoiding unsupported operations for
non-H2SQL or unknown databases.
3. **Model Attribute Updates**:
- Added a check in `DatabaseWebController` to set an informational
message (`notSupported`) when the database version is unknown.
4. **H2 Database Compatibility**:
- Additional adjustments to ensure the application gracefully handles
H2-specific functionality without affecting other database
configurations.
5. **Build File Updates**:
- Updated the `build.gradle` file to exclude `H2SQLCondition` and
related controllers when specific configurations (e.g., security or
database type) are disabled.
### Benefits:
- Enhances application flexibility by adapting to the configured
database type.
- Improves user feedback with clear messaging and UI adjustments for
unsupported operations.
- Prevents accidental exposure of database endpoints in H2SQL setups.
## Checklist
- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [x] I have performed a self-review of my own code
- [ ] I have attached images of the change if it is UI based
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] If my code has heavily changed functionality I have updated
relevant docs on [Stirling-PDFs doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
- [x] My changes generate no new warnings
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)
# Description
Implemented custom page selection for the pdf-to-image feature, allowing
users to specify which PDF pages to convert to images.
1. Variable Renaming: Changed singleOrMultiple to imageResultType
because it supports three options: single, multiple, and custom.
2. New Field: Added pageNumbers to accept user-defined page selections.
This field appears only when custom is selected in the UI.
3. New Method: Added getPageIndicesToConvert to process and validate the
specified page numbers.
4. Method Update: Updated convertFromPdf to handle custom page numbers,
ensuring only selected pages are converted.
5. Translation Properties: Added two new English translation properties,
custom and customPageNumber, to all language files with placeholder
values. These will need to be translated into country-specific languages
in the future.
Note: If an invalid page number is provided (zero, negative, or exceeds
page count), a single image containing all PDF pages is generated.
Closes#918
## Checklist
- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [x] I have performed a self-review of my own code
- [x] I have attached images of the change if it is UI based
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] If my code has heavily changed functionality I have updated
relevant docs on [Stirling-PDFs doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
- [x] My changes generate no new warnings
- [x] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)


---------
Co-authored-by: Sai Kumar J <saikumar@Sais-MacBook-Air.local>
Co-authored-by: Ludy <Ludy87@users.noreply.github.com>
Co-authored-by: saikumar <saikumar.jetti@gmail.com>
Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
* added custom color selection for Watermark
* using the same translation as AddStampRequest.customColor for the new watermark.customColor
* fixed the space issue between words
* Implement Command class for Command Pattern
Created a base `Command` class to implement the **Command Pattern**. This class provides a skeletal implementation for `execute`, `undo`, and `redo` methods.
**Note:** This class is intended to be subclassed and not instantiated directly.
* Add undo/redo stacks and operations
* Use rotate element command to perform execute/undo/redo operations
* Handle commands executed through events
- Add "command-execution" event listener to execute commands that are not invoked from the same class while adding the command to the undo stack and clearing the redo stack.
* Add and use rotate all command to rotate/redo/undo all elements
* Use command pattern to delete pages
* Use command pattern for page selection
* Use command pattern to move pages up and down
* Use command pattern to remove selected pages
* Use command pattern to perform the splitting operation
* Add undo/redo functionality with filename input exclusion
- Implement undo (Ctrl+Z) and redo (Ctrl+Y) functionality.
- Prevent undo/redo actions when the filename input field is focused.
- Ensures proper handling of undo/redo actions without interfering with text editing.
* Introduce UndoManager for managing undo/redo operations
- Encapsulate undo/redo stacks and operations within UndoManager.
- Simplify handling of undo/redo functionality through a dedicated manager.
* Call execute on splitAllCommand
- Fix a bug that caused split all functionality to not work as execute() wasn't called on splitAllCommand
* Add undo/redo buttons to multi tool
- Add undo/redo buttons to multi tool
- Dispatch an event upon state change (such as changes in the undo/redo stacks) to update the UI accordingly.
* Add undo/redo to translations
* Replace hard-coded "Undo"/"Redo" with translation keys in multi tool
---------
Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
* Azerbaijani flag and dropdown item added
* Azerbaijani Language file Added
* AZ - ignore_translation.toml init
* AZ Translation Enterprise Edition Section
* Translation for Generic
* translation-az pipeline
* Translation for Analytics
* Translation for NAVBAR
* Translation for SETTINGS
* translation-az homepage
* Translation for #login
* Translation for (showJS)
* Translation for #showJS
* Translation for #PDFToWord
* Translation for #PDFToPresentation
* Translation for #PDFToText
* Translation for #PDFToHTML
* Translation for #PDFToXML
* Translation for #PDFToCSV
* Translation for #repair
* Translation for #pageLayout
* Translation for #pdfToSinglePage
* Translation for #pageExtracter
* Translation for #getPdfInfo
* Translation for #markdown-to-pdf
* Translation for #PDFToXML
* Translation for #html-to-pdf
* Translation for #PDFToHTML
* Translation for #PDFToText
* Translation for #PDFToPresentation
* Translation for #PDFToWord
* Translation for #PDFToCSV
* Translation for #url-to-pdf
* Translation for #pdfToImage
* Translation for #BookToPDF
* Translation for #PDFToBook
* Translation for #autoRedact
* Translation for #Add image
* Translation for #File to PDF
* Translation for (remove-image)
* Translation for (remove-image)
* Translation for (survey)
* Translation for (licenses)
* Translation for (printFile)
* Translation for (split-bysections)
* Translation for (overlay-pdfs)
* Translation for (split-by-size-or-count)
* Translation for (addPageNumbers)
* Translation for (adjustContrast)
* Translation for (autoSplitPDF)
* Translation for (scalePages)
* Translation for (removeCertSign)
* Translation for (removeAnnotations)
* Translation for (sign)
* Translation for (flatten)
* Translation for (extractImages)
* Translation for (merge)
* Translation for (view pdf)
* Translation for (pageRemover)
* Translation for (rotate)
* az Translation for replace-invert-color
* az Translation for addstamprequest
* Translation for (remove-image)
* Translation for #url-to-pdf
* Update messages_az_AZ.properties
* Update README.md
* Update README.md
* Update messages_az_AZ.properties
* Translation for #compress
* Translation for #Change permissions
* Translation for #remove password
* Translation for #pdfToPDFA
* Translation for #changeMetadata
* Translation for #merge
* Translation for #split-pdfs
* translation-az addpass
* translation-az watermark
* translation-az removeblanks
* translation-az compare
* translation-az certsign
* Translation for #pdfOrganiser
* Translation for #multiTool
* Translation for #multiTool
* az translation scannerimagesplit
* az translation ocr
* az translation fix
* az translation linebreak fix
* az translation linebreak fix
---------
Co-authored-by: Lucifer25x <lucifer25x@protonmail.com>
Co-authored-by: islamd7 <vusal04999@gmail.com>
Co-authored-by: Valida Rahmanova <validerehmanova04@gmail.com>
Co-authored-by: yusif043-bit <yusif.abbaszade.043@gmail.com>
Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
* Azerbaijani flag and dropdown item added
* Azerbaijani Language file Added
* AZ - ignore_translation.toml init
* AZ Translation Enterprise Edition Section
* Translation for Generic
* translation-az pipeline
* Translation for Analytics
* Translation for NAVBAR
* Translation for SETTINGS
* translation-az homepage
* Translation for #login
* Translation for (showJS)
* Translation for #showJS
* Translation for #PDFToWord
* Translation for #PDFToPresentation
* Translation for #PDFToText
* Translation for #PDFToHTML
* Translation for #PDFToXML
* Translation for #PDFToCSV
* Translation for #repair
* Translation for #pageLayout
* Translation for #pdfToSinglePage
* Translation for #pageExtracter
* Translation for #getPdfInfo
* Translation for #markdown-to-pdf
* Translation for #PDFToXML
* Translation for #html-to-pdf
* Translation for #PDFToHTML
* Translation for #PDFToText
* Translation for #PDFToPresentation
* Translation for #PDFToWord
* Translation for #PDFToCSV
* Translation for #url-to-pdf
* Translation for #pdfToImage
* Translation for #BookToPDF
* Translation for #PDFToBook
* Translation for #autoRedact
* Translation for #Add image
* Translation for #File to PDF
* Translation for (remove-image)
* Translation for (remove-image)
* Translation for (survey)
* Translation for (licenses)
* Translation for (printFile)
* Translation for (split-bysections)
* Translation for (overlay-pdfs)
* Translation for (split-by-size-or-count)
* Translation for (addPageNumbers)
* Translation for (adjustContrast)
* Translation for (autoSplitPDF)
* Translation for (scalePages)
* Translation for (removeCertSign)
* Translation for (removeAnnotations)
* Translation for (sign)
* Translation for (flatten)
* Translation for (extractImages)
* Translation for (merge)
* Translation for (view pdf)
* Translation for (pageRemover)
* Translation for (rotate)
* az Translation for replace-invert-color
* az Translation for addstamprequest
* Translation for (remove-image)
* Translation for #url-to-pdf
* Update messages_az_AZ.properties
* Update README.md
* Update README.md
* Update messages_az_AZ.properties
---------
Co-authored-by: NureddinFarzaliyev <nureddin.fa@gmail.com>
Co-authored-by: Lucifer25x <lucifer25x@protonmail.com>
Co-authored-by: islamd7 <vusal04999@gmail.com>
Co-authored-by: Valida Rahmanova <validerehmanova04@gmail.com>
Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>