diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java index e9f558e7d..72b8c95d9 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java @@ -255,6 +255,7 @@ public class OCRController { command.add("--force-ocr"); } } + command.add("--invalidate-digital-signatures"); command.addAll( Arrays.asList( diff --git a/app/core/src/main/resources/static/api-wordmark.svg b/app/core/src/main/resources/static/api-wordmark.svg index 3658102f9..deac1ee16 100644 --- a/app/core/src/main/resources/static/api-wordmark.svg +++ b/app/core/src/main/resources/static/api-wordmark.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + diff --git a/frontend/public/Login/AddToPDF.png b/frontend/public/Login/AddToPDF.png index cf3107e7b..94e9a0ded 100644 Binary files a/frontend/public/Login/AddToPDF.png and b/frontend/public/Login/AddToPDF.png differ diff --git a/frontend/public/Login/Firstpage.png b/frontend/public/Login/Firstpage.png index 40c2d70c0..f12133f4f 100644 Binary files a/frontend/public/Login/Firstpage.png and b/frontend/public/Login/Firstpage.png differ diff --git a/frontend/public/Login/LoginBackgroundPanel.png b/frontend/public/Login/LoginBackgroundPanel.png index 765b90eef..4ea0e0ccf 100644 Binary files a/frontend/public/Login/LoginBackgroundPanel.png and b/frontend/public/Login/LoginBackgroundPanel.png differ diff --git a/frontend/public/Login/SecurePDF.png b/frontend/public/Login/SecurePDF.png index 8b7e98ee6..6184440e9 100644 Binary files a/frontend/public/Login/SecurePDF.png and b/frontend/public/Login/SecurePDF.png differ diff --git a/frontend/public/classic-logo/Firstpage.png b/frontend/public/classic-logo/Firstpage.png index 544124d5b..3cee859e7 100644 Binary files a/frontend/public/classic-logo/Firstpage.png and b/frontend/public/classic-logo/Firstpage.png differ diff --git a/frontend/public/classic-logo/logo192.png b/frontend/public/classic-logo/logo192.png index c266fb79f..08101ad33 100644 Binary files a/frontend/public/classic-logo/logo192.png and b/frontend/public/classic-logo/logo192.png differ diff --git a/frontend/public/classic-logo/logo512.png b/frontend/public/classic-logo/logo512.png index 28c12e245..1f7fe384f 100644 Binary files a/frontend/public/classic-logo/logo512.png and b/frontend/public/classic-logo/logo512.png differ diff --git a/frontend/public/modern-logo/Firstpage.png b/frontend/public/modern-logo/Firstpage.png index 40c2d70c0..f12133f4f 100644 Binary files a/frontend/public/modern-logo/Firstpage.png and b/frontend/public/modern-logo/Firstpage.png differ diff --git a/frontend/public/modern-logo/StirlingPDFLogoGreyText.svg b/frontend/public/modern-logo/StirlingPDFLogoGreyText.svg index 3658102f9..deac1ee16 100644 --- a/frontend/public/modern-logo/StirlingPDFLogoGreyText.svg +++ b/frontend/public/modern-logo/StirlingPDFLogoGreyText.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + diff --git a/frontend/public/modern-logo/logo192.png b/frontend/public/modern-logo/logo192.png index ea34e6e24..2994ca293 100644 Binary files a/frontend/public/modern-logo/logo192.png and b/frontend/public/modern-logo/logo192.png differ diff --git a/frontend/public/modern-logo/logo512.png b/frontend/public/modern-logo/logo512.png index c45bddb36..b48155073 100644 Binary files a/frontend/public/modern-logo/logo512.png and b/frontend/public/modern-logo/logo512.png differ diff --git a/frontend/src-tauri/icons/128x128@2x.png b/frontend/src-tauri/icons/128x128@2x.png index b6e270799..0ac88b8db 100644 Binary files a/frontend/src-tauri/icons/128x128@2x.png and b/frontend/src-tauri/icons/128x128@2x.png differ diff --git a/frontend/src-tauri/icons/Square142x142Logo.png b/frontend/src-tauri/icons/Square142x142Logo.png index 47873da27..aa8b40576 100644 Binary files a/frontend/src-tauri/icons/Square142x142Logo.png and b/frontend/src-tauri/icons/Square142x142Logo.png differ diff --git a/frontend/src-tauri/icons/Square150x150Logo.png b/frontend/src-tauri/icons/Square150x150Logo.png index 50a948f11..3c33180f9 100644 Binary files a/frontend/src-tauri/icons/Square150x150Logo.png and b/frontend/src-tauri/icons/Square150x150Logo.png differ diff --git a/frontend/src-tauri/icons/Square284x284Logo.png b/frontend/src-tauri/icons/Square284x284Logo.png index eeaa1d7af..72c5d7188 100644 Binary files a/frontend/src-tauri/icons/Square284x284Logo.png and b/frontend/src-tauri/icons/Square284x284Logo.png differ diff --git a/frontend/src-tauri/icons/Square310x310Logo.png b/frontend/src-tauri/icons/Square310x310Logo.png index 1a9b60890..b5fa0be56 100644 Binary files a/frontend/src-tauri/icons/Square310x310Logo.png and b/frontend/src-tauri/icons/Square310x310Logo.png differ diff --git a/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png b/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png index ede209ca8..475ea7dbc 100644 Binary files a/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png and b/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/frontend/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/frontend/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png index bbff05655..c0cf472de 100644 Binary files a/frontend/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png and b/frontend/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png b/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png index ff99f5ded..b5df806c1 100644 Binary files a/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png and b/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png differ diff --git a/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png index fb204ce9a..21a8c5bfb 100644 Binary files a/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png and b/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png index ff99f5ded..b5df806c1 100644 Binary files a/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png and b/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png b/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png index 0ce89ce5f..224b0169c 100644 Binary files a/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png and b/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png index f0af0823c..516f2024e 100644 Binary files a/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png and b/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png b/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png index 0ce89ce5f..224b0169c 100644 Binary files a/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png and b/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/frontend/src-tauri/icons/icon.png b/frontend/src-tauri/icons/icon.png index 873873487..5819d1b89 100644 Binary files a/frontend/src-tauri/icons/icon.png and b/frontend/src-tauri/icons/icon.png differ diff --git a/frontend/src-tauri/icons/ios/AppIcon-40x40@3x.png b/frontend/src-tauri/icons/ios/AppIcon-40x40@3x.png index 0d92e7534..d1d0ee368 100644 Binary files a/frontend/src-tauri/icons/ios/AppIcon-40x40@3x.png and b/frontend/src-tauri/icons/ios/AppIcon-40x40@3x.png differ diff --git a/frontend/src-tauri/icons/ios/AppIcon-512@2x.png b/frontend/src-tauri/icons/ios/AppIcon-512@2x.png index 92c5f82f2..346e4a702 100644 Binary files a/frontend/src-tauri/icons/ios/AppIcon-512@2x.png and b/frontend/src-tauri/icons/ios/AppIcon-512@2x.png differ diff --git a/frontend/src-tauri/icons/ios/AppIcon-60x60@2x.png b/frontend/src-tauri/icons/ios/AppIcon-60x60@2x.png index 0d92e7534..d1d0ee368 100644 Binary files a/frontend/src-tauri/icons/ios/AppIcon-60x60@2x.png and b/frontend/src-tauri/icons/ios/AppIcon-60x60@2x.png differ diff --git a/frontend/src-tauri/icons/ios/AppIcon-60x60@3x.png b/frontend/src-tauri/icons/ios/AppIcon-60x60@3x.png index e82ff75ba..5190cb21b 100644 Binary files a/frontend/src-tauri/icons/ios/AppIcon-60x60@3x.png and b/frontend/src-tauri/icons/ios/AppIcon-60x60@3x.png differ diff --git a/frontend/src-tauri/icons/ios/AppIcon-76x76@2x.png b/frontend/src-tauri/icons/ios/AppIcon-76x76@2x.png index fdbbafecd..4085fefa3 100644 Binary files a/frontend/src-tauri/icons/ios/AppIcon-76x76@2x.png and b/frontend/src-tauri/icons/ios/AppIcon-76x76@2x.png differ diff --git a/frontend/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/frontend/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png index c0665a5b8..2ad07a090 100644 Binary files a/frontend/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png and b/frontend/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png differ diff --git a/frontend/src/core/components/tools/getPdfInfo/sections/OtherSection.tsx b/frontend/src/core/components/tools/getPdfInfo/sections/OtherSection.tsx index e7eb8d8b3..3bc515a1a 100644 --- a/frontend/src/core/components/tools/getPdfInfo/sections/OtherSection.tsx +++ b/frontend/src/core/components/tools/getPdfInfo/sections/OtherSection.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Accordion, Stack, Text } from '@mantine/core'; import { useTranslation } from 'react-i18next'; -import type { PdfOtherInfo } from '@app/types/getPdfInfo'; +import type { PdfOtherInfo, PdfAttachmentInfo, PdfEmbeddedFileInfo } from '@app/types/getPdfInfo'; import SectionBlock from '@app/components/tools/getPdfInfo/shared/SectionBlock'; import ScrollableCodeBlock from '@app/components/tools/getPdfInfo/shared/ScrollableCodeBlock'; import { pdfInfoAccordionStyles } from '@app/components/tools/getPdfInfo/shared/accordionStyles'; @@ -11,6 +11,42 @@ interface OtherSectionProps { other?: PdfOtherInfo | null; } +const renderAttachmentsList = (attachments: PdfAttachmentInfo[] | undefined, emptyText: string) => { + if (!attachments || attachments.length === 0) return {emptyText}; + return ( + + {attachments.map((attachment, idx) => ( +
+ + {attachment.Name || 'Unnamed attachment'} + {attachment.Description && ` - ${attachment.Description}`} + {attachment.FileSize != null && ` (${attachment.FileSize} bytes)`} + +
+ ))} +
+ ); +}; + +const renderEmbeddedFilesList = (embeddedFiles: PdfEmbeddedFileInfo[] | undefined, emptyText: string) => { + if (!embeddedFiles || embeddedFiles.length === 0) return {emptyText}; + return ( + + {embeddedFiles.map((file, idx) => ( +
+ + {file.Name || 'Unnamed file'} + {file.FileSize != null && ` (${file.FileSize} bytes)`} + {file.MimeType && ` - ${file.MimeType}`} + {file.CreationDate && ` - Created: ${file.CreationDate}`} + {file.ModificationDate && ` - Modified: ${file.ModificationDate}`} + +
+ ))} +
+ ); +}; + const renderList = (arr: unknown[] | undefined, emptyText: string) => { if (!arr || arr.length === 0) return {emptyText}; return ( @@ -37,11 +73,11 @@ const OtherSection: React.FC = ({ anchorId, other }) => { {t('getPdfInfo.other.attachments', 'Attachments')} - {renderList(other?.Attachments, noneDetected)} + {renderAttachmentsList(other?.Attachments, noneDetected)} {t('getPdfInfo.other.embeddedFiles', 'Embedded Files')} - {renderList(other?.EmbeddedFiles, noneDetected)} + {renderEmbeddedFilesList(other?.EmbeddedFiles, noneDetected)} {t('getPdfInfo.other.javaScript', 'JavaScript')} diff --git a/frontend/src/core/components/tools/getPdfInfo/sections/PerPageSection.tsx b/frontend/src/core/components/tools/getPdfInfo/sections/PerPageSection.tsx index 4fd257cce..36bd7bf1c 100644 --- a/frontend/src/core/components/tools/getPdfInfo/sections/PerPageSection.tsx +++ b/frontend/src/core/components/tools/getPdfInfo/sections/PerPageSection.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Accordion, Stack, Text } from '@mantine/core'; import { useTranslation } from 'react-i18next'; -import type { PdfPerPageInfo, PdfPageInfo, PdfFontInfo } from '@app/types/getPdfInfo'; +import type { PdfPerPageInfo, PdfPageInfo, PdfFontInfo, PdfImageInfo } from '@app/types/getPdfInfo'; import SectionBlock from '@app/components/tools/getPdfInfo/shared/SectionBlock'; import KeyValueList from '@app/components/tools/getPdfInfo/shared/KeyValueList'; import { pdfInfoAccordionStyles } from '@app/components/tools/getPdfInfo/shared/accordionStyles'; @@ -11,6 +11,23 @@ interface PerPageSectionProps { perPage?: PdfPerPageInfo | null; } +const renderImagesList = (images: PdfImageInfo[] | undefined, emptyText: string) => { + if (!images || images.length === 0) return {emptyText}; + return ( + + {images.map((image, idx) => ( +
+ + {image.Name ? `${image.Name} ` : 'Image '} + ({image.Width}×{image.Height}px + {image.ColorSpace ? `, ${image.ColorSpace}` : ''}) + +
+ ))} +
+ ); +}; + const renderList = (arr: unknown[] | undefined, emptyText: string) => { if (!arr || arr.length === 0) return {emptyText}; return ( @@ -84,7 +101,7 @@ const PerPageSection: React.FC = ({ anchorId, perPage }) => )} {t('getPdfInfo.perPage.images', 'Images')} - {renderList(pageInfo?.Images, noneDetected)} + {renderImagesList(pageInfo?.Images, noneDetected)} {t('getPdfInfo.perPage.links', 'Links')} diff --git a/frontend/src/core/types/getPdfInfo.ts b/frontend/src/core/types/getPdfInfo.ts index f489cd99a..20442cebc 100644 --- a/frontend/src/core/types/getPdfInfo.ts +++ b/frontend/src/core/types/getPdfInfo.ts @@ -160,12 +160,16 @@ export interface PdfPerPageInfo { export interface PdfEmbeddedFileInfo { Name?: string; FileSize?: number; + MimeType?: string; + CreationDate?: string; + ModificationDate?: string; } /** Attachment info */ export interface PdfAttachmentInfo { Name?: string; Description?: string; + FileSize?: number; } /** JavaScript info */ diff --git a/images/custom-home-dark.png b/images/custom-home-dark.png index 0650d483d..446d05668 100644 Binary files a/images/custom-home-dark.png and b/images/custom-home-dark.png differ diff --git a/images/custom-home.png b/images/custom-home.png index 6e5ce0b46..3ae6e17e4 100644 Binary files a/images/custom-home.png and b/images/custom-home.png differ diff --git a/images/home-light.png b/images/home-light.png index d1ad1b335..4c2f29b30 100644 Binary files a/images/home-light.png and b/images/home-light.png differ diff --git a/images/home.png b/images/home.png index 1e67479d0..02dbdd590 100644 Binary files a/images/home.png and b/images/home.png differ