Booklet and server sign (#4371)

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: a <a>
Co-authored-by: ConnorYoh <[email protected]>
Co-authored-by: Reece Browne <[email protected]>
This commit is contained in:
Anthony Stirling
2025-09-23 11:24:48 +01:00
committed by GitHub
co-authored by Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> a <a> ConnorYoh Reece Browne
parent c76edebf0f
commit 46a4a978fc
36 changed files with 2447 additions and 61 deletions
+234 -46
View File
@@ -427,6 +427,10 @@
"title": "Flatten",
"desc": "Remove all interactive elements and forms from a PDF"
},
"certSign": {
"title": "Sign with Certificate",
"desc": "Signs a PDF with a Certificate/Key (PEM/P12)"
},
"repair": {
"title": "Repair",
"desc": "Tries to repair a corrupt/broken PDF"
@@ -443,10 +447,6 @@
"title": "Compare",
"desc": "Compares and shows the differences between 2 PDF Documents"
},
"certSign": {
"title": "Sign with Certificate",
"desc": "Signs a PDF with a Certificate/Key (PEM/P12)"
},
"removeCertSign": {
"title": "Remove Certificate Sign",
"desc": "Remove certificate signature from PDF"
@@ -455,6 +455,10 @@
"title": "Multi-Page Layout",
"desc": "Merge multiple pages of a PDF document into a single page"
},
"bookletImposition": {
"title": "Booklet Imposition",
"desc": "Create booklets with proper page ordering and multi-page layout for printing and binding"
},
"scalePages": {
"title": "Adjust page size/scale",
"desc": "Change the size/scale of a page and/or its contents."
@@ -1179,7 +1183,9 @@
},
"pageSelection": {
"tooltip": {
"header": { "title": "Page Selection Guide" },
"header": {
"title": "Page Selection Guide"
},
"basic": {
"title": "Basic Usage",
"text": "Select specific pages from your PDF document using simple syntax.",
@@ -1213,11 +1219,15 @@
"comma": "Comma: , or | — combine selections (e.g., 1-10, 20)",
"not": "NOT: ! or \"not\" — exclude pages (e.g., 3n & not 30)"
},
"examples": { "title": "Examples" }
"examples": {
"title": "Examples"
}
}
},
"bulkSelection": {
"header": { "title": "Page Selection Guide" },
"header": {
"title": "Page Selection Guide"
},
"syntax": {
"title": "Syntax Basics",
"text": "Use numbers, ranges, keywords, and progressions (n starts at 0). Parentheses are supported.",
@@ -1769,23 +1779,124 @@
}
},
"certSign": {
"tags": "authenticate,PEM,P12,official,encrypt",
"tags": "authenticate,PEM,P12,official,encrypt,sign,certificate,PKCS12,JKS,server,manual,auto",
"title": "Certificate Signing",
"header": "Sign a PDF with your certificate (Work in progress)",
"selectPDF": "Select a PDF File for Signing:",
"jksNote": "Note: If your certificate type is not listed below, please convert it to a Java Keystore (.jks) file using the keytool command line tool. Then, choose the .jks file option below.",
"selectKey": "Select Your Private Key File (PKCS#8 format, could be .pem or .der):",
"selectCert": "Select Your Certificate File (X.509 format, could be .pem or .der):",
"selectP12": "Select Your PKCS#12 Keystore File (.p12 or .pfx) (Optional, If provided, it should contain your private key and certificate):",
"selectJKS": "Select Your Java Keystore File (.jks or .keystore):",
"certType": "Certificate Type",
"password": "Enter Your Keystore or Private Key Password (If Any):",
"showSig": "Show Signature",
"reason": "Reason",
"location": "Location",
"name": "Name",
"showLogo": "Show Logo",
"submit": "Sign PDF"
"filenamePrefix": "signed",
"signMode": {
"stepTitle": "Sign Mode",
"tooltip": {
"header": {
"title": "About PDF Signatures"
},
"overview": {
"title": "How signatures work",
"text": "Both modes seal the document (any edits are flagged as tampering) and record who/when/how for auditing. Viewer trust depends on the certificate chain."
},
"manual": {
"title": "Manual - Bring your certificate",
"text": "Use your own certificate files for brand-aligned identity. Can display <b>Trusted</b> when your CA/chain is recognised.",
"use": "Use for: customer-facing, legal, compliance."
},
"auto": {
"title": "Auto - Zero-setup, instant system seal",
"text": "Signs with a server <b>self-signed</b> certificate. Same <b>tamper-evident seal</b> and <b>audit trail</b>; typically shows <b>Unverified</b> in viewers.",
"use": "Use when: you need speed and consistent internal identity across reviews and records."
},
"rule": {
"title": "Rule of thumb",
"text": "Need recipient <b>Trusted</b> status? <b>Manual</b>. Need a fast, tamper-evident seal and audit trail with no setup? <b>Auto</b>."
}
}
},
"certTypeStep": {
"stepTitle": "Certificate Format"
},
"certFiles": {
"stepTitle": "Certificate Files"
},
"appearance": {
"stepTitle": "Signature Appearance",
"tooltip": {
"header": {
"title": "About Signature Appearance"
},
"invisible": {
"title": "Invisible Signatures",
"text": "The signature is added to the PDF for security but won't be visible when viewing the document. Perfect for legal requirements without changing the document's appearance.",
"bullet1": "Provides security without visual changes",
"bullet2": "Meets legal requirements for digital signing",
"bullet3": "Doesn't affect document layout or design"
},
"visible": {
"title": "Visible Signatures",
"text": "Shows a signature block on the PDF with your name, date, and optional details. Useful when you want readers to clearly see the document is signed.",
"bullet1": "Shows signer name and date on the document",
"bullet2": "Can include reason and location for signing",
"bullet3": "Choose which page to place the signature",
"bullet4": "Optional logo can be included"
}
}
},
"sign": {
"submit": "Sign PDF",
"results": "Signed PDF"
},
"error": {
"failed": "An error occurred whilst processing signatures."
},
"tooltip": {
"header": {
"title": "About Managing Signatures"
},
"overview": {
"title": "What can this tool do?",
"text": "This tool lets you check if your PDFs are digitally signed and add new digital signatures. Digital signatures prove who created or approved a document and show if it has been changed since signing.",
"bullet1": "Check existing signatures and their validity",
"bullet2": "View detailed information about signers and certificates",
"bullet3": "Add new digital signatures to secure your documents",
"bullet4": "Multiple files supported with easy navigation"
},
"validation": {
"title": "Checking Signatures",
"text": "When you check signatures, the tool tells you if they're valid, who signed the document, when it was signed, and whether the document has been changed since signing.",
"bullet1": "Shows if signatures are valid or invalid",
"bullet2": "Displays signer information and signing date",
"bullet3": "Checks if the document was modified after signing",
"bullet4": "Can use custom certificates for verification"
},
"signing": {
"title": "Adding Signatures",
"text": "To sign a PDF, you need a digital certificate (like PEM, PKCS12, or JKS). You can choose to make the signature visible on the document or keep it invisible for security only.",
"bullet1": "Supports PEM, PKCS12, JKS, and server certificate formats",
"bullet2": "Option to show or hide signature on the PDF",
"bullet3": "Add reason, location, and signer name",
"bullet4": "Choose which page to place visible signatures",
"bullet5": "Use server certificate for simple 'Sign with Stirling-PDF' option"
}
},
"certType": {
"tooltip": {
"header": {
"title": "About Certificate Types"
},
"what": {
"title": "What's a certificate?",
"text": "It's a secure ID for your signature that proves you signed. Unless you're required to sign via certificate, we recommend using another secure method like Type, Draw, or Upload."
},
"which": {
"title": "Which option should I use?",
"text": "Choose the format that matches your certificate file:",
"bullet1": "PKCS#12 (.p12 / .pfx) one combined file (most common)",
"bullet2": "PFX (.pfx) Microsoft's version of PKCS12",
"bullet3": "PEM separate private-key and certificate .pem files",
"bullet4": "JKS Java .jks keystore for dev / CI-CD workflows"
},
"convert": {
"title": "Key not listed?",
"text": "Convert your file to a Java keystore (.jks) with keytool, then pick JKS."
}
}
}
},
"removeCertSign": {
"tags": "authenticate,PEM,P12,official,decrypt",
@@ -1813,6 +1924,99 @@
"addBorder": "Add Borders",
"submit": "Submit"
},
"bookletImposition": {
"tags": "booklet,imposition,printing,binding,folding,signature",
"title": "Booklet Imposition",
"header": "Booklet Imposition",
"submit": "Create Booklet",
"spineLocation": {
"label": "Spine Location",
"left": "Left (Standard)",
"right": "Right (RTL)"
},
"doubleSided": {
"label": "Double-sided printing",
"tooltip": "Creates both front and back sides for proper booklet printing"
},
"manualDuplex": {
"title": "Manual Duplex Mode",
"instructions": "For printers without automatic duplex. You'll need to run this twice:"
},
"duplexPass": {
"label": "Print Pass",
"first": "1st Pass",
"second": "2nd Pass",
"firstInstructions": "Prints front sides → stack face-down → run again with 2nd Pass",
"secondInstructions": "Load printed stack face-down → prints back sides"
},
"rtlBinding": {
"label": "Right-to-left binding",
"tooltip": "For Arabic, Hebrew, or other right-to-left languages"
},
"addBorder": {
"label": "Add borders around pages",
"tooltip": "Adds borders around each page section to help with cutting and alignment"
},
"addGutter": {
"label": "Add gutter margin",
"tooltip": "Adds inner margin space for binding"
},
"gutterSize": {
"label": "Gutter size (points)"
},
"flipOnShortEdge": {
"label": "Flip on short edge (automatic duplex only)",
"tooltip": "Enable for short-edge duplex printing (automatic duplex only - ignored in manual mode)",
"manualNote": "Not needed in manual mode - you flip the stack yourself"
},
"advanced": {
"toggle": "Advanced Options"
},
"paperSizeNote": "Paper size is automatically derived from your first page.",
"tooltip": {
"header": {
"title": "Booklet Creation Guide"
},
"description": {
"title": "What is Booklet Imposition?",
"text": "Creates professional booklets by arranging pages in the correct printing order. Your PDF pages are placed 2-up on landscape sheets so when folded and bound, they read in proper sequence like a real book."
},
"example": {
"title": "Example: 8-Page Booklet",
"text": "Your 8-page document becomes 2 sheets:",
"bullet1": "Sheet 1 Front: Pages 8, 1 | Back: Pages 2, 7",
"bullet2": "Sheet 2 Front: Pages 6, 3 | Back: Pages 4, 5",
"bullet3": "When folded & stacked: Reads 1→2→3→4→5→6→7→8"
},
"printing": {
"title": "How to Print & Assemble",
"text": "Follow these steps for perfect booklets:",
"bullet1": "Print double-sided with 'Flip on long edge'",
"bullet2": "Stack sheets in order, fold in half",
"bullet3": "Staple or bind along the folded spine",
"bullet4": "For short-edge printers: Enable 'Flip on short edge' option"
},
"manualDuplex": {
"title": "Manual Duplex (Single-sided Printers)",
"text": "For printers without automatic duplex:",
"bullet1": "Turn OFF 'Double-sided printing'",
"bullet2": "Select '1st Pass' → Print → Stack face-down",
"bullet3": "Select '2nd Pass' → Load stack → Print backs",
"bullet4": "Fold and assemble as normal"
},
"advanced": {
"title": "Advanced Options",
"text": "Fine-tune your booklet:",
"bullet1": "Right-to-Left Binding: For Arabic, Hebrew, or RTL languages",
"bullet2": "Borders: Shows cut lines for trimming",
"bullet3": "Gutter Margin: Adds space for binding/stapling",
"bullet4": "Short-edge Flip: Only for automatic duplex printers"
}
},
"error": {
"failed": "An error occurred while creating the booklet imposition."
}
},
"scalePages": {
"title": "Adjust page-scale",
"header": "Adjust page-scale",
@@ -2566,20 +2770,14 @@
"actualSize": "Actual Size"
},
"viewer": {
"noPdfLoaded": "No PDF loaded. Click to upload a PDF.",
"choosePdf": "Choose PDF",
"noPagesToDisplay": "No pages to display.",
"singlePageView": "Single Page View",
"dualPageView": "Dual Page View",
"hideSidebars": "Hide Sidebars",
"showSidebars": "Show Sidebars",
"zoomOut": "Zoom out",
"zoomIn": "Zoom in",
"firstPage": "First Page",
"lastPage": "Last Page",
"previousPage": "Previous Page",
"nextPage": "Next Page",
"pageNavigation": "Page Navigation",
"currentPage": "Current Page",
"totalPages": "Total Pages"
"zoomIn": "Zoom In",
"zoomOut": "Zoom Out",
"singlePageView": "Single Page View",
"dualPageView": "Dual Page View"
},
"rightRail": {
"closeSelected": "Close Selected Files",
@@ -2963,15 +3161,5 @@
"processImages": "Process Images",
"processImagesDesc": "Converts multiple image files into a single PDF document, then applies OCR technology to extract searchable text from the images."
}
},
"viewer": {
"firstPage": "First Page",
"lastPage": "Last Page",
"previousPage": "Previous Page",
"nextPage": "Next Page",
"zoomIn": "Zoom In",
"zoomOut": "Zoom Out",
"singlePageView": "Single Page View",
"dualPageView": "Dual Page View"
}
}
}
@@ -495,6 +495,10 @@
"title": "Multi-Page Layout",
"desc": "Merge multiple pages of a PDF document into a single page"
},
"bookletImposition": {
"title": "Booklet Imposition",
"desc": "Create booklets with proper page ordering and multi-page layout for printing and binding"
},
"scalePages": {
"title": "Adjust page size/scale",
"desc": "Change the size/scale of a page and/or its contents."
@@ -1230,6 +1234,17 @@
"addBorder": "Add Borders",
"submit": "Submit"
},
"bookletImposition": {
"tags": "booklet,imposition,printing,binding,folding,signature",
"title": "Booklet Imposition",
"header": "Booklet Imposition",
"submit": "Create Booklet",
"files": {
},
"error": {
"failed": "An error occurred while creating the booklet imposition."
}
},
"scalePages": {
"tags": "resize,modify,dimension,adapt",
"title": "Adjust page-scale",