mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-11-01 01:21:18 +01:00 
			
		
		
		
	
							parent
							
								
									73f90885b4
								
							
						
					
					
						commit
						06a178cc03
					
				@ -4,8 +4,6 @@ import java.io.ByteArrayOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
import java.nio.file.Path;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.zip.ZipEntry;
 | 
			
		||||
import java.util.zip.ZipOutputStream;
 | 
			
		||||
 | 
			
		||||
@ -41,117 +39,137 @@ public class SplitPdfBySizeController {
 | 
			
		||||
                            + " if 10MB and each page is 1MB and you enter 2MB then 5 docs each 2MB (rounded so that it accepts 1.9MB but not 2.1MB) Input:PDF Output:ZIP-PDF Type:SISO")
 | 
			
		||||
    public ResponseEntity<byte[]> autoSplitPdf(@ModelAttribute SplitPdfBySizeOrCountRequest request)
 | 
			
		||||
            throws Exception {
 | 
			
		||||
        List<ByteArrayOutputStream> splitDocumentsBoas = new ArrayList<ByteArrayOutputStream>();
 | 
			
		||||
 | 
			
		||||
        MultipartFile file = request.getFileInput();
 | 
			
		||||
        PDDocument sourceDocument = Loader.loadPDF(file.getBytes());
 | 
			
		||||
 | 
			
		||||
        // 0 = size, 1 = page count, 2 = doc count
 | 
			
		||||
        int type = request.getSplitType();
 | 
			
		||||
        String value = request.getSplitValue();
 | 
			
		||||
 | 
			
		||||
        if (type == 0) { // Split by size
 | 
			
		||||
            long maxBytes = GeneralUtils.convertSizeToBytes(value);
 | 
			
		||||
            long currentSize = 0;
 | 
			
		||||
            PDDocument currentDoc = new PDDocument();
 | 
			
		||||
 | 
			
		||||
            for (PDPage page : sourceDocument.getPages()) {
 | 
			
		||||
                ByteArrayOutputStream pageOutputStream = new ByteArrayOutputStream();
 | 
			
		||||
                PDDocument tempDoc = new PDDocument();
 | 
			
		||||
                tempDoc.addPage(page);
 | 
			
		||||
                tempDoc.save(pageOutputStream);
 | 
			
		||||
                tempDoc.close();
 | 
			
		||||
 | 
			
		||||
                long pageSize = pageOutputStream.size();
 | 
			
		||||
                if (currentSize + pageSize > maxBytes) {
 | 
			
		||||
                    // Save and reset current document
 | 
			
		||||
                    splitDocumentsBoas.add(currentDocToByteArray(currentDoc));
 | 
			
		||||
                    currentDoc = new PDDocument();
 | 
			
		||||
                    currentSize = 0;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                currentDoc.addPage(page);
 | 
			
		||||
                currentSize += pageSize;
 | 
			
		||||
            }
 | 
			
		||||
            // Add the last document if it contains any pages
 | 
			
		||||
            if (currentDoc.getPages().getCount() != 0) {
 | 
			
		||||
                splitDocumentsBoas.add(currentDocToByteArray(currentDoc));
 | 
			
		||||
            }
 | 
			
		||||
        } else if (type == 1) { // Split by page count
 | 
			
		||||
            int pageCount = Integer.parseInt(value);
 | 
			
		||||
            int currentPageCount = 0;
 | 
			
		||||
            PDDocument currentDoc = new PDDocument();
 | 
			
		||||
 | 
			
		||||
            for (PDPage page : sourceDocument.getPages()) {
 | 
			
		||||
                currentDoc.addPage(page);
 | 
			
		||||
                currentPageCount++;
 | 
			
		||||
 | 
			
		||||
                if (currentPageCount == pageCount) {
 | 
			
		||||
                    // Save and reset current document
 | 
			
		||||
                    splitDocumentsBoas.add(currentDocToByteArray(currentDoc));
 | 
			
		||||
                    currentDoc = new PDDocument();
 | 
			
		||||
                    currentPageCount = 0;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            // Add the last document if it contains any pages
 | 
			
		||||
            if (currentDoc.getPages().getCount() != 0) {
 | 
			
		||||
                splitDocumentsBoas.add(currentDocToByteArray(currentDoc));
 | 
			
		||||
            }
 | 
			
		||||
        } else if (type == 2) { // Split by doc count
 | 
			
		||||
            int documentCount = Integer.parseInt(value);
 | 
			
		||||
            int totalPageCount = sourceDocument.getNumberOfPages();
 | 
			
		||||
            int pagesPerDocument = totalPageCount / documentCount;
 | 
			
		||||
            int extraPages = totalPageCount % documentCount;
 | 
			
		||||
            int currentPageIndex = 0;
 | 
			
		||||
 | 
			
		||||
            for (int i = 0; i < documentCount; i++) {
 | 
			
		||||
                PDDocument currentDoc = new PDDocument();
 | 
			
		||||
                int pagesToAdd = pagesPerDocument + (i < extraPages ? 1 : 0);
 | 
			
		||||
 | 
			
		||||
                for (int j = 0; j < pagesToAdd; j++) {
 | 
			
		||||
                    currentDoc.addPage(sourceDocument.getPage(currentPageIndex++));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                splitDocumentsBoas.add(currentDocToByteArray(currentDoc));
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            throw new IllegalArgumentException("Invalid argument for split type");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        sourceDocument.close();
 | 
			
		||||
 | 
			
		||||
        Path zipFile = Files.createTempFile("split_documents", ".zip");
 | 
			
		||||
        String filename =
 | 
			
		||||
                Filenames.toSimpleFileName(file.getOriginalFilename())
 | 
			
		||||
                        .replaceFirst("[.][^.]+$", "");
 | 
			
		||||
        byte[] data;
 | 
			
		||||
        byte[] data = null;
 | 
			
		||||
        try (ZipOutputStream zipOut = new ZipOutputStream(Files.newOutputStream(zipFile));
 | 
			
		||||
                PDDocument sourceDocument = Loader.loadPDF(file.getBytes())) {
 | 
			
		||||
 | 
			
		||||
        try (ZipOutputStream zipOut = new ZipOutputStream(Files.newOutputStream(zipFile))) {
 | 
			
		||||
            for (int i = 0; i < splitDocumentsBoas.size(); i++) {
 | 
			
		||||
                String fileName = filename + "_" + (i + 1) + ".pdf";
 | 
			
		||||
                ByteArrayOutputStream baos = splitDocumentsBoas.get(i);
 | 
			
		||||
                byte[] pdf = baos.toByteArray();
 | 
			
		||||
            int type = request.getSplitType();
 | 
			
		||||
            String value = request.getSplitValue();
 | 
			
		||||
 | 
			
		||||
                ZipEntry pdfEntry = new ZipEntry(fileName);
 | 
			
		||||
                zipOut.putNextEntry(pdfEntry);
 | 
			
		||||
                zipOut.write(pdf);
 | 
			
		||||
                zipOut.closeEntry();
 | 
			
		||||
            if (type == 0) {
 | 
			
		||||
                long maxBytes = GeneralUtils.convertSizeToBytes(value);
 | 
			
		||||
                handleSplitBySize(sourceDocument, maxBytes, zipOut, filename);
 | 
			
		||||
            } else if (type == 1) {
 | 
			
		||||
                int pageCount = Integer.parseInt(value);
 | 
			
		||||
                handleSplitByPageCount(sourceDocument, pageCount, zipOut, filename);
 | 
			
		||||
            } else if (type == 2) {
 | 
			
		||||
                int documentCount = Integer.parseInt(value);
 | 
			
		||||
                handleSplitByDocCount(sourceDocument, documentCount, zipOut, filename);
 | 
			
		||||
            } else {
 | 
			
		||||
                throw new IllegalArgumentException("Invalid argument for split type");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        } finally {
 | 
			
		||||
            data = Files.readAllBytes(zipFile);
 | 
			
		||||
            Files.delete(zipFile);
 | 
			
		||||
            Files.deleteIfExists(zipFile);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return WebResponseUtils.bytesToWebResponse(
 | 
			
		||||
                data, filename + ".zip", MediaType.APPLICATION_OCTET_STREAM);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private ByteArrayOutputStream currentDocToByteArray(PDDocument document) throws IOException {
 | 
			
		||||
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
 | 
			
		||||
        document.save(baos);
 | 
			
		||||
        document.close();
 | 
			
		||||
        return baos;
 | 
			
		||||
    private void handleSplitBySize(
 | 
			
		||||
            PDDocument sourceDocument, long maxBytes, ZipOutputStream zipOut, String baseFilename)
 | 
			
		||||
            throws IOException {
 | 
			
		||||
        long currentSize = 0;
 | 
			
		||||
        PDDocument currentDoc = new PDDocument();
 | 
			
		||||
        int fileIndex = 1;
 | 
			
		||||
 | 
			
		||||
        for (int pageIndex = 0; pageIndex < sourceDocument.getNumberOfPages(); pageIndex++) {
 | 
			
		||||
            PDPage page = sourceDocument.getPage(pageIndex);
 | 
			
		||||
            ByteArrayOutputStream pageOutputStream = new ByteArrayOutputStream();
 | 
			
		||||
 | 
			
		||||
            try (PDDocument tempDoc = new PDDocument()) {
 | 
			
		||||
                PDPage importedPage = tempDoc.importPage(page); // This creates a new PDPage object
 | 
			
		||||
                tempDoc.save(pageOutputStream);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            long pageSize = pageOutputStream.size();
 | 
			
		||||
            if (currentSize + pageSize > maxBytes) {
 | 
			
		||||
                if (currentDoc.getNumberOfPages() > 0) {
 | 
			
		||||
                    saveDocumentToZip(currentDoc, zipOut, baseFilename, fileIndex++);
 | 
			
		||||
                    currentDoc.close(); // Make sure to close the document
 | 
			
		||||
                    currentDoc = new PDDocument();
 | 
			
		||||
                    currentSize = 0;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            PDPage newPage = new PDPage(page.getCOSObject()); // Re-create the page
 | 
			
		||||
            currentDoc.addPage(newPage);
 | 
			
		||||
            currentSize += pageSize;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (currentDoc.getNumberOfPages() != 0) {
 | 
			
		||||
            saveDocumentToZip(currentDoc, zipOut, baseFilename, fileIndex++);
 | 
			
		||||
            currentDoc.close();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void handleSplitByPageCount(
 | 
			
		||||
            PDDocument sourceDocument, int pageCount, ZipOutputStream zipOut, String baseFilename)
 | 
			
		||||
            throws IOException {
 | 
			
		||||
        int currentPageCount = 0;
 | 
			
		||||
        PDDocument currentDoc = new PDDocument();
 | 
			
		||||
        int fileIndex = 1;
 | 
			
		||||
        for (PDPage page : sourceDocument.getPages()) {
 | 
			
		||||
            currentDoc.addPage(page);
 | 
			
		||||
            currentPageCount++;
 | 
			
		||||
 | 
			
		||||
            if (currentPageCount == pageCount) {
 | 
			
		||||
                // Save and reset current document
 | 
			
		||||
                saveDocumentToZip(currentDoc, zipOut, baseFilename, fileIndex++);
 | 
			
		||||
                currentDoc = new PDDocument();
 | 
			
		||||
                currentPageCount = 0;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // Add the last document if it contains any pages
 | 
			
		||||
        if (currentDoc.getPages().getCount() != 0) {
 | 
			
		||||
            saveDocumentToZip(currentDoc, zipOut, baseFilename, fileIndex++);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void handleSplitByDocCount(
 | 
			
		||||
            PDDocument sourceDocument,
 | 
			
		||||
            int documentCount,
 | 
			
		||||
            ZipOutputStream zipOut,
 | 
			
		||||
            String baseFilename)
 | 
			
		||||
            throws IOException {
 | 
			
		||||
        int totalPageCount = sourceDocument.getNumberOfPages();
 | 
			
		||||
        int pagesPerDocument = totalPageCount / documentCount;
 | 
			
		||||
        int extraPages = totalPageCount % documentCount;
 | 
			
		||||
        int currentPageIndex = 0;
 | 
			
		||||
        int fileIndex = 1;
 | 
			
		||||
        for (int i = 0; i < documentCount; i++) {
 | 
			
		||||
            PDDocument currentDoc = new PDDocument();
 | 
			
		||||
            int pagesToAdd = pagesPerDocument + (i < extraPages ? 1 : 0);
 | 
			
		||||
 | 
			
		||||
            for (int j = 0; j < pagesToAdd; j++) {
 | 
			
		||||
                currentDoc.addPage(sourceDocument.getPage(currentPageIndex++));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            saveDocumentToZip(currentDoc, zipOut, baseFilename, fileIndex++);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void saveDocumentToZip(
 | 
			
		||||
            PDDocument document, ZipOutputStream zipOut, String baseFilename, int index)
 | 
			
		||||
            throws IOException {
 | 
			
		||||
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
 | 
			
		||||
        document.save(outStream);
 | 
			
		||||
        document.close(); // Close the document to free resources
 | 
			
		||||
 | 
			
		||||
        // Create a new zip entry
 | 
			
		||||
        ZipEntry zipEntry = new ZipEntry(baseFilename + "_" + index + ".pdf");
 | 
			
		||||
        zipOut.putNextEntry(zipEntry);
 | 
			
		||||
        zipOut.write(outStream.toByteArray());
 | 
			
		||||
        zipOut.closeEntry();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -139,25 +139,29 @@ public class SanitizeController {
 | 
			
		||||
 | 
			
		||||
        for (PDPage page : allPages) {
 | 
			
		||||
            PDResources res = page.getResources();
 | 
			
		||||
 | 
			
		||||
            // Remove embedded files from the PDF
 | 
			
		||||
            res.getCOSObject().removeItem(COSName.getPDFName("EmbeddedFiles"));
 | 
			
		||||
            if (res != null && res.getCOSObject() != null) {
 | 
			
		||||
                res.getCOSObject().removeItem(COSName.getPDFName("EmbeddedFiles"));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void sanitizeMetadata(PDDocument document) {
 | 
			
		||||
        PDMetadata metadata = document.getDocumentCatalog().getMetadata();
 | 
			
		||||
        if (metadata != null) {
 | 
			
		||||
            document.getDocumentCatalog().setMetadata(null);
 | 
			
		||||
        if (document.getDocumentCatalog() != null) {
 | 
			
		||||
            PDMetadata metadata = document.getDocumentCatalog().getMetadata();
 | 
			
		||||
            if (metadata != null) {
 | 
			
		||||
                document.getDocumentCatalog().setMetadata(null);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void sanitizeLinks(PDDocument document) throws IOException {
 | 
			
		||||
        for (PDPage page : document.getPages()) {
 | 
			
		||||
            for (PDAnnotation annotation : page.getAnnotations()) {
 | 
			
		||||
                if (annotation instanceof PDAnnotationLink) {
 | 
			
		||||
                if (annotation != null && annotation instanceof PDAnnotationLink) {
 | 
			
		||||
                    PDAction action = ((PDAnnotationLink) annotation).getAction();
 | 
			
		||||
                    if (action instanceof PDActionLaunch || action instanceof PDActionURI) {
 | 
			
		||||
                    if (action != null
 | 
			
		||||
                            && (action instanceof PDActionLaunch
 | 
			
		||||
                                    || action instanceof PDActionURI)) {
 | 
			
		||||
                        ((PDAnnotationLink) annotation).setAction(null);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
@ -167,7 +171,11 @@ public class SanitizeController {
 | 
			
		||||
 | 
			
		||||
    private void sanitizeFonts(PDDocument document) {
 | 
			
		||||
        for (PDPage page : document.getPages()) {
 | 
			
		||||
            page.getResources().getCOSObject().removeItem(COSName.getPDFName("Font"));
 | 
			
		||||
            if (page != null
 | 
			
		||||
                    && page.getResources() != null
 | 
			
		||||
                    && page.getResources().getCOSObject() != null) {
 | 
			
		||||
                page.getResources().getCOSObject().removeItem(COSName.getPDFName("Font"));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=تنزيل الملف
 | 
			
		||||
settings.zipThreshold=ملفات مضغوطة عند تجاوز عدد الملفات التي تم تنزيلها
 | 
			
		||||
settings.signOut=Sign Out
 | 
			
		||||
settings.accountSettings=Account Settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Change Credentials
 | 
			
		||||
changeCreds.header=Update Your Account Details
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Изтегли файл
 | 
			
		||||
settings.zipThreshold=Архивирайте файловете, когато броят на изтеглените файлове надвишава
 | 
			
		||||
settings.signOut=Изход
 | 
			
		||||
settings.accountSettings=Настройки на акаунта
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Промяна на идентификационните данни
 | 
			
		||||
changeCreds.header=Актуализирайте данните за акаунта си
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Descarrega Arxiu
 | 
			
		||||
settings.zipThreshold=Comprimiu els fitxers quan el nombre de fitxers baixats superi
 | 
			
		||||
settings.signOut=Sortir
 | 
			
		||||
settings.accountSettings=Account Settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Change Credentials
 | 
			
		||||
changeCreds.header=Update Your Account Details
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Datei herunterladen
 | 
			
		||||
settings.zipThreshold=Dateien komprimieren, wenn die Anzahl der heruntergeladenen Dateien überschritten wird
 | 
			
		||||
settings.signOut=Abmelden
 | 
			
		||||
settings.accountSettings=Kontoeinstellungen
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Anmeldeinformationen ändern
 | 
			
		||||
changeCreds.header=Aktualisieren Sie Ihre Kontodaten
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Anzahl vertikaler Teiler eingeben
 | 
			
		||||
split-by-sections.submit=PDF teilen
 | 
			
		||||
split-by-sections.merge=In eine PDF zusammenfügen
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Lizenzen
 | 
			
		||||
licenses.title=Lizenzen von Drittanbietern
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Λήψη αρχείου
 | 
			
		||||
settings.zipThreshold=Αρχεία Zip όταν ο αριθμός των ληφθέντων αρχείων είναι πολύ μεγάλος
 | 
			
		||||
settings.signOut=Αποσύνδεση
 | 
			
		||||
settings.accountSettings=Ρυθμίσεις Λογαριασμού
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Αλλαγή Διαπιστευτηρίων
 | 
			
		||||
changeCreds.header=Ενημέρωση των λεπτομερειών του Λογαριασμού σας
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Εισαγάγετε τον αριθμό
 | 
			
		||||
split-by-sections.submit=Διαχωρισμός PDF
 | 
			
		||||
split-by-sections.merge=Συγχώνευση σε ένα PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Άδειες
 | 
			
		||||
licenses.title=3rd Party Άδειες
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Download file
 | 
			
		||||
settings.zipThreshold=Zip files when the number of downloaded files exceeds
 | 
			
		||||
settings.signOut=Sign Out
 | 
			
		||||
settings.accountSettings=Account Settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Change Credentials
 | 
			
		||||
changeCreds.header=Update Your Account Details
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Download file
 | 
			
		||||
settings.zipThreshold=Zip files when the number of downloaded files exceeds
 | 
			
		||||
settings.signOut=Sign Out
 | 
			
		||||
settings.accountSettings=Account Settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Change Credentials
 | 
			
		||||
changeCreds.header=Update Your Account Details
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Descargar el archivo
 | 
			
		||||
settings.zipThreshold=Archivos ZIP cuando excede el número de archivos descargados
 | 
			
		||||
settings.signOut=Desconectar
 | 
			
		||||
settings.accountSettings=Configuración de la cuenta
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Cambiar Credenciales
 | 
			
		||||
changeCreds.header=Actualice los detalles de su cuenta
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Introduzca el número de divisiones verti
 | 
			
		||||
split-by-sections.submit=Dividir PDF
 | 
			
		||||
split-by-sections.merge=Unir en Un PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licencias
 | 
			
		||||
licenses.title=Licencias de terceros
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Deskargatu fitxategia
 | 
			
		||||
settings.zipThreshold=ZIP fitxategiak deskargatutako fitxategi kopurua gainditzen denean
 | 
			
		||||
settings.signOut=Saioa itxi
 | 
			
		||||
settings.accountSettings=Kontuaren ezarpenak
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Change Credentials
 | 
			
		||||
changeCreds.header=Update Your Account Details
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Télécharger le fichier
 | 
			
		||||
settings.zipThreshold=Compresser les fichiers en ZIP lorsque le nombre de fichiers téléchargés dépasse
 | 
			
		||||
settings.signOut=Déconnexion
 | 
			
		||||
settings.accountSettings=Paramètres du compte
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Modifiez vos identifiants
 | 
			
		||||
changeCreds.header=Mettez à jour vos identifiants de connexion
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Entrer le nombre de divisions verticales
 | 
			
		||||
split-by-sections.submit=Diviser le PDF
 | 
			
		||||
split-by-sections.merge=Fusionner en un seul PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licences
 | 
			
		||||
licenses.title=Licences tierces
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=फ़ाइल डाउनलोड करें
 | 
			
		||||
settings.zipThreshold=जब डाउनलोड की गई फ़ाइलों की संख्या सीमा से अधिक हो
 | 
			
		||||
settings.signOut=साइन आउट
 | 
			
		||||
settings.accountSettings=खाता सेटिंग्स
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=क्रेडेंशियल बदलें
 | 
			
		||||
changeCreds.header=अपना खाता विवरण अपडेट करें
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=लंबवत विभाजन की
 | 
			
		||||
split-by-sections.submit=PDF को विभाजित करें
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Töltse le a fájlt
 | 
			
		||||
settings.zipThreshold=Fájlok tömörítése, ha a letöltött fájlok száma meghaladja
 | 
			
		||||
settings.signOut=Kijelentkezés
 | 
			
		||||
settings.accountSettings=Fiókbeállítások
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Hitelesítés megváltoztatása
 | 
			
		||||
changeCreds.header=Frissítse fiókadatait
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Adja meg a függőleges szakaszok számá
 | 
			
		||||
split-by-sections.submit=Felosztás
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Unduh berkas
 | 
			
		||||
settings.zipThreshold=Berkas zip ketika jumlah berkas yang diunduh melebihi
 | 
			
		||||
settings.signOut=Keluar
 | 
			
		||||
settings.accountSettings=Pengaturan Akun
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Ubah Kredensial
 | 
			
		||||
changeCreds.header=Perbarui Detail Akun Anda
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Input angka untuk pembagian vertikal
 | 
			
		||||
split-by-sections.submit=Pisahkan PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Scarica file
 | 
			
		||||
settings.zipThreshold=Comprimi file in .zip quando il numero di download supera
 | 
			
		||||
settings.signOut=Logout
 | 
			
		||||
settings.accountSettings=Impostazioni Account
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Cambia credenziali
 | 
			
		||||
changeCreds.header=Aggiorna i dettagli del tuo account
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Inserire il numero di divisioni verticali
 | 
			
		||||
split-by-sections.submit=Dividi PDF
 | 
			
		||||
split-by-sections.merge=Unisci in un unico PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenze
 | 
			
		||||
licenses.title=Licenze di terze parti
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=ファイルをダウンロード
 | 
			
		||||
settings.zipThreshold=このファイル数を超えたときにファイルを圧縮する
 | 
			
		||||
settings.signOut=サインアウト
 | 
			
		||||
settings.accountSettings=アカウント設定
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=資格情報の変更
 | 
			
		||||
changeCreds.header=アカウントの詳細を更新する
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=垂直方向の分割数を選択
 | 
			
		||||
split-by-sections.submit=分割
 | 
			
		||||
split-by-sections.merge=1 つの PDF に結合するかどうか
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=ライセンス
 | 
			
		||||
licenses.title=サードパーティライセンス
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=다운로드
 | 
			
		||||
settings.zipThreshold=다운로드한 파일 수가 초과된 경우 파일 압축하기
 | 
			
		||||
settings.signOut=로그아웃
 | 
			
		||||
settings.accountSettings=계정 설정
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=계정 정보 변경
 | 
			
		||||
changeCreds.header=계정 정보 업데이트
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=수직 분할 수를 입력합니다
 | 
			
		||||
split-by-sections.submit=PDF 분할
 | 
			
		||||
split-by-sections.merge=하나의 PDF로 병합
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=라이센스
 | 
			
		||||
licenses.title=제3자 라이선스
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Download bestand
 | 
			
		||||
settings.zipThreshold=Bestanden zippen wanneer het aantal gedownloade bestanden meer is dan
 | 
			
		||||
settings.signOut=Uitloggen
 | 
			
		||||
settings.accountSettings=Account instellingen
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Inloggegevens wijzigen
 | 
			
		||||
changeCreds.header=Werk je accountgegevens bij
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Voer het aantal verticale secties in
 | 
			
		||||
split-by-sections.submit=PDF splitsen
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenties
 | 
			
		||||
licenses.title=Licenties van derden
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Pobierz plik
 | 
			
		||||
settings.zipThreshold=Spakuj pliki, gdy liczba pobranych plików przekroczy
 | 
			
		||||
settings.signOut=Sign Out
 | 
			
		||||
settings.accountSettings=Account Settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Change Credentials
 | 
			
		||||
changeCreds.header=Update Your Account Details
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=⇬ Fazer download do arquivo
 | 
			
		||||
settings.zipThreshold=Compactar arquivos quando o número de arquivos baixados exceder
 | 
			
		||||
settings.signOut=Sign Out
 | 
			
		||||
settings.accountSettings=Account Settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Change Credentials
 | 
			
		||||
changeCreds.header=Update Your Account Details
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=⇬ Fazer download do ficheiro
 | 
			
		||||
settings.zipThreshold=Compactar ficheiros quando o número de ficheiros baixados exceder
 | 
			
		||||
settings.signOut=Terminar Sessão
 | 
			
		||||
settings.accountSettings=Configuração de Conta
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Alterar senha
 | 
			
		||||
changeCreds.header=Alterar dados da sua conta
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Introduza o número de divisões verticai
 | 
			
		||||
split-by-sections.submit=Dividir PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenças
 | 
			
		||||
licenses.title=Licenças de terceiros
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Descarcă fișierul
 | 
			
		||||
settings.zipThreshold=Împachetează fișierele când numărul de fișiere descărcate depășește
 | 
			
		||||
settings.signOut=Sign Out
 | 
			
		||||
settings.accountSettings=Account Settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Change Credentials
 | 
			
		||||
changeCreds.header=Update Your Account Details
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Загрузить файл
 | 
			
		||||
settings.zipThreshold=Zip-файлы, когда количество загруженных файлов превышает
 | 
			
		||||
settings.signOut=Выйти
 | 
			
		||||
settings.accountSettings=Настройки аккаунта
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Изменить учетные данные
 | 
			
		||||
changeCreds.header=Обновите данные вашей учетной записи
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Введите количество ве
 | 
			
		||||
split-by-sections.submit=Разделить PDF
 | 
			
		||||
split-by-sections.merge=Объединить в один PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Лицензии
 | 
			
		||||
licenses.title=Лицензии от третьих сторон
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Preuzmi fajl
 | 
			
		||||
settings.zipThreshold=Zipuj fajlove kada pređe broj preuzetih fajlova
 | 
			
		||||
settings.signOut=Odjava
 | 
			
		||||
settings.accountSettings=Podešavanja naloga
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Promeni pristupne podatke
 | 
			
		||||
changeCreds.header=Ažurirajte detalje svog naloga
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Unesite broj vertikalnih podele
 | 
			
		||||
split-by-sections.submit=Razdvoji PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Ladda ner fil
 | 
			
		||||
settings.zipThreshold=Zip-filer när antalet nedladdade filer överskrider
 | 
			
		||||
settings.signOut=Sign Out
 | 
			
		||||
settings.accountSettings=Account Settings
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Change Credentials
 | 
			
		||||
changeCreds.header=Update Your Account Details
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Enter number of vertical divisions
 | 
			
		||||
split-by-sections.submit=Split PDF
 | 
			
		||||
split-by-sections.merge=Merge Into One PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Licenses
 | 
			
		||||
licenses.title=3rd Party Licenses
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Dosyayı indir
 | 
			
		||||
settings.zipThreshold=İndirilen dosya sayısı şu değeri aştığında zip dosyası oluştur:
 | 
			
		||||
settings.signOut=Oturumu Kapat
 | 
			
		||||
settings.accountSettings=Hesap Ayarları
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Giriş Bilgilerini Değiştir
 | 
			
		||||
changeCreds.header=Hesap Detaylarınızı Güncelleyin
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Dikey bölme sayısını girin
 | 
			
		||||
split-by-sections.submit=PDF'yi Böl
 | 
			
		||||
split-by-sections.merge=Bir PDF'de Birleştirin
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Lisanslar
 | 
			
		||||
licenses.title=3. Taraf Lisansları
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
###########
 | 
			
		||||
# Generic #
 | 
			
		||||
###########
 | 
			
		||||
# the direction that the language is written (ltr = left to right, rtl = right to left)
 | 
			
		||||
# the direction that the language is written (ltr=left to right, rtl = right to left)
 | 
			
		||||
language.direction=ltr
 | 
			
		||||
 | 
			
		||||
pdfPrompt=Оберіть PDF(и)
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=Завантажити файл
 | 
			
		||||
settings.zipThreshold=Zip-файли, коли кількість завантажених файлів перевищує
 | 
			
		||||
settings.signOut=Вийти
 | 
			
		||||
settings.accountSettings=Налаштування акаунта
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=Змінити облікові дані
 | 
			
		||||
changeCreds.header=Оновіть дані вашого облікового запису
 | 
			
		||||
@ -132,6 +133,8 @@ changeCreds.newPassword=Новий пароль
 | 
			
		||||
changeCreds.confirmNewPassword=Підтвердіть новий пароль
 | 
			
		||||
changeCreds.submit=Надіслати зміни
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
account.title=Налаштування акаунта
 | 
			
		||||
account.accountSettings=Налаштування акаунта
 | 
			
		||||
account.adminSettings=Налаштування адміністратора - Перегляд і додавання користувачів
 | 
			
		||||
@ -152,6 +155,7 @@ account.webBrowserSettings=Налаштування веб-браузера
 | 
			
		||||
account.syncToBrowser=Синхронізувати обліковий запис -> Браузер
 | 
			
		||||
account.syncToAccount=Синхронізувати обліковий запис <- Браузер
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
adminUserSettings.title=Налаштування контролю користувача
 | 
			
		||||
adminUserSettings.header=Налаштування контролю користувача адміністратора
 | 
			
		||||
adminUserSettings.admin=Адміністратор
 | 
			
		||||
@ -244,12 +248,10 @@ home.changeMetadata.title=Змінити метадані
 | 
			
		||||
home.changeMetadata.desc=Змінити/видалити/додати метадані з документа PDF
 | 
			
		||||
changeMetadata.tags=Title,author,date,creation,time,publisher,producer,stats
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
home.fileToPDF.title=Конвертувати файл в PDF
 | 
			
		||||
home.fileToPDF.desc=Конвертуйте майже будь-який файл в PDF (DOCX, PNG, XLS, PPT, TXT та інші)
 | 
			
		||||
fileToPDF.tags=transformation,format,document,picture,slide,text,conversion,office,docs,word,excel,powerpoint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
home.ocr.title=OCR/Очищення сканування
 | 
			
		||||
home.ocr.desc=Очищення сканування та виявлення тексту на зображеннях у файлі PDF та повторне додавання його як текст.
 | 
			
		||||
ocr.tags=recognition,text,image,scan,read,identify,detection,editable
 | 
			
		||||
@ -403,12 +405,10 @@ home.overlay-pdfs.title=Накладення PDF
 | 
			
		||||
home.overlay-pdfs.desc=Накладення одного PDF поверх іншого PDF
 | 
			
		||||
overlay-pdfs.tags=Overlay
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
home.split-by-sections.title=Розділення PDF за секціями
 | 
			
		||||
home.split-by-sections.desc=Розділення кожної сторінки PDF на менші горизонтальні та вертикальні секції
 | 
			
		||||
split-by-sections.tags=Section Split, Divide, Customize
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
home.AddStampRequest.title=Додати печатку на PDF
 | 
			
		||||
home.AddStampRequest.desc=Додавання текстової або зображення печатки у вказані місця
 | 
			
		||||
AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize
 | 
			
		||||
@ -418,11 +418,11 @@ home.PDFToBook.title=PDF у книгу/комікс
 | 
			
		||||
home.PDFToBook.desc=Конвертує PDF у формат книги/комікса за допомогою calibre
 | 
			
		||||
PDFToBook.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
home.BookToPDF.title=Книга у PDF
 | 
			
		||||
home.BookToPDF.desc=Конвертує формати книги/комікса у PDF за допомогою calibre
 | 
			
		||||
BookToPDF.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
###########################
 | 
			
		||||
#                         #
 | 
			
		||||
#       WEB PAGES         #
 | 
			
		||||
@ -606,6 +606,7 @@ pageLayout.pagesPerSheet=Сторінок на одному аркуші:
 | 
			
		||||
pageLayout.addBorder=Додати рамки
 | 
			
		||||
pageLayout.submit=Відправити
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#scalePages
 | 
			
		||||
scalePages.title=Відрегулювати масштаб сторінки
 | 
			
		||||
scalePages.header=Відрегулювати масштаб сторінки
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=Введіть кількість вер
 | 
			
		||||
split-by-sections.submit=Розділити PDF
 | 
			
		||||
split-by-sections.merge=Об'єднати в один PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=Ліцензії
 | 
			
		||||
licenses.title=Ліцензії від третіх сторін
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=下载文件
 | 
			
		||||
settings.zipThreshold=当下载的文件数量超过限制时,将文件压缩。
 | 
			
		||||
settings.signOut=登出
 | 
			
		||||
settings.accountSettings=帐号设定
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=更改凭证
 | 
			
		||||
changeCreds.header=更新您的账户详情
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=输入垂直分割数
 | 
			
		||||
split-by-sections.submit=分割PDF
 | 
			
		||||
split-by-sections.merge=是否合并为一个pdf
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=许可证
 | 
			
		||||
licenses.title=第三方许可证
 | 
			
		||||
 | 
			
		||||
@ -120,8 +120,9 @@ settings.downloadOption.3=下載檔案
 | 
			
		||||
settings.zipThreshold=當下載的檔案數量超過時,壓縮檔案
 | 
			
		||||
settings.signOut=登出
 | 
			
		||||
settings.accountSettings=帳戶設定
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
settings.bored.help=Enables easter egg game
 | 
			
		||||
settings.cacheInputs.name=Save form inputs
 | 
			
		||||
settings.cacheInputs.help=Enable to store previously used inputs for future runs
 | 
			
		||||
 | 
			
		||||
changeCreds.title=變更憑證
 | 
			
		||||
changeCreds.header=更新您的帳戶詳細資訊
 | 
			
		||||
@ -1022,6 +1023,15 @@ split-by-sections.vertical.placeholder=輸入垂直劃分的數量
 | 
			
		||||
split-by-sections.submit=分割 PDF
 | 
			
		||||
split-by-sections.merge=是否合併為一個pdf
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#printFile
 | 
			
		||||
printFile.title=Print File
 | 
			
		||||
printFile.header=Print File to Printer
 | 
			
		||||
printFile.selectText.1=Select File to Print
 | 
			
		||||
printFile.selectText.2=Enter Printer Name
 | 
			
		||||
printFile.submit=Print
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#licenses
 | 
			
		||||
licenses.nav=許可證
 | 
			
		||||
licenses.title=第三方許可證
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										82
									
								
								src/main/resources/static/js/cacheFormInputs.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								src/main/resources/static/js/cacheFormInputs.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,82 @@
 | 
			
		||||
document.addEventListener("DOMContentLoaded", function() {
 | 
			
		||||
  
 | 
			
		||||
  var cacheInputs = localStorage.getItem("cacheInputs") || "disabled";
 | 
			
		||||
  if (cacheInputs !== "enabled") {
 | 
			
		||||
    return; // Stop execution if caching is not enabled
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  // Function to generate a key based on the form's action attribute
 | 
			
		||||
  function generateStorageKey(form) {
 | 
			
		||||
    const action = form.getAttribute('action');
 | 
			
		||||
    if (!action || action.length < 3) {
 | 
			
		||||
      return null; // Not a valid action, return null to skip processing
 | 
			
		||||
    }
 | 
			
		||||
    return 'formData_' + encodeURIComponent(action);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Function to save form data to localStorage
 | 
			
		||||
  function saveFormData(form) {
 | 
			
		||||
    const formKey = generateStorageKey(form);
 | 
			
		||||
    if (!formKey) return; // Skip if no valid key
 | 
			
		||||
 | 
			
		||||
    const formData = {};
 | 
			
		||||
    const elements = form.elements;
 | 
			
		||||
    for (let i = 0; i < elements.length; i++) {
 | 
			
		||||
      const element = elements[i];
 | 
			
		||||
      // Skip elements without names, passwords, files, hidden fields, and submit/reset buttons
 | 
			
		||||
      if (!element.name || 
 | 
			
		||||
          element.type === 'password' || 
 | 
			
		||||
          element.type === 'file' || 
 | 
			
		||||
          //element.type === 'hidden' || 
 | 
			
		||||
          element.type === 'submit' || 
 | 
			
		||||
          element.type === 'reset') {
 | 
			
		||||
        continue;
 | 
			
		||||
      }
 | 
			
		||||
      // Handle checkboxes: store only if checked
 | 
			
		||||
      if (element.type === 'checkbox') {
 | 
			
		||||
        if (element.checked) {
 | 
			
		||||
          formData[element.name] = element.value;
 | 
			
		||||
        } else {
 | 
			
		||||
          continue; // Skip unchecked boxes
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        // Skip saving empty values
 | 
			
		||||
        if (element.value === "" || element.value == null) {
 | 
			
		||||
          continue;
 | 
			
		||||
        }
 | 
			
		||||
        formData[element.name] = element.value;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    localStorage.setItem(formKey, JSON.stringify(formData));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Function to load form data from localStorage
 | 
			
		||||
  function loadFormData(form) {
 | 
			
		||||
    const formKey = generateStorageKey(form);
 | 
			
		||||
    if (!formKey) return; // Skip if no valid key
 | 
			
		||||
 | 
			
		||||
    const savedData = localStorage.getItem(formKey);
 | 
			
		||||
    if (savedData) {
 | 
			
		||||
      const formData = JSON.parse(savedData);
 | 
			
		||||
      for (const key in formData) {
 | 
			
		||||
        if (formData.hasOwnProperty(key) && form.elements[key]) {
 | 
			
		||||
          const element = form.elements[key];
 | 
			
		||||
          if (element.type === 'checkbox') {
 | 
			
		||||
            element.checked = true;
 | 
			
		||||
          } else {
 | 
			
		||||
            element.value = formData[key];
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Attach event listeners and load data for all forms
 | 
			
		||||
  const forms = document.querySelectorAll('form');
 | 
			
		||||
  forms.forEach(form => {
 | 
			
		||||
    form.addEventListener('submit', function(event) {
 | 
			
		||||
      saveFormData(form);
 | 
			
		||||
    });
 | 
			
		||||
    loadFormData(form);
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
@ -31,3 +31,12 @@ document.getElementById("boredWaiting").addEventListener("change", function () {
 | 
			
		||||
  boredWaiting = this.checked ? "enabled" : "disabled";
 | 
			
		||||
  localStorage.setItem("boredWaiting", boredWaiting);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
var cacheInputs = localStorage.getItem("cacheInputs") || "disabled";
 | 
			
		||||
document.getElementById("cacheInputs").checked = cacheInputs === "enabled";
 | 
			
		||||
 | 
			
		||||
document.getElementById("cacheInputs").addEventListener("change", function () {
 | 
			
		||||
  cacheInputs = this.checked ? "enabled" : "disabled";
 | 
			
		||||
  localStorage.setItem("cacheInputs", cacheInputs);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -60,7 +60,7 @@
 | 
			
		||||
 | 
			
		||||
    <!-- Help Modal -->
 | 
			
		||||
    <link rel="stylesheet" href="css/errorBanner.css">
 | 
			
		||||
 | 
			
		||||
	<script src="js/cacheFormInputs.js"></script>
 | 
			
		||||
    <script src="js/tab-container.js"></script>
 | 
			
		||||
    <script src="js/darkmode.js"></script>
 | 
			
		||||
  </th:block>
 | 
			
		||||
 | 
			
		||||
@ -210,9 +210,13 @@
 | 
			
		||||
                    <span id="zipThresholdValue" class="ms-2"></span>
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="mb-3 form-check">
 | 
			
		||||
                    <input type="checkbox" class="form-check-input" id="boredWaiting">
 | 
			
		||||
                    <input type="checkbox" class="form-check-input" id="boredWaiting" th:title="#{settings.bored.help}">
 | 
			
		||||
                    <label class="form-check-label" for="boredWaiting" th:text="#{bored}"></label>
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="mb-3 form-check">
 | 
			
		||||
                    <input type="checkbox" class="form-check-input" id="cacheInputs" th:title="#{settings.cacheInputs.help}">
 | 
			
		||||
                    <label class="form-check-label" for="cacheInputs" th:text="#{settings.cacheInputs.name}"></label>
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <a th:if="${@loginEnabled}" href="account" class="btn btn-sm btn-outline-primary" role="button" th:text="#{settings.accountSettings}" target="_blank">Account Settings</a>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="modal-footer">
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user