mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-10-25 11:17:28 +02:00 
			
		
		
		
	Merge branch 'main' of https://github.com/michelheusschen/Stirling-PDF into update-dutch-translation
This commit is contained in:
		
						commit
						46abae9acc
					
				| @ -12,7 +12,7 @@ plugins { | ||||
| import com.github.jk1.license.render.* | ||||
| 
 | ||||
| group = 'stirling.software' | ||||
| version = '0.20.0' | ||||
| version = '0.20.1' | ||||
| sourceCompatibility = '17' | ||||
| 
 | ||||
| repositories { | ||||
|  | ||||
| @ -21,7 +21,7 @@ services: | ||||
|     environment: | ||||
|       DOCKER_ENABLE_SECURITY: "true" | ||||
|       SECURITY_ENABLELOGIN: "true" | ||||
|       SYSTEM_DEFAULTLOCALE: en_US | ||||
|       SYSTEM_DEFAULTLOCALE: en-US | ||||
|       UI_APPNAME: Stirling-PDF-Lite | ||||
|       UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest with Security | ||||
|       UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest | ||||
|  | ||||
| @ -20,7 +20,7 @@ services: | ||||
|     environment: | ||||
|       DOCKER_ENABLE_SECURITY: "false" | ||||
|       SECURITY_ENABLELOGIN: "false" | ||||
|       SYSTEM_DEFAULTLOCALE: en_US | ||||
|       SYSTEM_DEFAULTLOCALE: en-US | ||||
|       UI_APPNAME: Stirling-PDF-Lite | ||||
|       UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest | ||||
|       UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest | ||||
|  | ||||
| @ -21,7 +21,7 @@ services: | ||||
|     environment: | ||||
|       DOCKER_ENABLE_SECURITY: "true" | ||||
|       SECURITY_ENABLELOGIN: "true" | ||||
|       SYSTEM_DEFAULTLOCALE: en_US | ||||
|       SYSTEM_DEFAULTLOCALE: en-US | ||||
|       UI_APPNAME: Stirling-PDF | ||||
|       UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest with Security | ||||
|       UI_APPNAMENAVBAR: Stirling-PDF Latest | ||||
|  | ||||
| @ -21,7 +21,7 @@ services: | ||||
|     environment: | ||||
|       DOCKER_ENABLE_SECURITY: "true" | ||||
|       SECURITY_ENABLELOGIN: "true" | ||||
|       SYSTEM_DEFAULTLOCALE: en_US | ||||
|       SYSTEM_DEFAULTLOCALE: en-US | ||||
|       UI_APPNAME: Stirling-PDF-Lite | ||||
|       UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest with Security | ||||
|       UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest | ||||
|  | ||||
| @ -20,7 +20,7 @@ services: | ||||
|     environment: | ||||
|       DOCKER_ENABLE_SECURITY: "false" | ||||
|       SECURITY_ENABLELOGIN: "false" | ||||
|       SYSTEM_DEFAULTLOCALE: en_US | ||||
|       SYSTEM_DEFAULTLOCALE: en-US | ||||
|       UI_APPNAME: Stirling-PDF-Ultra-lite | ||||
|       UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Ultra-lite Latest | ||||
|       UI_APPNAMENAVBAR: Stirling-PDF-Ultra-lite Latest | ||||
|  | ||||
| @ -21,7 +21,7 @@ services: | ||||
|     environment: | ||||
|       DOCKER_ENABLE_SECURITY: "false" | ||||
|       SECURITY_ENABLELOGIN: "false" | ||||
|       SYSTEM_DEFAULTLOCALE: en_US | ||||
|       SYSTEM_DEFAULTLOCALE: en-US | ||||
|       UI_APPNAME: Stirling-PDF | ||||
|       UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest | ||||
|       UI_APPNAMENAVBAR: Stirling-PDF Latest | ||||
|  | ||||
| @ -12,7 +12,7 @@ import org.springframework.web.multipart.MultipartFile; | ||||
| import io.swagger.v3.oas.annotations.Operation; | ||||
| import io.swagger.v3.oas.annotations.tags.Tag; | ||||
| 
 | ||||
| import stirling.software.SPDF.model.api.GeneralFile; | ||||
| import stirling.software.SPDF.model.api.converters.HTMLToPdfRequest; | ||||
| import stirling.software.SPDF.utils.FileToPdf; | ||||
| import stirling.software.SPDF.utils.WebResponseUtils; | ||||
| 
 | ||||
| @ -30,7 +30,8 @@ public class ConvertHtmlToPDF { | ||||
|             summary = "Convert an HTML or ZIP (containing HTML and CSS) to PDF", | ||||
|             description = | ||||
|                     "This endpoint takes an HTML or ZIP file input and converts it to a PDF format.") | ||||
|     public ResponseEntity<byte[]> HtmlToPdf(@ModelAttribute GeneralFile request) throws Exception { | ||||
|     public ResponseEntity<byte[]> HtmlToPdf(@ModelAttribute HTMLToPdfRequest request) | ||||
|             throws Exception { | ||||
|         MultipartFile fileInput = request.getFileInput(); | ||||
| 
 | ||||
|         if (fileInput == null) { | ||||
| @ -45,7 +46,7 @@ public class ConvertHtmlToPDF { | ||||
|         } | ||||
|         byte[] pdfBytes = | ||||
|                 FileToPdf.convertHtmlToPdf( | ||||
|                         fileInput.getBytes(), originalFilename, htmlFormatsInstalled); | ||||
|                         request, fileInput.getBytes(), originalFilename, htmlFormatsInstalled); | ||||
| 
 | ||||
|         String outputFilename = | ||||
|                 originalFilename.replaceFirst("[.][^.]+$", "") | ||||
|  | ||||
| @ -96,7 +96,7 @@ public class ConvertImgPDFController { | ||||
|     @Operation( | ||||
|             summary = "Convert images to a PDF file", | ||||
|             description = | ||||
|                     "This endpoint converts one or more images to a PDF file. Users can specify whether to stretch the images to fit the PDF page, and whether to automatically rotate the images. Input:Image Output:PDF Type:SISO?") | ||||
|                     "This endpoint converts one or more images to a PDF file. Users can specify whether to stretch the images to fit the PDF page, and whether to automatically rotate the images. Input:Image Output:PDF Type:MISO") | ||||
|     public ResponseEntity<byte[]> convertToPdf(@ModelAttribute ConvertToPdfRequest request) | ||||
|             throws IOException { | ||||
|         MultipartFile[] file = request.getFileInput(); | ||||
|  | ||||
| @ -39,7 +39,7 @@ public class ConvertMarkdownToPdf { | ||||
|     @Operation( | ||||
|             summary = "Convert a Markdown file to PDF", | ||||
|             description = | ||||
|                     "This endpoint takes a Markdown file input, converts it to HTML, and then to PDF format.") | ||||
|                     "This endpoint takes a Markdown file input, converts it to HTML, and then to PDF format. Input:MARKDOWN Output:PDF Type:SISO") | ||||
|     public ResponseEntity<byte[]> markdownToPdf(@ModelAttribute GeneralFile request) | ||||
|             throws Exception { | ||||
|         MultipartFile fileInput = request.getFileInput(); | ||||
| @ -68,7 +68,7 @@ public class ConvertMarkdownToPdf { | ||||
| 
 | ||||
|         byte[] pdfBytes = | ||||
|                 FileToPdf.convertHtmlToPdf( | ||||
|                         htmlContent.getBytes(), "converted.html", htmlFormatsInstalled); | ||||
|                         null, htmlContent.getBytes(), "converted.html", htmlFormatsInstalled); | ||||
| 
 | ||||
|         String outputFilename = | ||||
|                 originalFilename.replaceFirst("[.][^.]+$", "") | ||||
|  | ||||
| @ -43,6 +43,7 @@ import stirling.software.SPDF.utils.WebResponseUtils; | ||||
| public class AutoSplitPdfController { | ||||
| 
 | ||||
|     private static final String QR_CONTENT = "https://github.com/Stirling-Tools/Stirling-PDF"; | ||||
|     private static final String QR_CONTENT_OLD = "https://github.com/Frooodle/Stirling-PDF"; | ||||
| 
 | ||||
|     @PostMapping(value = "/auto-split-pdf", consumes = "multipart/form-data") | ||||
|     @Operation( | ||||
| @ -63,12 +64,11 @@ public class AutoSplitPdfController { | ||||
|         for (int page = 0; page < document.getNumberOfPages(); ++page) { | ||||
|             BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 150); | ||||
|             String result = decodeQRCode(bim); | ||||
| 
 | ||||
|             if (QR_CONTENT.equals(result) && page != 0) { | ||||
|             if ((QR_CONTENT.equals(result) || QR_CONTENT_OLD.equals(result)) && page != 0) { | ||||
|                 splitDocuments.add(new PDDocument()); | ||||
|             } | ||||
| 
 | ||||
|             if (!splitDocuments.isEmpty() && !QR_CONTENT.equals(result)) { | ||||
|             if (!splitDocuments.isEmpty() && !QR_CONTENT.equals(result) && !QR_CONTENT_OLD.equals(result)) { | ||||
|                 splitDocuments.get(splitDocuments.size() - 1).addPage(document.getPage(page)); | ||||
|             } else if (page == 0) { | ||||
|                 PDDocument firstDocument = new PDDocument(); | ||||
| @ -77,7 +77,7 @@ public class AutoSplitPdfController { | ||||
|             } | ||||
| 
 | ||||
|             // If duplexMode is true and current page is a divider, then skip next page | ||||
|             if (duplexMode && QR_CONTENT.equals(result)) { | ||||
|             if (duplexMode && (QR_CONTENT.equals(result) || QR_CONTENT_OLD.equals(result))) { | ||||
|                 page++; | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @ -29,7 +29,6 @@ import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.bind.annotation.ModelAttribute; | ||||
| import org.springframework.web.bind.annotation.PostMapping; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
| import org.springframework.web.multipart.MultipartFile; | ||||
| @ -50,7 +49,7 @@ public class FakeScanControllerWIP { | ||||
| 
 | ||||
|     // TODO | ||||
|     @Hidden | ||||
|     @PostMapping(consumes = "multipart/form-data", value = "/fakeScan") | ||||
|     // @PostMapping(consumes = "multipart/form-data", value = "/fakeScan") | ||||
|     @Operation( | ||||
|             summary = "Repair a PDF file", | ||||
|             description = | ||||
|  | ||||
| @ -30,7 +30,7 @@ public class OverlayImageController { | ||||
|     @Operation( | ||||
|             summary = "Overlay image onto a PDF file", | ||||
|             description = | ||||
|                     "This endpoint overlays an image onto a PDF file at the specified coordinates. The image can be overlaid on every page of the PDF if specified.  Input:PDF/IMAGE Output:PDF Type:MF-SISO") | ||||
|                     "This endpoint overlays an image onto a PDF file at the specified coordinates. The image can be overlaid on every page of the PDF if specified.  Input:PDF/IMAGE Output:PDF Type:SISO") | ||||
|     public ResponseEntity<byte[]> overlayImage(@ModelAttribute OverlayImageRequest request) { | ||||
|         MultipartFile pdfFile = request.getFileInput(); | ||||
|         MultipartFile imageFile = request.getImageFile(); | ||||
|  | ||||
| @ -0,0 +1,311 @@ | ||||
| package stirling.software.SPDF.controller.api.misc; | ||||
| 
 | ||||
| import java.awt.Color; | ||||
| import java.awt.image.BufferedImage; | ||||
| import java.io.File; | ||||
| import java.io.FileOutputStream; | ||||
| import java.io.IOException; | ||||
| import java.io.InputStream; | ||||
| 
 | ||||
| import javax.imageio.ImageIO; | ||||
| 
 | ||||
| import org.apache.commons.io.IOUtils; | ||||
| import org.apache.pdfbox.Loader; | ||||
| import org.apache.pdfbox.pdmodel.PDDocument; | ||||
| import org.apache.pdfbox.pdmodel.PDPage; | ||||
| import org.apache.pdfbox.pdmodel.PDPageContentStream; | ||||
| import org.apache.pdfbox.pdmodel.common.PDRectangle; | ||||
| import org.apache.pdfbox.pdmodel.font.PDFont; | ||||
| import org.apache.pdfbox.pdmodel.font.PDType0Font; | ||||
| import org.apache.pdfbox.pdmodel.font.PDType1Font; | ||||
| import org.apache.pdfbox.pdmodel.font.Standard14Fonts; | ||||
| import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory; | ||||
| import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; | ||||
| import org.apache.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState; | ||||
| import org.apache.pdfbox.util.Matrix; | ||||
| import org.springframework.core.io.ClassPathResource; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.bind.annotation.ModelAttribute; | ||||
| import org.springframework.web.bind.annotation.PostMapping; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
| import org.springframework.web.multipart.MultipartFile; | ||||
| 
 | ||||
| import io.swagger.v3.oas.annotations.Operation; | ||||
| import io.swagger.v3.oas.annotations.tags.Tag; | ||||
| 
 | ||||
| import stirling.software.SPDF.model.api.misc.AddStampRequest; | ||||
| import stirling.software.SPDF.utils.WebResponseUtils; | ||||
| 
 | ||||
| @RestController | ||||
| @RequestMapping("/api/v1/misc") | ||||
| @Tag(name = "Misc", description = "Miscellaneous APIs") | ||||
| public class StampController { | ||||
| 
 | ||||
|     @PostMapping(consumes = "multipart/form-data", value = "/add-stamp") | ||||
|     @Operation( | ||||
|             summary = "Add stamp to a PDF file", | ||||
|             description = | ||||
|                     "This endpoint adds a stamp to a given PDF file. Users can specify the watermark type (text or image), rotation, opacity, width spacer, and height spacer. Input:PDF Output:PDF Type:SISO") | ||||
|     public ResponseEntity<byte[]> addStamp(@ModelAttribute AddStampRequest request) | ||||
|             throws IOException, Exception { | ||||
|         MultipartFile pdfFile = request.getFileInput(); | ||||
|         String watermarkType = request.getStampType(); | ||||
|         String watermarkText = request.getStampText(); | ||||
|         MultipartFile watermarkImage = request.getStampImage(); | ||||
|         String alphabet = request.getAlphabet(); | ||||
|         float fontSize = request.getFontSize(); | ||||
|         float rotation = request.getRotation(); | ||||
|         float opacity = request.getOpacity(); | ||||
|         int position = request.getPosition(); // Updated to use 1-9 positioning logic | ||||
|         float overrideX = request.getOverrideX(); // New field for X override | ||||
|         float overrideY = request.getOverrideY(); // New field for Y override | ||||
| 
 | ||||
|         String customColor = request.getCustomColor(); | ||||
|         float marginFactor; | ||||
|         switch (request.getCustomMargin().toLowerCase()) { | ||||
|             case "small": | ||||
|                 marginFactor = 0.02f; | ||||
|                 break; | ||||
|             case "medium": | ||||
|                 marginFactor = 0.035f; | ||||
|                 break; | ||||
|             case "large": | ||||
|                 marginFactor = 0.05f; | ||||
|                 break; | ||||
|             case "x-large": | ||||
|                 marginFactor = 0.075f; | ||||
|                 break; | ||||
| 
 | ||||
|             default: | ||||
|                 marginFactor = 0.035f; | ||||
|                 break; | ||||
|         } | ||||
| 
 | ||||
|         // Load the input PDF | ||||
|         PDDocument document = Loader.loadPDF(pdfFile.getBytes()); | ||||
| 
 | ||||
|         for (PDPage page : document.getPages()) { | ||||
|             PDPageContentStream contentStream = | ||||
|                     new PDPageContentStream( | ||||
|                             document, page, PDPageContentStream.AppendMode.APPEND, true, true); | ||||
| 
 | ||||
|             PDExtendedGraphicsState graphicsState = new PDExtendedGraphicsState(); | ||||
|             graphicsState.setNonStrokingAlphaConstant(opacity); | ||||
|             contentStream.setGraphicsStateParameters(graphicsState); | ||||
| 
 | ||||
|             if (watermarkType.equalsIgnoreCase("text")) { | ||||
|                 addTextStamp( | ||||
|                         contentStream, | ||||
|                         watermarkText, | ||||
|                         document, | ||||
|                         page, | ||||
|                         rotation, | ||||
|                         position, | ||||
|                         fontSize, | ||||
|                         alphabet, | ||||
|                         overrideX, | ||||
|                         overrideY, | ||||
|                         marginFactor, | ||||
|                         customColor); | ||||
|             } else if (watermarkType.equalsIgnoreCase("image")) { | ||||
|                 addImageStamp( | ||||
|                         contentStream, | ||||
|                         watermarkImage, | ||||
|                         document, | ||||
|                         page, | ||||
|                         rotation, | ||||
|                         position, | ||||
|                         fontSize, | ||||
|                         overrideX, | ||||
|                         overrideY, | ||||
|                         marginFactor); | ||||
|             } | ||||
| 
 | ||||
|             contentStream.close(); | ||||
|         } | ||||
| 
 | ||||
|         return WebResponseUtils.pdfDocToWebResponse( | ||||
|                 document, | ||||
|                 pdfFile.getOriginalFilename().replaceFirst("[.][^.]+$", "") + "_watermarked.pdf"); | ||||
|     } | ||||
| 
 | ||||
|     private void addTextStamp( | ||||
|             PDPageContentStream contentStream, | ||||
|             String watermarkText, | ||||
|             PDDocument document, | ||||
|             PDPage page, | ||||
|             float rotation, | ||||
|             int position, // 1-9 positioning logic | ||||
|             float fontSize, | ||||
|             String alphabet, | ||||
|             float overrideX, // X override | ||||
|             float overrideY, | ||||
|             float marginFactor, | ||||
|             String colorString) // Y override | ||||
|             throws IOException { | ||||
|         String resourceDir = ""; | ||||
|         PDFont font = new PDType1Font(Standard14Fonts.FontName.HELVETICA); | ||||
|         switch (alphabet) { | ||||
|             case "arabic": | ||||
|                 resourceDir = "static/fonts/NotoSansArabic-Regular.ttf"; | ||||
|                 break; | ||||
|             case "japanese": | ||||
|                 resourceDir = "static/fonts/Meiryo.ttf"; | ||||
|                 break; | ||||
|             case "korean": | ||||
|                 resourceDir = "static/fonts/malgun.ttf"; | ||||
|                 break; | ||||
|             case "chinese": | ||||
|                 resourceDir = "static/fonts/SimSun.ttf"; | ||||
|                 break; | ||||
|             case "roman": | ||||
|             default: | ||||
|                 resourceDir = "static/fonts/NotoSans-Regular.ttf"; | ||||
|                 break; | ||||
|         } | ||||
| 
 | ||||
|         if (!resourceDir.equals("")) { | ||||
|             ClassPathResource classPathResource = new ClassPathResource(resourceDir); | ||||
|             String fileExtension = resourceDir.substring(resourceDir.lastIndexOf(".")); | ||||
|             File tempFile = File.createTempFile("NotoSansFont", fileExtension); | ||||
|             try (InputStream is = classPathResource.getInputStream(); | ||||
|                     FileOutputStream os = new FileOutputStream(tempFile)) { | ||||
|                 IOUtils.copy(is, os); | ||||
|             } | ||||
| 
 | ||||
|             font = PDType0Font.load(document, tempFile); | ||||
|             tempFile.deleteOnExit(); | ||||
|         } | ||||
| 
 | ||||
|         contentStream.setFont(font, fontSize); | ||||
| 
 | ||||
|         Color redactColor; | ||||
|         try { | ||||
|             if (!colorString.startsWith("#")) { | ||||
|                 colorString = "#" + colorString; | ||||
|             } | ||||
|             redactColor = Color.decode(colorString); | ||||
|         } catch (NumberFormatException e) { | ||||
| 
 | ||||
|             redactColor = Color.LIGHT_GRAY; | ||||
|         } | ||||
| 
 | ||||
|         contentStream.setNonStrokingColor(redactColor); | ||||
| 
 | ||||
|         PDRectangle pageSize = page.getMediaBox(); | ||||
|         float x, y; | ||||
| 
 | ||||
|         if (overrideX >= 0 && overrideY >= 0) { | ||||
|             // Use override values if provided | ||||
|             x = overrideX; | ||||
|             y = overrideY; | ||||
|         } else { | ||||
|             x = | ||||
|                     calculatePositionX( | ||||
|                             pageSize, | ||||
|                             position, | ||||
|                             fontSize, | ||||
|                             font, | ||||
|                             fontSize, | ||||
|                             watermarkText, | ||||
|                             marginFactor); | ||||
|             y = calculatePositionY(pageSize, position, fontSize, marginFactor); | ||||
|         } | ||||
| 
 | ||||
|         contentStream.beginText(); | ||||
|         contentStream.setTextMatrix(Matrix.getRotateInstance(Math.toRadians(rotation), x, y)); | ||||
|         contentStream.showText(watermarkText); | ||||
|         contentStream.endText(); | ||||
|     } | ||||
| 
 | ||||
|     private void addImageStamp( | ||||
|             PDPageContentStream contentStream, | ||||
|             MultipartFile watermarkImage, | ||||
|             PDDocument document, | ||||
|             PDPage page, | ||||
|             float rotation, | ||||
|             int position, // 1-9 positioning logic | ||||
|             float fontSize, | ||||
|             float overrideX, | ||||
|             float overrideY, | ||||
|             float marginFactor) | ||||
|             throws IOException { | ||||
| 
 | ||||
|         // Load the watermark image | ||||
|         BufferedImage image = ImageIO.read(watermarkImage.getInputStream()); | ||||
| 
 | ||||
|         // Compute width based on original aspect ratio | ||||
|         float aspectRatio = (float) image.getWidth() / (float) image.getHeight(); | ||||
| 
 | ||||
|         // Desired physical height (in PDF points) | ||||
|         float desiredPhysicalHeight = fontSize; | ||||
| 
 | ||||
|         // Desired physical width based on the aspect ratio | ||||
|         float desiredPhysicalWidth = desiredPhysicalHeight * aspectRatio; | ||||
| 
 | ||||
|         // Convert the BufferedImage to PDImageXObject | ||||
|         PDImageXObject xobject = LosslessFactory.createFromImage(document, image); | ||||
| 
 | ||||
|         PDRectangle pageSize = page.getMediaBox(); | ||||
|         float x, y; | ||||
| 
 | ||||
|         if (overrideX >= 0 && overrideY >= 0) { | ||||
|             // Use override values if provided | ||||
|             x = overrideX; | ||||
|             y = overrideY; | ||||
|         } else { | ||||
|             x = | ||||
|                     calculatePositionX( | ||||
|                             pageSize, position, desiredPhysicalWidth, null, 0, null, marginFactor); | ||||
|             y = calculatePositionY(pageSize, position, fontSize, marginFactor); | ||||
|         } | ||||
| 
 | ||||
|         contentStream.saveGraphicsState(); | ||||
|         contentStream.transform(Matrix.getTranslateInstance(x, y)); | ||||
|         contentStream.transform(Matrix.getRotateInstance(Math.toRadians(rotation), 0, 0)); | ||||
|         contentStream.drawImage(xobject, 0, 0, desiredPhysicalWidth, desiredPhysicalHeight); | ||||
|         contentStream.restoreGraphicsState(); | ||||
|     } | ||||
| 
 | ||||
|     private float calculatePositionX( | ||||
|             PDRectangle pageSize, | ||||
|             int position, | ||||
|             float contentWidth, | ||||
|             PDFont font, | ||||
|             float fontSize, | ||||
|             String text, | ||||
|             float marginFactor) | ||||
|             throws IOException { | ||||
|         float actualWidth = | ||||
|                 (text != null) ? calculateTextWidth(text, font, fontSize) : contentWidth; | ||||
|         switch (position % 3) { | ||||
|             case 1: // Left | ||||
|                 return pageSize.getLowerLeftX() + marginFactor * pageSize.getWidth(); | ||||
|             case 2: // Center | ||||
|                 return (pageSize.getWidth() - actualWidth) / 2; | ||||
|             case 0: // Right | ||||
|                 return pageSize.getUpperRightX() - actualWidth - marginFactor * pageSize.getWidth(); | ||||
|             default: | ||||
|                 return 0; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private float calculateTextWidth(String text, PDFont font, float fontSize) throws IOException { | ||||
|         return font.getStringWidth(text) / 1000 * fontSize; | ||||
|     } | ||||
| 
 | ||||
|     private float calculatePositionY( | ||||
|             PDRectangle pageSize, int position, float height, float marginFactor) { | ||||
|         switch ((position - 1) / 3) { | ||||
|             case 0: // Top | ||||
|                 return pageSize.getUpperRightY() - height - marginFactor * pageSize.getHeight(); | ||||
|             case 1: // Middle | ||||
|                 return (pageSize.getHeight() - height) / 2; | ||||
|             case 2: // Bottom | ||||
|                 return pageSize.getLowerLeftY() + marginFactor * pageSize.getHeight(); | ||||
|             default: | ||||
|                 return 0; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -1,6 +1,8 @@ | ||||
| package stirling.software.SPDF.controller.api.pipeline; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.regex.Matcher; | ||||
| import java.util.regex.Pattern; | ||||
| @ -39,6 +41,60 @@ public class ApiDocService { | ||||
|         return "http://localhost:" + port + contextPath + "/v1/api-docs"; | ||||
|     } | ||||
| 
 | ||||
|     Map<String, List<String>> outputToFileTypes = new HashMap<>(); | ||||
| 
 | ||||
|     public List getExtensionTypes(boolean output, String operationName) { | ||||
|         if (outputToFileTypes.size() == 0) { | ||||
|             outputToFileTypes.put("PDF", Arrays.asList("pdf")); | ||||
|             outputToFileTypes.put( | ||||
|                     "IMAGE", | ||||
|                     Arrays.asList( | ||||
|                             "png", "jpg", "jpeg", "gif", "webp", "bmp", "tif", "tiff", "svg", "psd", | ||||
|                             "ai", "eps")); | ||||
|             outputToFileTypes.put( | ||||
|                     "ZIP", | ||||
|                     Arrays.asList("zip", "rar", "7z", "tar", "gz", "bz2", "xz", "lz", "lzma", "z")); | ||||
|             outputToFileTypes.put("WORD", Arrays.asList("doc", "docx", "odt", "rtf")); | ||||
|             outputToFileTypes.put("CSV", Arrays.asList("csv")); | ||||
|             outputToFileTypes.put("JS", Arrays.asList("js", "jsx")); | ||||
|             outputToFileTypes.put("HTML", Arrays.asList("html", "htm", "xhtml")); | ||||
|             outputToFileTypes.put("JSON", Arrays.asList("json")); | ||||
|             outputToFileTypes.put("TXT", Arrays.asList("txt", "text", "md", "markdown")); | ||||
|             outputToFileTypes.put("PPT", Arrays.asList("ppt", "pptx", "odp")); | ||||
|             outputToFileTypes.put("XML", Arrays.asList("xml", "xsd", "xsl")); | ||||
|             outputToFileTypes.put( | ||||
|                     "BOOK", | ||||
|                     Arrays.asList( | ||||
|                             "epub", "mobi", "azw3", "fb2", "txt", | ||||
|                             "docx")); | ||||
|             // type. | ||||
|         } | ||||
| 
 | ||||
|         if (apiDocsJsonRootNode == null || apiDocumentation.size() == 0) { | ||||
|             loadApiDocumentation(); | ||||
|         } | ||||
|         if (!apiDocumentation.containsKey(operationName)) { | ||||
|             return null; | ||||
|         } | ||||
| 
 | ||||
|         ApiEndpoint endpoint = apiDocumentation.get(operationName); | ||||
|         String description = endpoint.getDescription(); | ||||
|         Pattern pattern = null; | ||||
|         if (output) { | ||||
|             pattern = Pattern.compile("Output:(\\w+)"); | ||||
|         } else { | ||||
|             pattern = Pattern.compile("Input:(\\w+)"); | ||||
|         } | ||||
|         Matcher matcher = pattern.matcher(description); | ||||
|         while (matcher.find()) { | ||||
|             String type = matcher.group(1).toUpperCase(); | ||||
|             if (outputToFileTypes.containsKey(type)) { | ||||
|                 return outputToFileTypes.get(type); | ||||
|             } | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
| 
 | ||||
|     @Autowired(required = false) | ||||
|     private UserServiceInterface userService; | ||||
| 
 | ||||
|  | ||||
| @ -11,6 +11,7 @@ import java.nio.file.Files; | ||||
| import java.nio.file.Path; | ||||
| import java.nio.file.Paths; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Map.Entry; | ||||
| @ -82,15 +83,11 @@ public class PipelineProcessor { | ||||
|                     operation, | ||||
|                     isMultiInputOperation); | ||||
|             Map<String, Object> parameters = pipelineOperation.getParameters(); | ||||
|             String inputFileExtension = ""; | ||||
| 
 | ||||
|             // TODO | ||||
|             // if (operationNode.has("inputFileType")) { | ||||
|             //	inputFileExtension = operationNode.get("inputFileType").asText(); | ||||
|             // } else { | ||||
|             inputFileExtension = ".pdf"; | ||||
|             // } | ||||
|             final String finalInputFileExtension = inputFileExtension; | ||||
|             List<String> inputFileTypes = apiDocService.getExtensionTypes(false, operation); | ||||
|             if (inputFileTypes == null) { | ||||
|                 inputFileTypes = new ArrayList<String>(Arrays.asList("ALL")); | ||||
|             } | ||||
|             // List outputFileTypes = apiDocService.getExtensionTypes(true, operation); | ||||
| 
 | ||||
|             String url = getBaseUrl() + operation; | ||||
| 
 | ||||
| @ -98,7 +95,8 @@ public class PipelineProcessor { | ||||
|             if (!isMultiInputOperation) { | ||||
|                 for (Resource file : outputFiles) { | ||||
|                     boolean hasInputFileType = false; | ||||
|                     if (file.getFilename().endsWith(inputFileExtension)) { | ||||
|                     for (String extension : inputFileTypes) { | ||||
|                         if (extension.equals("ALL") || file.getFilename().endsWith(extension)) { | ||||
|                             hasInputFileType = true; | ||||
|                             MultiValueMap<String, Object> body = new LinkedMultiValueMap<>(); | ||||
|                             body.add("fileInput", file); | ||||
| @ -109,11 +107,13 @@ public class PipelineProcessor { | ||||
| 
 | ||||
|                             ResponseEntity<byte[]> response = sendWebRequest(url, body); | ||||
| 
 | ||||
|                         // If the operation is filter and the response body is null or empty, skip | ||||
|                             // If the operation is filter and the response body is null or empty, | ||||
|                             // skip | ||||
|                             // this | ||||
|                             // file | ||||
|                             if (operation.startsWith("filter-") | ||||
|                                 && (response.getBody() == null || response.getBody().length == 0)) { | ||||
|                                     && (response.getBody() == null | ||||
|                                             || response.getBody().length == 0)) { | ||||
|                                 logger.info("Skipping file due to failing {}", operation); | ||||
|                                 continue; | ||||
|                             } | ||||
| @ -123,13 +123,14 @@ public class PipelineProcessor { | ||||
|                                 hasErrors = true; | ||||
|                                 continue; | ||||
|                             } | ||||
|                         processOutputFiles(operation, file.getFilename(), response, newOutputFiles); | ||||
|                             processOutputFiles(operation, response, newOutputFiles); | ||||
|                         } | ||||
|                     } | ||||
| 
 | ||||
|                     if (!hasInputFileType) { | ||||
|                         logPrintStream.println( | ||||
|                                 "No files with extension " | ||||
|                                         + inputFileExtension | ||||
|                                         + String.join(", ", inputFileTypes) | ||||
|                                         + " found for operation " | ||||
|                                         + operation); | ||||
|                         hasErrors = true; | ||||
| @ -138,13 +139,19 @@ public class PipelineProcessor { | ||||
| 
 | ||||
|             } else { | ||||
|                 // Filter and collect all files that match the inputFileExtension | ||||
|                 List<Resource> matchingFiles = | ||||
|                 List<Resource> matchingFiles; | ||||
|                 if (inputFileTypes.contains("ALL")) { | ||||
|                     matchingFiles = new ArrayList<>(outputFiles); | ||||
|                 } else { | ||||
|                     final List<String> finalinputFileTypes = inputFileTypes; | ||||
|                     matchingFiles = | ||||
|                             outputFiles.stream() | ||||
|                                     .filter( | ||||
|                                             file -> | ||||
|                                                 file.getFilename() | ||||
|                                                         .endsWith(finalInputFileExtension)) | ||||
|                                                     finalinputFileTypes.stream() | ||||
|                                                             .anyMatch(file.getFilename()::endsWith)) | ||||
|                                     .collect(Collectors.toList()); | ||||
|                 } | ||||
| 
 | ||||
|                 // Check if there are matching files | ||||
|                 if (!matchingFiles.isEmpty()) { | ||||
| @ -164,11 +171,7 @@ public class PipelineProcessor { | ||||
| 
 | ||||
|                     // Handle the response | ||||
|                     if (response.getStatusCode().equals(HttpStatus.OK)) { | ||||
|                         processOutputFiles( | ||||
|                                 operation, | ||||
|                                 matchingFiles.get(0).getFilename(), | ||||
|                                 response, | ||||
|                                 newOutputFiles); | ||||
|                         processOutputFiles(operation, response, newOutputFiles); | ||||
|                     } else { | ||||
|                         // Log error if the response status is not OK | ||||
|                         logPrintStream.println( | ||||
| @ -178,7 +181,7 @@ public class PipelineProcessor { | ||||
|                 } else { | ||||
|                     logPrintStream.println( | ||||
|                             "No files with extension " | ||||
|                                     + inputFileExtension | ||||
|                                     + String.join(", ", inputFileTypes) | ||||
|                                     + " found for multi-input operation " | ||||
|                                     + operation); | ||||
|                     hasErrors = true; | ||||
| @ -211,11 +214,29 @@ public class PipelineProcessor { | ||||
|         return restTemplate.exchange(url, HttpMethod.POST, entity, byte[].class); | ||||
|     } | ||||
| 
 | ||||
|     public static String removeTrailingNaming(String filename) { | ||||
|         // Splitting filename into name and extension | ||||
|         int dotIndex = filename.lastIndexOf("."); | ||||
|         if (dotIndex == -1) { | ||||
|             // No extension found | ||||
|             return filename; | ||||
|         } | ||||
|         String name = filename.substring(0, dotIndex); | ||||
|         String extension = filename.substring(dotIndex); | ||||
| 
 | ||||
|         // Finding the last underscore | ||||
|         int underscoreIndex = name.lastIndexOf("_"); | ||||
|         if (underscoreIndex == -1) { | ||||
|             // No underscore found | ||||
|             return filename; | ||||
|         } | ||||
| 
 | ||||
|         // Removing the last part and reattaching the extension | ||||
|         return name.substring(0, underscoreIndex) + extension; | ||||
|     } | ||||
| 
 | ||||
|     private List<Resource> processOutputFiles( | ||||
|             String operation, | ||||
|             String fileName, | ||||
|             ResponseEntity<byte[]> response, | ||||
|             List<Resource> newOutputFiles) | ||||
|             String operation, ResponseEntity<byte[]> response, List<Resource> newOutputFiles) | ||||
|             throws IOException { | ||||
|         // Define filename | ||||
|         String newFilename; | ||||
| @ -227,7 +248,7 @@ public class PipelineProcessor { | ||||
|             newFilename = extractFilename(response); | ||||
|         } else { | ||||
|             // Otherwise, keep the original filename. | ||||
|             newFilename = fileName; | ||||
|             newFilename = removeTrailingNaming(extractFilename(response)); | ||||
|         } | ||||
| 
 | ||||
|         // Check if the response body is a zip file | ||||
|  | ||||
| @ -74,7 +74,7 @@ public class CertSignController { | ||||
|     @Operation( | ||||
|             summary = "Sign PDF with a Digital Certificate", | ||||
|             description = | ||||
|                     "This endpoint accepts a PDF file, a digital certificate and related information to sign the PDF. It then returns the digitally signed PDF file. Input:PDF Output:PDF Type:MF-SISO") | ||||
|                     "This endpoint accepts a PDF file, a digital certificate and related information to sign the PDF. It then returns the digitally signed PDF file. Input:PDF Output:PDF Type:SISO") | ||||
|     public ResponseEntity<byte[]> signPDFWithCert(@ModelAttribute SignPDFWithCertRequest request) | ||||
|             throws Exception { | ||||
|         MultipartFile pdf = request.getFileInput(); | ||||
|  | ||||
| @ -39,6 +39,13 @@ public class OtherWebController { | ||||
|         return "misc/show-javascript"; | ||||
|     } | ||||
| 
 | ||||
|     @GetMapping("/stamp") | ||||
|     @Hidden | ||||
|     public String stampForm(Model model) { | ||||
|         model.addAttribute("currentPage", "stamp"); | ||||
|         return "misc/stamp"; | ||||
|     } | ||||
| 
 | ||||
|     @GetMapping("/add-page-numbers") | ||||
|     @Hidden | ||||
|     public String addPageNumbersForm(Model model) { | ||||
|  | ||||
| @ -0,0 +1,52 @@ | ||||
| package stirling.software.SPDF.model.api.converters; | ||||
| 
 | ||||
| import io.swagger.v3.oas.annotations.media.Schema; | ||||
| 
 | ||||
| import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | ||||
| import stirling.software.SPDF.model.api.PDFFile; | ||||
| 
 | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| public class HTMLToPdfRequest extends PDFFile { | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = "Zoom level for displaying the website. Default is '1'.", | ||||
|             defaultValue = "1") | ||||
|     private float zoom; | ||||
| 
 | ||||
|     @Schema(description = "Width of the page in centimeters.") | ||||
|     private Float pageWidth; | ||||
| 
 | ||||
|     @Schema(description = "Height of the page in centimeters.") | ||||
|     private Float pageHeight; | ||||
| 
 | ||||
|     @Schema(description = "Top margin of the page in millimeters.") | ||||
|     private Float marginTop; | ||||
| 
 | ||||
|     @Schema(description = "Bottom margin of the page in millimeters.") | ||||
|     private Float marginBottom; | ||||
| 
 | ||||
|     @Schema(description = "Left margin of the page in millimeters.") | ||||
|     private Float marginLeft; | ||||
| 
 | ||||
|     @Schema(description = "Right margin of the page in millimeters.") | ||||
|     private Float marginRight; | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = "Enable or disable rendering of website background.", | ||||
|             allowableValues = {"Yes", "No"}) | ||||
|     private String printBackground; | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = | ||||
|                     "Enable or disable the default header. The default header includes the name of the page on the left and the page number on the right.", | ||||
|             allowableValues = {"Yes", "No"}) | ||||
|     private String defaultHeader; | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = "Change the CSS media type of the page. Defaults to 'print'.", | ||||
|             allowableValues = {"none", "print", "screen"}, | ||||
|             defaultValue = "print") | ||||
|     private String cssMediaType; | ||||
| } | ||||
| @ -0,0 +1,68 @@ | ||||
| package stirling.software.SPDF.model.api.misc; | ||||
| 
 | ||||
| import org.springframework.web.multipart.MultipartFile; | ||||
| 
 | ||||
| import io.swagger.v3.oas.annotations.media.Schema; | ||||
| 
 | ||||
| import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | ||||
| import stirling.software.SPDF.model.api.PDFFile; | ||||
| 
 | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| public class AddStampRequest extends PDFFile { | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = "The stamp type (text or image)", | ||||
|             allowableValues = {"text", "image"}, | ||||
|             required = true) | ||||
|     private String stampType; | ||||
| 
 | ||||
|     @Schema(description = "The stamp text") | ||||
|     private String stampText; | ||||
| 
 | ||||
|     @Schema(description = "The stamp image") | ||||
|     private MultipartFile stampImage; | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = "The selected alphabet", | ||||
|             allowableValues = {"roman", "arabic", "japanese", "korean", "chinese"}, | ||||
|             defaultValue = "roman") | ||||
|     private String alphabet = "roman"; | ||||
| 
 | ||||
|     @Schema(description = "The font size of the stamp text", example = "30") | ||||
|     private float fontSize = 30; | ||||
| 
 | ||||
|     @Schema(description = "The rotation of the stamp in degrees", example = "0") | ||||
|     private float rotation = 0; | ||||
| 
 | ||||
|     @Schema(description = "The opacity of the stamp (0.0 - 1.0)", example = "0.5") | ||||
|     private float opacity; | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = | ||||
|                     "Position for stamp placement based on a 1-9 grid (1: bottom-left, 2: bottom-center, ..., 9: top-right)", | ||||
|             example = "1") | ||||
|     private int position; | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = | ||||
|                     "Override X coordinate for stamp placement. If set, it will override the position-based calculation. Negative value means no override.", | ||||
|             example = "-1") | ||||
|     private float overrideX = -1; // Default to -1 indicating no override | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = | ||||
|                     "Override Y coordinate for stamp placement. If set, it will override the position-based calculation. Negative value means no override.", | ||||
|             example = "-1") | ||||
|     private float overrideY = -1; // Default to -1 indicating no override | ||||
| 
 | ||||
|     @Schema( | ||||
|             description = "Specifies the margin size for the stamp.", | ||||
|             allowableValues = {"small", "medium", "large", "x-large"}, | ||||
|             defaultValue = "medium") | ||||
|     private String customMargin = "medium"; | ||||
| 
 | ||||
|     @Schema(description = "The color for stamp", defaultValue = "#d3d3d3") | ||||
|     private String customColor = "#d3d3d3"; | ||||
| } | ||||
| @ -2,6 +2,7 @@ package stirling.software.SPDF.utils; | ||||
| 
 | ||||
| import java.io.ByteArrayInputStream; | ||||
| import java.io.IOException; | ||||
| import java.nio.charset.StandardCharsets; | ||||
| import java.nio.file.Files; | ||||
| import java.nio.file.Path; | ||||
| import java.util.ArrayList; | ||||
| @ -11,12 +12,16 @@ import java.util.stream.Stream; | ||||
| import java.util.zip.ZipEntry; | ||||
| import java.util.zip.ZipInputStream; | ||||
| 
 | ||||
| import stirling.software.SPDF.model.api.converters.HTMLToPdfRequest; | ||||
| import stirling.software.SPDF.utils.ProcessExecutor.ProcessExecutorResult; | ||||
| 
 | ||||
| public class FileToPdf { | ||||
| 
 | ||||
|     public static byte[] convertHtmlToPdf( | ||||
|             byte[] fileBytes, String fileName, boolean htmlFormatsInstalled) | ||||
|             HTMLToPdfRequest request, | ||||
|             byte[] fileBytes, | ||||
|             String fileName, | ||||
|             boolean htmlFormatsInstalled) | ||||
|             throws IOException, InterruptedException { | ||||
| 
 | ||||
|         Path tempOutputFile = Files.createTempFile("output_", ".pdf"); | ||||
| @ -36,6 +41,65 @@ public class FileToPdf { | ||||
|             } else { | ||||
|                 command.add("wkhtmltopdf"); | ||||
|                 command.add("--enable-local-file-access"); | ||||
|                 command.add("--load-error-handling"); | ||||
|                 command.add("ignore"); | ||||
|                 command.add("--load-media-error-handling"); | ||||
|                 command.add("ignore"); | ||||
|                 command.add("--zoom"); | ||||
|                 command.add(String.valueOf(request.getZoom())); | ||||
| 
 | ||||
|                 // if custom zoom add zoom style direct to html | ||||
|                 // https://github.com/wkhtmltopdf/wkhtmltopdf/issues/4900 | ||||
|                 if (request.getZoom() != 1.0) { | ||||
|                     String htmlContent = new String(Files.readAllBytes(tempInputFile)); | ||||
| 
 | ||||
|                     String zoomStyle = "<style>body { zoom: " + request.getZoom() + "; }</style>"; | ||||
|                     // Check for <head> tag, add style tag to associated tag | ||||
|                     if (htmlContent.contains("<head>")) { | ||||
|                         htmlContent = htmlContent.replace("<head>", "<head>" + zoomStyle); | ||||
|                     } else if (htmlContent.contains("<html>")) { | ||||
|                         // If no <head> tag, but <html> tag exists | ||||
|                         htmlContent = htmlContent.replace("<html>", "<html>" + zoomStyle); | ||||
|                     } else { | ||||
|                         // If neither <head> nor <html> tags exist | ||||
|                         htmlContent = zoomStyle + htmlContent; | ||||
|                     } | ||||
|                     // rewrite new html to file | ||||
|                     Files.write(tempInputFile, htmlContent.getBytes(StandardCharsets.UTF_8)); | ||||
|                 } | ||||
| 
 | ||||
|                 if (request.getPageWidth() != null) { | ||||
|                     command.add("--page-width"); | ||||
|                     command.add(request.getPageWidth() + "cm"); | ||||
|                 } | ||||
| 
 | ||||
|                 if (request.getPageHeight() != null) { | ||||
|                     command.add("--page-height"); | ||||
|                     command.add(request.getPageHeight() + "cm"); | ||||
|                 } | ||||
| 
 | ||||
|                 if (request.getMarginTop() != null) { | ||||
|                     command.add("--margin-top"); | ||||
|                     command.add(request.getMarginTop() + "mm"); | ||||
|                 } | ||||
| 
 | ||||
|                 // Repeat similar pattern for marginBottom, marginLeft, marginRight | ||||
| 
 | ||||
|                 if ("Yes".equalsIgnoreCase(request.getPrintBackground())) { | ||||
|                     command.add("--background"); | ||||
|                 } else { | ||||
|                     command.add("--no-background"); | ||||
|                 } | ||||
| 
 | ||||
|                 if ("Yes".equalsIgnoreCase(request.getDefaultHeader())) { | ||||
|                     command.add("--default-header"); | ||||
|                 } | ||||
| 
 | ||||
|                 if ("print".equalsIgnoreCase(request.getCssMediaType())) { | ||||
|                     command.add("--print-media-type"); | ||||
|                 } else if ("screen".equalsIgnoreCase(request.getCssMediaType())) { | ||||
|                     command.add("--no-print-media-type"); | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             command.add(tempInputFile.toString()); | ||||
| @ -59,7 +123,13 @@ public class FileToPdf { | ||||
|             } | ||||
| 
 | ||||
|             pdfBytes = Files.readAllBytes(tempOutputFile); | ||||
|         } catch (IOException e) { | ||||
|             pdfBytes = Files.readAllBytes(tempOutputFile); | ||||
|             if (pdfBytes.length < 1) { | ||||
|                 throw e; | ||||
|             } | ||||
|         } finally { | ||||
| 
 | ||||
|             // Clean up temporary files | ||||
|             Files.delete(tempOutputFile); | ||||
|             Files.delete(tempInputFile); | ||||
| @ -130,7 +200,6 @@ public class FileToPdf { | ||||
|             command.add("ebook-convert"); | ||||
|             command.add(tempInputFile.toString()); | ||||
|             command.add(tempOutputFile.toString()); | ||||
| 
 | ||||
|             ProcessExecutorResult returnCode = | ||||
|                     ProcessExecutor.getInstance(ProcessExecutor.Processes.CALIBRE) | ||||
|                             .runCommandWithOutputHandling(command); | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML To PDF | ||||
| HTMLToPDF.help=Accepts HTML files and ZIPs containing html/css/images etc required | ||||
| HTMLToPDF.submit=Convert | ||||
| HTMLToPDF.credit=Uses WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Sanitize PDF | ||||
| sanitizePDF.header=Sanitize a PDF file | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Синьо | ||||
| custom=Персонализиране... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Идентификационните данни са променени! | ||||
| notAuthenticatedMessage=Потребителят не е автентикиран. | ||||
| userNotFoundMessage=Потребителят не е намерен | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML към PDF | ||||
| HTMLToPDF.help=Приема HTML файлове и ZIP файлове, съдържащи html/css/изображения и т.н | ||||
| HTMLToPDF.submit=Преобразуване | ||||
| HTMLToPDF.credit=Използва WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Дезинфектирай PDF | ||||
| sanitizePDF.header=Дезинфектира PDF файл | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blau | ||||
| custom=Personalitzat... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML To PDF | ||||
| HTMLToPDF.help=Accepts HTML files and ZIPs containing html/css/images etc required | ||||
| HTMLToPDF.submit=Convert | ||||
| HTMLToPDF.credit=Uses WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Sanitize PDF | ||||
| sanitizePDF.header=Sanitize a PDF file | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blau | ||||
| custom=benutzerdefiniert... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Anmeldedaten geändert! | ||||
| notAuthenticatedMessage=Benutzer nicht authentifiziert. | ||||
| userNotFoundMessage=Benutzer nicht gefunden. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=PDF in Abschnitte teilen | ||||
| home.split-by-sections.desc=Teilen Sie jede Seite einer PDF-Datei in kleinere horizontale und vertikale Abschnitte auf | ||||
| split-by-sections.tags=abschnitte,teilen,bearbeiten | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML zu PDF | ||||
| HTMLToPDF.help=Akzeptiert HTML-Dateien und ZIPs mit html/css/images etc. | ||||
| HTMLToPDF.submit=Konvertieren | ||||
| HTMLToPDF.credit=Verwendet WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=PDF Bereinigen | ||||
| sanitizePDF.header=PDF Bereinigen | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=\u039C\u03C0\u03BB\u03AD | ||||
| custom=\u03A0\u03C1\u03BF\u03C3\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=\u03A4\u03B1 \u03B4\u03B9\u03B1\u03C0\u03B9\u03C3\u03C4\u03B5\u03C5\u03C4\u03AE\u03C1\u03B9\u03B1 \u03AD\u03C7\u03BF\u03C5\u03BD \u03B1\u03BB\u03BB\u03AC\u03BE\u03B5\u03B9! | ||||
| notAuthenticatedMessage=\u039F \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7\u03C2 \u03B4\u03B5\u03BD \u03AD\u03C7\u03B5\u03B9 \u03B1\u03C5\u03B8\u03B5\u03BD\u03C4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03B8\u03B5\u03AF. | ||||
| userNotFoundMessage=\u039F \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7\u03C2 \u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML \u03C3\u03B5 PDF | ||||
| HTMLToPDF.help=\u0394\u03AD\u03C7\u03B5\u03C4\u03B1\u03B9 \u03B1\u03C1\u03C7\u03B5\u03AF\u03B1 \u03C4\u03CD\u03C0\u03BF\u03C5 HTML \u03BA\u03B1\u03B9 \u03C4\u03CD\u03C0\u03BF\u03C5 ZIP \u03C0\u03BF\u03C5 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03BF\u03C5\u03BD html/css/\u03B5\u03B9\u03BA\u03CC\u03BD\u03B5\u03C2 \u03BA.\u03BB\u03C0. \u03C0\u03BF\u03C5 \u03B1\u03C0\u03B1\u03B9\u03C4\u03BF\u03CD\u03BD\u03C4\u03B1\u03B9 | ||||
| HTMLToPDF.submit=\u039C\u03B5\u03C4\u03B1\u03C4\u03C1\u03BF\u03C0\u03AE | ||||
| HTMLToPDF.credit=\u03A7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03B5\u03AF WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=\u0391\u03C0\u03BF\u03BB\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7 PDF | ||||
| sanitizePDF.header=\u0391\u03C0\u03BF\u03BB\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7 \u03B5\u03BD\u03CC\u03C2 PDF \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF\u03C5 | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -385,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -460,8 +466,38 @@ HTMLToPDF.header=HTML To PDF | ||||
| HTMLToPDF.help=Accepts HTML files and ZIPs containing html/css/images etc required | ||||
| HTMLToPDF.submit=Convert | ||||
| HTMLToPDF.credit=Uses WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Sanitize PDF | ||||
| sanitizePDF.header=Sanitize a PDF file | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML To PDF | ||||
| HTMLToPDF.help=Accepts HTML files and ZIPs containing html/css/images etc required | ||||
| HTMLToPDF.submit=Convert | ||||
| HTMLToPDF.credit=Uses WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Sanitize PDF | ||||
| sanitizePDF.header=Sanitize a PDF file | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Azul | ||||
| custom=Personalizado... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Se cambiaron las credenciales! | ||||
| notAuthenticatedMessage=Usuario no autentificado. | ||||
| userNotFoundMessage=Usuario no encontrado. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Dividir PDF por Secciones | ||||
| home.split-by-sections.desc=Dividir cada página de un PDF en secciones verticales y horizontales más pequeñas | ||||
| split-by-sections.tags=Dividir sección, Dividir, Personalizar | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML a PDF | ||||
| HTMLToPDF.help=Acepta archivos HTML y ZIPs conteniendo los html/css/imágenes, etc, requeridas | ||||
| HTMLToPDF.submit=Convertir | ||||
| HTMLToPDF.credit=Utiliza WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Desinfectar archivo PDF | ||||
| sanitizePDF.header=Desinfectar un archivo PDF | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Urdina | ||||
| custom=Pertsonalizatu... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML bat PDF-ra | ||||
| HTMLToPDF.help=Html/css/images etab dituen HTML eta Zip fitxategiak onartzen ditu | ||||
| HTMLToPDF.submit=Bihurtu | ||||
| HTMLToPDF.credit=WeasyPrint darabil | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=PDF-a desinfektatu | ||||
| sanitizePDF.header=PDF fitxategi bat desinfektatu | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Bleu | ||||
| custom=Personnalisé\u2026 | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Les identifiants ont été mis à jour\u00a0! | ||||
| notAuthenticatedMessage=Utilisateur non authentifié. | ||||
| userNotFoundMessage=Utilisateur non trouvé. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML en PDF | ||||
| HTMLToPDF.help=Accepte les fichiers HTML et les ZIP contenant du HTML, du CSS, des images, etc. (requis). | ||||
| HTMLToPDF.submit=Convertir | ||||
| HTMLToPDF.credit=Utilise WeasyPrint. | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Assainir | ||||
| sanitizePDF.header=Assainir | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=नीला | ||||
| custom=कस्टम... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=क्रेडेंशियल्स बदल दी गईं! | ||||
| notAuthenticatedMessage=उपयोगकर्ता प्रमाणित नहीं है। | ||||
| userNotFoundMessage=उपयोगकर्ता नहीं मिला। | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=खंडों से पीडीएफ़ वि | ||||
| home.split-by-sections.desc=पीडीएफ़ के प्रत्येक पृष्ठ को छोटे से छोटे क्षैतिज और ऊर्ध्वाधर खंडों में विभाजित करें | ||||
| split-by-sections.tags=खंड विभाजन, विभाजित करें, अनुकूलित | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML से पीडीएफ़ | ||||
| HTMLToPDF.help=HTML फ़ाइलों और html/css/images आदि को आत्मसात करने वाले ZIPs को स्वीकार करता है | ||||
| HTMLToPDF.submit=रूपांतरित करें | ||||
| HTMLToPDF.credit=WeasyPrint का प्रयोग होता है | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=पीडीएफ़ को सफाई करें | ||||
| sanitizePDF.header=एक पीडीएफ़ फ़ाइल को सफाई करें | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Kék | ||||
| custom=Egyedi... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=A hitelek megváltoztak! | ||||
| notAuthenticatedMessage=Felhasználó nincs hitelesítve. | ||||
| userNotFoundMessage=A felhasználó nem található. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=PDF Szakaszokra osztása | ||||
| home.split-by-sections.desc=Minden oldal felosztása kisebb vízszintes és függőleges szakaszokra | ||||
| split-by-sections.tags=Szakasz elosztás, felosztás, testreszabás | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML >> PDF | ||||
| HTMLToPDF.help=Elfogad HTML fájlokat és ZIP-fájlokat, amelyek tartalmaznak html/css/képeket stb. | ||||
| HTMLToPDF.submit=Átalakítás | ||||
| HTMLToPDF.credit=WeasyPrint alkalmazása | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=PDF tisztítása | ||||
| sanitizePDF.header=PDF fájl megtisztítása | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Biru | ||||
| custom=Kustom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Kredensial berubah!! | ||||
| notAuthenticatedMessage=Pengguna tidak ter-autentikasi. | ||||
| userNotFoundMessage=Pengguna tidak ditemukan. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Membagi PDF berdasarkan Bagian | ||||
| home.split-by-sections.desc=Membagi setiap halaman PDF menjadi beberapa bagian horizontal dan vertikal yang lebih kecil | ||||
| split-by-sections.tags=Membagi Bagian, Membagi, Menyesuaikan | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML Ke PDF | ||||
| HTMLToPDF.help=Menerima berkas HTML dan ZIP yang berisi html / css / gambar, dll yang diperlukan | ||||
| HTMLToPDF.submit=Konversi | ||||
| HTMLToPDF.credit=Menggunakan WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Bersihkan PDF | ||||
| sanitizePDF.header=Membersihkan berkas PDF | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blu | ||||
| custom=Personalizzato | ||||
| WorkInProgess=Lavori in corso, potrebbe non funzionare o essere difettoso, segnalare eventuali problemi! | ||||
| poweredBy=Alimentato da | ||||
| 
 | ||||
| yes=Si | ||||
| no=No | ||||
| changedCredsMessage=Credenziali cambiate! | ||||
| notAuthenticatedMessage=Utente non autenticato. | ||||
| userNotFoundMessage=Utente non trovato. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Configurazione Pipeline | ||||
| pipelineOptions.pipelineNameLabel=Nome della Pipeline | ||||
| pipelineOptions.saveSettings=Salva Impostazioni | ||||
| pipelineOptions.pipelineNamePrompt=Inserisci qui il nome della pipeline | ||||
| pipelineOptions.selectOperation=Seleziona operazione | ||||
| pipelineOptions.addOperationButton=Aggiungi operazione | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -234,7 +236,7 @@ ocr.tags=riconoscimento,testo,immagine,scansione,lettura,identificazione,rilevam | ||||
| 
 | ||||
| home.extractImages.title=Estrai immagini | ||||
| home.extractImages.desc=Estrai tutte le immagini da un PDF e salvale come zip. | ||||
| extractImages.tags=picture,photo,save,archive,zip,capture,grab | ||||
| extractImages.tags=immagine,photo,save,archive,zip,capture,grab | ||||
| 
 | ||||
| home.pdfToPDFA.title=Converti in PDF/A | ||||
| home.pdfToPDFA.desc=Converti un PDF nel formato PDF/A per archiviazione a lungo termine. | ||||
| @ -311,7 +313,7 @@ add-page-numbers.tags=impaginare,etichettare,organizzare,indicizzare | ||||
| 
 | ||||
| home.auto-rename.title=Rinomina automaticamente il file PDF | ||||
| home.auto-rename.desc=Rinomina automaticamente un file PDF in base all'intestazione rilevata | ||||
| auto-rename.tags=arilevamento automatico,basato su intestazione,organizzazione,rietichettatura | ||||
| auto-rename.tags=rilevamento automatico,basato su intestazione,organizzazione,rietichettatura | ||||
| 
 | ||||
| home.adjust-contrast.title=Regola colori/contrasto | ||||
| home.adjust-contrast.desc=Regola contrasto, saturazione e luminosità di un PDF | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Dividi PDF per sezioni | ||||
| home.split-by-sections.desc=Dividi ciascuna pagina di un PDF in sezioni orizzontali e verticali più piccole | ||||
| split-by-sections.tags=Dividi sezione, dividi, personalizza | ||||
| 
 | ||||
| home.AddStampRequest.title=Aggiungi timbro al PDF | ||||
| home.AddStampRequest.desc=Aggiungi testo o aggiungi timbri immagine nelle posizioni prestabilite | ||||
| AddStampRequest.tags=Timbro, Aggiungi immagine, Centra immagine, Filigrana, PDF, Incorpora, Personalizza | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML a PDF | ||||
| HTMLToPDF.help=Accetta file HTML e ZIP contenenti html/css/immagini ecc. richiesti | ||||
| HTMLToPDF.submit=Converti | ||||
| HTMLToPDF.credit=Utilizza WeasyPrint | ||||
| HTMLToPDF.zoom=Livello di zoom per la visualizzazione del sito web. | ||||
| HTMLToPDF.pageWidth=Larghezza della pagina in centimetri. (Vuoto per impostazione predefinita) | ||||
| HTMLToPDF.pageHeight=Altezza della pagina in centimetri. (Vuoto per impostazione predefinita) | ||||
| HTMLToPDF.marginTop=Margine superiore della pagina in millimetri. (Vuoto per impostazione predefinita) | ||||
| HTMLToPDF.marginBottom=Margine inferiore della pagina in millimetri. (Vuoto per impostazione predefinita) | ||||
| HTMLToPDF.marginLeft=Margine sinistro della pagina in millimetri. (Vuoto per impostazione predefinita) | ||||
| HTMLToPDF.marginRight=Margine destro della pagina in millimetri. (Vuoto per impostazione predefinita) | ||||
| HTMLToPDF.printBackground=Rendering dello sfondo dei siti Web. | ||||
| HTMLToPDF.defaultHeader=Abilita intestazione predefinita (nome e numero di pagina) | ||||
| HTMLToPDF.cssMediaType=Cambia il tipo di supporto CSS della pagina. | ||||
| HTMLToPDF.none=Nessuno | ||||
| HTMLToPDF.print=Stampa | ||||
| HTMLToPDF.screen=Schermo | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Timbro PDF | ||||
| AddStampRequest.title=Timbro PDF | ||||
| AddStampRequest.stampType=Tipo di timbro | ||||
| AddStampRequest.stampText=Testo del timbro | ||||
| AddStampRequest.stampImage=Immagine del timbro | ||||
| AddStampRequest.alphabet=Alfabeto | ||||
| AddStampRequest.fontSize=Dimensione carattere/immagine | ||||
| AddStampRequest.rotation=Rotazione | ||||
| AddStampRequest.opacity=Opacità | ||||
| AddStampRequest.position=Posizione | ||||
| AddStampRequest.overrideX=Sostituisci la coordinata X | ||||
| AddStampRequest.overrideY=Sostituisci la coordinata Y | ||||
| AddStampRequest.customMargin=Margine personalizzato | ||||
| AddStampRequest.customColor=Colore testo personalizzato | ||||
| AddStampRequest.submit=Invia | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Pulire PDF | ||||
| sanitizePDF.header=Pulisci un file PDF | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=青 | ||||
| custom=カスタム... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=資格情報が変更されました! | ||||
| notAuthenticatedMessage=ユーザーが認証されていません。 | ||||
| userNotFoundMessage=ユーザーが見つかりません。 | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTMLをPDFに変換 | ||||
| HTMLToPDF.help=HTMLファイルと必要なhtml/css/画像などを含むZIPを受け入れます | ||||
| HTMLToPDF.submit=変換 | ||||
| HTMLToPDF.credit=WeasyPrintを使用 | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=PDFをサニタイズ | ||||
| sanitizePDF.header=PDFファイルをサニタイズ | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=계정 정보 변경 성공! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=사용자를 찾을 수 없습니다. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML 파일을 PDF 문서로 변환 | ||||
| HTMLToPDF.help=HTML 파일, 또는 html/css/이미지 등을 포함한 ZIP 파일을 받습니다. | ||||
| HTMLToPDF.submit=변환 | ||||
| HTMLToPDF.credit=이 기능은 WeasyPrint를 사용합니다. | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=PDF 정제 | ||||
| sanitizePDF.header=PDF 문서 정제 | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blauw | ||||
| custom=Aangepast... | ||||
| WorkInProgess=Werk in uitvoering. Werkt mogelijk niet of bevat fouten. Meld eventuele problemen! | ||||
| poweredBy=Mogelijk gemaakt door | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Inloggegevens gewijzigd! | ||||
| notAuthenticatedMessage=Gebruiker niet ingelogd. | ||||
| userNotFoundMessage=Gebruiker niet gevonden. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pijplijn onfiguratie | ||||
| pipelineOptions.pipelineNameLabel=Pijplijn naam | ||||
| pipelineOptions.saveSettings=Instellingen voor bewerking opslaan | ||||
| pipelineOptions.pipelineNamePrompt=Voer hier de naam van de pijplijn in | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Bewerking toevoegen | ||||
| pipelineOptions.pipelineHeader=Pijplijn: | ||||
| pipelineOptions.saveButton=Downloaden | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=PDF in secties splitsen | ||||
| home.split-by-sections.desc=Verdeel elke pagina van een PDF in kleinere horizontale en verticale secties | ||||
| split-by-sections.tags=Sectoe splitsen, Verdelen, Aanpassen | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML naar PDF | ||||
| HTMLToPDF.help=Accepteert HTML-bestanden en ZIP's die html/css/afbeeldingen etc. bevatten | ||||
| HTMLToPDF.submit=Converteren | ||||
| HTMLToPDF.credit=Gebruikt WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=PDF opschonen | ||||
| sanitizePDF.header=Een PDF-bestand opschonen | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML To PDF | ||||
| HTMLToPDF.help=Accepts HTML files and ZIPs containing html/css/images etc required | ||||
| HTMLToPDF.submit=Convert | ||||
| HTMLToPDF.credit=Uses WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Sanitize PDF | ||||
| sanitizePDF.header=Sanitize a PDF file | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML para PDF | ||||
| HTMLToPDF.help=Aceita arquivos HTML e ZIPs contendo html/css/imagens etc necessários | ||||
| HTMLToPDF.submit=Converter | ||||
| HTMLToPDF.credit=Usa o WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Sanitizar PDF | ||||
| sanitizePDF.header=Sanitizar um arquivo PDF | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML To PDF | ||||
| HTMLToPDF.help=Accepts HTML files and ZIPs containing html/css/images etc required | ||||
| HTMLToPDF.submit=Convert | ||||
| HTMLToPDF.credit=Uses WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Sanitize PDF | ||||
| sanitizePDF.header=Sanitize a PDF file | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML в PDF | ||||
| HTMLToPDF.help=Принимает файлы HTML и ZIP-файлы, содержащие html/css/изображения и т. д. | ||||
| HTMLToPDF.submit=Конвертировать | ||||
| HTMLToPDF.credit=Использует WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Дезинфицировать PDF | ||||
| sanitizePDF.header=Дезинфицировать PDF файл | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Plavo | ||||
| custom=Prilagođeno... | ||||
| WorkInProgess=Radovi u toku, možda neće raditi ili će biti grešaka, molimo prijavite sve probleme ! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Podaci za prijavu uspešno promenjeni! | ||||
| notAuthenticatedMessage=Korisnik nije autentifikovan. | ||||
| userNotFoundMessage=Korisnik nije pronađen. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Konfiguracija Pipeline-a | ||||
| pipelineOptions.pipelineNameLabel=Ime Pipeline-a | ||||
| pipelineOptions.saveSettings=Sačuvaj podešavanja | ||||
| pipelineOptions.pipelineNamePrompt=Unesite ime pipeline-a ovde | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Dodaj operaciju | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Preuzmi | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Deljenje PDF-a po Odeljcima | ||||
| home.split-by-sections.desc=Deljenje svake stranice PDF-a na manje horizontalne i vertikalne odeljke | ||||
| split-by-sections.tags=Deljenje odeljaka,Deljenje,Podešavanje | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML u PDF | ||||
| HTMLToPDF.help=Prihvata HTML fajlove i ZIP-ove koji sadrže html/css/slike itd. potrebno | ||||
| HTMLToPDF.submit=Konvertuj | ||||
| HTMLToPDF.credit=Koristi WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Sanitizacija PDF-a | ||||
| sanitizePDF.header=Sanitizacija PDF fajla | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Credentials changed! | ||||
| notAuthenticatedMessage=User not authenticated. | ||||
| userNotFoundMessage=User not found. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML To PDF | ||||
| HTMLToPDF.help=Accepts HTML files and ZIPs containing html/css/images etc required | ||||
| HTMLToPDF.submit=Convert | ||||
| HTMLToPDF.credit=Uses WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=Sanitize PDF | ||||
| sanitizePDF.header=Sanitize a PDF file | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Mavi | ||||
| custom=Özel | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=Bilgiler değiştirildi! | ||||
| notAuthenticatedMessage=Kullanıcı doğrulanmadı. | ||||
| userNotFoundMessage=Kullanıcı bulunamadı. | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=Split PDF by Sections | ||||
| home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections | ||||
| split-by-sections.tags=Section Split, Divide, Customize | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML'den PDF'e | ||||
| HTMLToPDF.help=HTML dosyalarını ve html/css/görsel vb. içeren ZIP'leri kabul eder | ||||
| HTMLToPDF.submit=Dönüştür | ||||
| HTMLToPDF.credit=WeasyPrint Kullanıyor | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=PDF'i Temizle | ||||
| sanitizePDF.header=PDF dosyasını temizle | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=Blue | ||||
| custom=Custom... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=凭证已更改! | ||||
| notAuthenticatedMessage=用户未经过身份验证。 | ||||
| userNotFoundMessage=未找到用户。 | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=拆分PDF成小块 | ||||
| home.split-by-sections.desc=将PDF的每一页分割成更小的水平和垂直的部分 | ||||
| split-by-sections.tags=章节拆分、分割、自定义 | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML转PDF | ||||
| HTMLToPDF.help=接受HTML文件和包含所需的html/css/images等的ZIP文件 | ||||
| HTMLToPDF.submit=转换 | ||||
| HTMLToPDF.credit=使用WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=清理PDF | ||||
| sanitizePDF.header=清理PDF文件 | ||||
|  | ||||
| @ -44,7 +44,8 @@ blue=藍色 | ||||
| custom=自訂... | ||||
| WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems! | ||||
| poweredBy=Powered by | ||||
| 
 | ||||
| yes=Yes | ||||
| no=No | ||||
| changedCredsMessage=憑證已變更! | ||||
| notAuthenticatedMessage=使用者未認證。 | ||||
| userNotFoundMessage=找不到使用者。 | ||||
| @ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration | ||||
| pipelineOptions.pipelineNameLabel=Pipeline Name | ||||
| pipelineOptions.saveSettings=Save Operation Settings | ||||
| pipelineOptions.pipelineNamePrompt=Enter pipeline name here | ||||
| pipelineOptions.selectOperation=Select Operation | ||||
| pipelineOptions.addOperationButton=Add operation | ||||
| pipelineOptions.pipelineHeader=Pipeline: | ||||
| pipelineOptions.saveButton=Download | ||||
| @ -384,6 +386,11 @@ home.split-by-sections.title=依區段分割 PDF | ||||
| home.split-by-sections.desc=將 PDF 的每一頁分割為較小的水平和垂直區段 | ||||
| split-by-sections.tags=區段分割, 劃分, 自訂 | ||||
| 
 | ||||
| home.AddStampRequest.title=Add Stamp to PDF | ||||
| home.AddStampRequest.desc=Add text or add image stamps at set locations | ||||
| AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize | ||||
| 
 | ||||
| 
 | ||||
| ########################### | ||||
| #                         # | ||||
| #       WEB PAGES         # | ||||
| @ -459,8 +466,38 @@ HTMLToPDF.header=HTML 轉 PDF | ||||
| HTMLToPDF.help=接受 HTML 文件和包含所需 html/css/images 等的 ZIP | ||||
| HTMLToPDF.submit=轉換 | ||||
| HTMLToPDF.credit=使用 WeasyPrint | ||||
| HTMLToPDF.zoom=Zoom level for displaying the website. | ||||
| HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default) | ||||
| HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default) | ||||
| HTMLToPDF.printBackground=Render the background of websites. | ||||
| HTMLToPDF.defaultHeader=Enable Default Header (Name and page number) | ||||
| HTMLToPDF.cssMediaType=Change the CSS media type of the page. | ||||
| HTMLToPDF.none=None | ||||
| HTMLToPDF.print=Print | ||||
| HTMLToPDF.screen=Screen | ||||
| 
 | ||||
| 
 | ||||
| #AddStampRequest | ||||
| AddStampRequest.header=Stamp PDF | ||||
| AddStampRequest.title=Stamp PDF | ||||
| AddStampRequest.stampType=Stamp Type | ||||
| AddStampRequest.stampText=Stamp Text | ||||
| AddStampRequest.stampImage=Stamp Image | ||||
| AddStampRequest.alphabet=Alphabet | ||||
| AddStampRequest.fontSize=Font/Image Size | ||||
| AddStampRequest.rotation=Rotation | ||||
| AddStampRequest.opacity=Opacity | ||||
| AddStampRequest.position=Position | ||||
| AddStampRequest.overrideX=Override X Coordinate | ||||
| AddStampRequest.overrideY=Override Y Coordinate | ||||
| AddStampRequest.customMargin=Custom Margin | ||||
| AddStampRequest.customColor=Custom Text Color | ||||
| AddStampRequest.submit=Submit | ||||
| 				                     | ||||
| #sanitizePDF | ||||
| sanitizePDF.title=清理 PDF | ||||
| sanitizePDF.header=清理 PDF 檔案 | ||||
|  | ||||
							
								
								
									
										4
									
								
								src/main/resources/static/images/stamp.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/main/resources/static/images/stamp.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-postage-heart" viewBox="0 0 16 16"> | ||||
|   <path d="M3.5 1a1 1 0 0 0 1-1h1a1 1 0 0 0 2 0h1a1 1 0 0 0 2 0h1a1 1 0 1 0 2 0H15v1a1 1 0 1 0 0 2v1a1 1 0 1 0 0 2v1a1 1 0 1 0 0 2v1a1 1 0 1 0 0 2v1a1 1 0 1 0 0 2v1h-1.5a1 1 0 1 0-2 0h-1a1 1 0 1 0-2 0h-1a1 1 0 1 0-2 0h-1a1 1 0 1 0-2 0H1v-1a1 1 0 1 0 0-2v-1a1 1 0 1 0 0-2V9a1 1 0 1 0 0-2V6a1 1 0 0 0 0-2V3a1 1 0 0 0 0-2V0h1.5a1 1 0 0 0 1 1M3 3v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1"/> | ||||
|   <path d="M8 11C2.175 7.236 6.336 4.31 8 5.982 9.664 4.309 13.825 7.236 8 11"/> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 630 B | 
| @ -1,7 +1,20 @@ | ||||
| document.addEventListener('DOMContentLoaded', function() { | ||||
| 	setLanguageForDropdown('.lang_dropdown-item'); | ||||
| 	const defaultLocale = document.documentElement.lang || 'en_GB'; | ||||
| 
 | ||||
| 	// Detect the browser's preferred language
 | ||||
|     let browserLang = navigator.language || navigator.userLanguage; | ||||
|     // Convert to a format consistent with your language codes (e.g., en-GB, fr-FR)
 | ||||
|     browserLang = browserLang.replace('-', '_'); | ||||
| 
 | ||||
|     // Check if the dropdown contains the browser's language
 | ||||
|     const dropdownLangExists = document.querySelector(`.lang_dropdown-item[data-language-code="${browserLang}"]`); | ||||
|      | ||||
|     // Set the default language to browser's language or 'en_GB' if not found in the dropdown
 | ||||
|     const defaultLocale = dropdownLangExists ? browserLang : 'en_GB'; | ||||
|     const storedLocale = localStorage.getItem('languageCode') || defaultLocale; | ||||
|      | ||||
|      | ||||
|      | ||||
| 	const dropdownItems = document.querySelectorAll('.lang_dropdown-item'); | ||||
| 
 | ||||
| 	for (let i = 0; i < dropdownItems.length; i++) { | ||||
|  | ||||
| @ -8,11 +8,18 @@ document.getElementById("fileInput-input").addEventListener("change", function() | ||||
|     displayFiles(files); | ||||
| }); | ||||
| 
 | ||||
| /** | ||||
|  * @param {FileList} files  | ||||
|  */ | ||||
| function displayFiles(files) { | ||||
|     var list = document.getElementById("selectedFiles"); | ||||
|     const list = document.getElementById("selectedFiles"); | ||||
| 
 | ||||
|     for (var i = 0; i < files.length; i++) { | ||||
|         var item = document.createElement("li"); | ||||
|     while (list.firstChild) { | ||||
|         list.removeChild(list.firstChild); | ||||
|     } | ||||
| 
 | ||||
|     for (let i = 0; i < files.length; i++) { | ||||
|         const item = document.createElement("li"); | ||||
|         item.className = "list-group-item"; | ||||
|         item.innerHTML = ` | ||||
|             <div class="d-flex justify-content-between align-items-center w-100"> | ||||
|  | ||||
| @ -24,7 +24,7 @@ | ||||
| 						</ul> | ||||
| 						<form method="post" enctype="multipart/form-data" th:action="@{api/v1/misc/auto-split-pdf}"> | ||||
| 						    <p th:text="#{autoSplitPDF.formPrompt}"></p> | ||||
| 						    <div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false)}"></div> | ||||
| 						    <div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, accept='application/pdf')}"></div> | ||||
| 						    <div class="form-check"> | ||||
|                                 <input type="checkbox" class="form-check-input" name="duplexMode" id="duplexMode">  | ||||
|                                 <label class="ms-3" for="duplexMode" th:text=#{autoSplitPDF.duplexMode}></label> | ||||
|  | ||||
| @ -10,10 +10,73 @@ | ||||
|             <br> <br> | ||||
|             <div class="container"> | ||||
|                 <div class="row justify-content-center"> | ||||
|                     <div class="col-md-6"> | ||||
|                     <div class="mb-3"> | ||||
|                         <h2 th:text="#{HTMLToPDF.header}"></h2> | ||||
|                         <form method="post" enctype="multipart/form-data" th:action="@{api/v1/convert/html/pdf}"> | ||||
|                             <div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false)}"></div> | ||||
|                             <div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, accept='text/html,application/zip' )}"></div> | ||||
|                              | ||||
| 				            <div class="mb-3"> | ||||
| 				                <label for="zoom" th:text="#{HTMLToPDF.zoom}" class="form-label"></label> | ||||
| 				                <input type="number" step="0.1" class="form-control" id="zoom" name="zoom" value="1" /> | ||||
| 				            </div> | ||||
| 				 | ||||
| 				            <div class="mb-3"> | ||||
| 				                <label for="pageWidth" th:text="#{HTMLToPDF.pageWidth}" class="form-label"></label> | ||||
| 				                <input type="number" class="form-control" id="pageWidth" name="pageWidth" /> | ||||
| 				            </div> | ||||
| 				 | ||||
| 				            <div class="mb-3"> | ||||
| 				                <label for="pageHeight" th:text="#{HTMLToPDF.pageHeight}" class="form-label"></label> | ||||
| 				                <input type="number" class="form-control" id="pageHeight" name="pageHeight" /> | ||||
| 				            </div> | ||||
| 				 | ||||
| 				            <div class="mb-3"> | ||||
| 				                <label for="marginTop" th:text="#{HTMLToPDF.marginTop}" class="form-label"></label> | ||||
| 				                <input type="number" class="form-control" id="marginTop" name="marginTop" /> | ||||
| 				            </div> | ||||
| 				 | ||||
| 				            <div class="mb-3"> | ||||
| 				                <label for="marginBottom" th:text="#{HTMLToPDF.marginBottom}" class="form-label"></label> | ||||
| 				                <input type="number" class="form-control" id="marginBottom" name="marginBottom" /> | ||||
| 				            </div> | ||||
| 				 | ||||
| 				            <div class="mb-3"> | ||||
| 				                <label for="marginLeft" th:text="#{HTMLToPDF.marginLeft}" class="form-label"></label> | ||||
| 				                <input type="number" class="form-control" id="marginLeft" name="marginLeft" /> | ||||
| 				            </div> | ||||
| 				 | ||||
| 				            <div class="mb-3"> | ||||
| 				                <label for="marginRight" th:text="#{HTMLToPDF.marginRight}" class="form-label"></label> | ||||
| 				                <input type="number" class="form-control" id="marginRight" name="marginRight" /> | ||||
| 				            </div> | ||||
| 				 | ||||
| 				            <div class="mb-3"> | ||||
| 				                <label th:text="#{HTMLToPDF.printBackground}" class="form-label"></label> | ||||
| 				                <select class="form-select" name="printBackground"> | ||||
| 				                    <option value="Yes" th:text="#{yes}">Yes</option> | ||||
| 				                    <option value="No" th:text="#{no}">No</option> | ||||
| 				                </select> | ||||
| 				            </div> | ||||
| 				 | ||||
| 				            <div class="mb-3"> | ||||
| 							    <label th:text="#{HTMLToPDF.defaultHeader}" class="form-label"></label> | ||||
| 							    <select class="form-select" name="defaultHeader"> | ||||
| 							    	<option value="No" th:text="#{no}">No</option> | ||||
| 							        <option value="Yes" th:text="#{yes}">Yes</option> | ||||
| 							    </select> | ||||
| 							</div> | ||||
| 				             | ||||
| 				 | ||||
| 				            <div class="mb-3"> | ||||
| 				                <label th:text="#{HTMLToPDF.cssMediaType}" class="form-label"></label> | ||||
| 				                <select class="form-select" name="cssMediaType"> | ||||
| 				                	<option value="screen" th:text="#{HTMLToPDF.screen}">Screen</option> | ||||
| 				                    <option value="none" th:text="#{HTMLToPDF.none}">None</option> | ||||
| 				                    <option value="print" th:text="#{HTMLToPDF.print}">Print</option> | ||||
| 				                </select> | ||||
| 				            </div> | ||||
|                              | ||||
|                              | ||||
|                             <br> | ||||
|                             <button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{HTMLToPDF.submit}"></button> | ||||
| 
 | ||||
|  | ||||
| @ -13,7 +13,7 @@ | ||||
|                     <div class="col-md-6"> | ||||
|                         <h2 th:text="#{MarkdownToPDF.header}"></h2> | ||||
|                         <form method="post" enctype="multipart/form-data" th:action="@{api/v1/convert/markdown/pdf}"> | ||||
|                             <div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false)}"></div> | ||||
|                             <div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, accept='text/markdown')}"></div> | ||||
|                             <br> | ||||
|                             <button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{MarkdownToPDF.submit}"></button> | ||||
| 
 | ||||
|  | ||||
| @ -133,6 +133,7 @@ | ||||
|                             <div th:replace="~{fragments/navbarEntry :: navbarEntry ('auto-rename', 'images/fonts.svg', 'home.auto-rename.title', 'home.auto-rename.desc', 'auto-rename.tags')}"></div> | ||||
|                             <div th:replace="~{fragments/navbarEntry :: navbarEntry ('get-info-on-pdf', 'images/info.svg', 'home.getPdfInfo.title', 'home.getPdfInfo.desc', 'getPdfInfo.tags')}"></div> | ||||
|                             <div th:replace="~{fragments/navbarEntry :: navbarEntry ('show-javascript', 'images/js.svg', 'home.showJS.title', 'home.showJS.desc', 'showJS.tags')}"></div> | ||||
|                             <div th:replace="~{fragments/navbarEntry :: navbarEntry ('stamp', 'images/stamp.svg', 'home.AddStampRequest.title', 'home.AddStampRequest.desc', 'AddStampRequest.tags')}"></div> | ||||
|                         </div> | ||||
|                     </li> | ||||
| 
 | ||||
|  | ||||
| @ -101,6 +101,8 @@ | ||||
|                 <div th:replace="~{fragments/card :: card(id='split-pdf-by-sections', cardTitle=#{home.split-by-sections.title}, cardText=#{home.split-by-sections.desc}, cardLink='split-pdf-by-sections', svgPath='images/layout-split.svg')}"></div> | ||||
|                 <div th:replace="~{fragments/card :: card(id='book-to-pdf', cardTitle=#{home.BookToPDF.title}, cardText=#{home.BookToPDF.desc}, cardLink='book-to-pdf', svgPath='images/book.svg')}"></div> | ||||
|                 <div th:replace="~{fragments/card :: card(id='pdf-to-book', cardTitle=#{home.PDFToBook.title}, cardText=#{home.PDFToBook.desc}, cardLink='pdf-to-book', svgPath='images/book.svg')}"></div> | ||||
|                 <div th:replace="~{fragments/card :: card(id='stamp', cardTitle=#{home.AddStampRequest.title}, cardText=#{home.AddStampRequest.desc}, cardLink='stamp', svgPath='images/stamp.svg')}"></div> | ||||
|                  | ||||
| 				 | ||||
| 				 | ||||
| 
 | ||||
|  | ||||
| @ -18,7 +18,7 @@ | ||||
| 						<form id="pdfInfoForm" method="post" enctype="multipart/form-data" | ||||
| 							th:action="@{show-javascript}"> | ||||
| 							<div | ||||
| 								th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, remoteCall='false')}"></div> | ||||
| 								th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, remoteCall='false', accept='application/pdf')}"></div> | ||||
| 							<br> | ||||
| 							<button type="submit" id="submitBtn" class="btn btn-primary" | ||||
| 								th:text="#{showJS.submit}"></button> | ||||
|  | ||||
							
								
								
									
										216
									
								
								src/main/resources/templates/misc/stamp.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										216
									
								
								src/main/resources/templates/misc/stamp.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,216 @@ | ||||
| <!DOCTYPE html> | ||||
| <html th:lang="${#locale.toString()}" | ||||
| 	th:lang-direction="#{language.direction}" | ||||
| 	xmlns:th="http://www.thymeleaf.org"> | ||||
| 
 | ||||
| <th:block | ||||
| 	th:insert="~{fragments/common :: head(title=#{AddStampRequest.title}, header=#{AddStampRequest.header})}"></th:block> | ||||
| 
 | ||||
| 
 | ||||
| <body> | ||||
| 	<th:block th:insert="~{fragments/common :: game}"></th:block> | ||||
| 	<div id="page-container"> | ||||
| 		<div id="content-wrap"> | ||||
| 			<div th:insert="~{fragments/navbar.html :: navbar}"></div> | ||||
| 			<br> <br> | ||||
| 			<div class="container"> | ||||
| 				<div class="row justify-content-center"> | ||||
| 					<div class="col-md-6"> | ||||
| 						<h2 th:text="#{AddStampRequest.header}"></h2> | ||||
| 						<form method="post" enctype="multipart/form-data" | ||||
| 							th:action="@{api/v1/misc/add-stamp}"> | ||||
| 							<div | ||||
| 								th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, accept='application/pdf')}"></div> | ||||
| 							<br> | ||||
| 							<div class="mb-3"> | ||||
| 								 <label for="customMargin" class="form-label" th:text="#{AddStampRequest.customMargin}">Custom Margin</label> | ||||
|             					 <select class="form-select" id="customMargin" name="customMargin"> | ||||
| 									<option value="small" th:text="#{sizes.small}"></option> | ||||
| 									<option value="medium" selected th:text="#{sizes.medium}"></option> | ||||
| 									<option value="large" th:text="#{sizes.large}"></option> | ||||
| 									<option value="x-large" th:text="#{sizes.x-large}"></option> | ||||
| 								</select> | ||||
| 							</div> | ||||
| 							<style> | ||||
| .a4container { | ||||
| 	position: relative; | ||||
| 	width: 50%; | ||||
| 	aspect-ratio: 0.707; | ||||
| 	border: 1px solid #ddd; | ||||
| 	box-sizing: border-box; | ||||
| 	background-color: white; | ||||
| } | ||||
| 
 | ||||
| .pageNumber { | ||||
| 	position: absolute; | ||||
| 	display: flex; | ||||
| 	justify-content: center; | ||||
| 	align-items: center; | ||||
| 	font-size: 1em; | ||||
| 	color: #333; | ||||
| 	cursor: pointer; | ||||
| 	background-color: #ccc; | ||||
| 	width: 15%; | ||||
| 	height: 15%; | ||||
| 	transform: translate(-50%, -50%); | ||||
| } | ||||
| 
 | ||||
| .pageNumber:hover { | ||||
| 	background-color: #eee; | ||||
| } | ||||
| 
 | ||||
| #myForm { | ||||
| 	display: flex; | ||||
| 	justify-content: center; | ||||
| 	align-items: center; | ||||
| 	margin-top: 20px; | ||||
| } | ||||
| 
 | ||||
| .selectedPosition { | ||||
| 	background-color: #0a0; | ||||
| } | ||||
| 
 | ||||
| .selectedPosition.selectedHovered { | ||||
| 	background-color: #006600; | ||||
| } | ||||
| </style> | ||||
| 
 | ||||
| 
 | ||||
| 							<div class="mb-3"> | ||||
| 								<label for="position" th:text="#{AddStampRequest.position}"></label> | ||||
| 								<div class="a4container"> | ||||
| 									<div class="pageNumber" id="1" style="top: 10%; left: 10%;">1</div> | ||||
| 									<div class="pageNumber" id="2" style="top: 10%; left: 50%;">2</div> | ||||
| 									<div class="pageNumber" id="3" style="top: 10%; left: 90%;">3</div> | ||||
| 									<div class="pageNumber" id="4" style="top: 50%; left: 10%;">4</div> | ||||
| 									<div class="pageNumber" id="5" style="top: 50%; left: 50%;">5</div> | ||||
| 									<div class="pageNumber" id="6" style="top: 50%; left: 90%;">6</div> | ||||
| 									<div class="pageNumber" id="7" style="top: 90%; left: 10%;">7</div> | ||||
| 									<div class="pageNumber selectedPosition" id="8" style="top: 90%; left: 50%;">8</div> | ||||
| 									<div class="pageNumber" id="9" style="top: 90%; left: 90%;">9</div> | ||||
| 								</div> | ||||
| 							</div> | ||||
| 
 | ||||
| 							<input type="hidden" id="numberInput" name="position" min="1" | ||||
| 								max="9" value="8" required /> | ||||
| 								 | ||||
| 								 | ||||
| 							 | ||||
|  <div class="mb-3"> | ||||
|             <label for="stampType" class="form-label" th:text="#{AddStampRequest.stampType}">Stamp Type</label> | ||||
|             <select class="form-select" id="stampType" name="stampType" onchange="toggleFileOption()" required> | ||||
|                 <option value="text">Text</option> | ||||
|                 <option value="image">Image</option> | ||||
|             </select> | ||||
|         </div> | ||||
| 
 | ||||
|         <div  id="stampTextGroup"  class="mb-3"> | ||||
|             <label for="stampText" class="form-label" th:text="#{AddStampRequest.stampText}">Stamp Text</label> | ||||
|             <input type="text" class="form-control" id="stampText" name="stampText"> | ||||
|         </div> | ||||
| 
 | ||||
|         <div id="stampImageGroup" class="mb-3"  style="display: none;"> | ||||
|             <label for="stampImage" class="form-label" th:text="#{AddStampRequest.stampImage}">Stamp Image</label> | ||||
|             <input type="file" class="form-control" id="stampImage" name="stampImage" accept="image/*" > | ||||
|         </div> | ||||
| 
 | ||||
|         <div id="alphabetGroup" class="mb-3"> | ||||
|             <label for="alphabet" class="form-label" th:text="#{AddStampRequest.alphabet}">Alphabet</label> | ||||
|             <select class="form-select" id="alphabet" name="alphabet"> | ||||
|                 <option value="roman">Roman</option> | ||||
|                 <option value="arabic">العربية</option> | ||||
|                 <option value="japanese">日本語</option> | ||||
|                 <option value="korean">한국어</option> | ||||
|                 <option value="chinese">简体中文</option> | ||||
|             </select> | ||||
|         </div> | ||||
| 
 | ||||
|         <div class="mb-3"> | ||||
|             <label for="fontSize" class="form-label" th:text="#{AddStampRequest.fontSize}">Font Size</label> | ||||
|             <input type="number" class="form-control" id="fontSize" name="fontSize" value="30"> | ||||
|         </div> | ||||
| 
 | ||||
|         <div class="mb-3"> | ||||
|             <label for="rotation" class="form-label" th:text="#{AddStampRequest.rotation}">Rotation</label> | ||||
|             <input type="number" class="form-control" id="rotation" name="rotation" value="0"> | ||||
|         </div> | ||||
| 
 | ||||
|         <div class="mb-3"> | ||||
|             <label for="opacity" class="form-label" th:text="#{AddStampRequest.opacity}">Opacity</label> | ||||
|             <input type="number" class="form-control" id="opacity" name="opacity" step="0.1" value="0.5"> | ||||
|         </div> | ||||
| 
 | ||||
| 
 | ||||
|         <div class="mb-3"> | ||||
|             <label for="overrideX" class="form-label" th:text="#{AddStampRequest.overrideX}">Override X</label> | ||||
|             <input type="number" class="form-control" id="overrideX" name="overrideX" value="-1"> | ||||
|         </div> | ||||
| 
 | ||||
|         <div class="mb-3"> | ||||
|             <label for="overrideY" class="form-label" th:text="#{AddStampRequest.overrideY}">Override Y</label> | ||||
|             <input type="number" class="form-control" id="overrideY" name="overrideY" value="-1"> | ||||
|         </div> | ||||
|          | ||||
|           <div class="mb-3"> | ||||
|             <label for="customColor" class="form-label" th:text="#{AddStampRequest.customColor}">Custom Color</label> | ||||
|             <input type="color" class="form-control form-control-color" id="customColor" name="customColor" value="#d3d3d3"> | ||||
|         </div> | ||||
|          | ||||
| 							<button type="submit" id="submitBtn" class="btn btn-primary" | ||||
| 								th:text="#{AddStampRequest.submit}"></button> | ||||
| 						</form> | ||||
| 
 | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 			<script> | ||||
| 			let cells = document.querySelectorAll('.pageNumber'); | ||||
| 			let inputField = document.getElementById('numberInput'); | ||||
| 			 | ||||
| 			cells.forEach(cell => { | ||||
| 			  cell.addEventListener('click', function(e) { | ||||
| 			    cells.forEach(cell => { | ||||
| 			      cell.classList.remove('selectedPosition'); // Remove selected class from all cells | ||||
| 			      cell.classList.remove('selectedHovered'); // Also remove selectedHovered class | ||||
| 			    }); | ||||
| 			    let selectedLocation = e.target.id; | ||||
| 			    inputField.value = selectedLocation; | ||||
| 			    e.target.classList.add('selectedPosition'); // Add selected class to clicked cell | ||||
| 			    e.target.classList.add('selectedHovered'); // Add selectedHovered class | ||||
| 			  }); | ||||
| 		 | ||||
| 			  cell.addEventListener('mouseenter', function(e) { | ||||
| 			    if(e.target.classList.contains('selectedPosition')) { | ||||
| 			      e.target.classList.add('selectedHovered'); | ||||
| 			    } | ||||
| 			  }); | ||||
| 		 | ||||
| 			  cell.addEventListener('mouseleave', function(e) { | ||||
| 			    if(e.target.classList.contains('selectedPosition')) { | ||||
| 			      e.target.classList.remove('selectedHovered'); | ||||
| 			    } | ||||
| 			  }); | ||||
| 			});	 | ||||
| 		 | ||||
|                         function toggleFileOption() { | ||||
|                             const stampType = document.getElementById('stampType').value; | ||||
|                             const stampTextGroup = document.getElementById('stampTextGroup'); | ||||
|                             const stampImageGroup = document.getElementById('stampImageGroup'); | ||||
|                             const alphabetGroup = document.getElementById('alphabetGroup'); | ||||
|                              | ||||
|                             if (stampType === 'text') { | ||||
|                                 stampTextGroup.style.display = 'block'; | ||||
|                                 stampImageGroup.style.display = 'none'; | ||||
|                                 alphabetGroup.style.display = 'block'; | ||||
|                             } else if (stampType === 'image') { | ||||
|                                 stampTextGroup.style.display = 'none'; | ||||
|                                 stampImageGroup.style.display = 'block'; | ||||
|                                 alphabetGroup.style.display = 'none'; | ||||
|                             } | ||||
|                         } | ||||
|                         </script> | ||||
| 		</div> | ||||
| 		<div th:insert="~{fragments/footer.html :: footer}"></div> | ||||
| 	</div> | ||||
| </body> | ||||
| </html> | ||||
| @ -14,7 +14,7 @@ | ||||
|                     <div class="col-md-6"> | ||||
|                         <h2 th:text="#{pdfToSinglePage.header}"></h2> | ||||
| 						<form method="post" enctype="multipart/form-data" th:action="@{api/v1/general/pdf-to-single-page}"> | ||||
| 						    <div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false)}"></div> | ||||
| 						    <div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, accept='application/pdf')}"></div> | ||||
| 						    <button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{pdfToSinglePage.submit}"></button> | ||||
| 						</form> | ||||
|                     </div> | ||||
|  | ||||
| @ -16,7 +16,7 @@ | ||||
| 						<form id="pdfInfoForm" method="post" enctype="multipart/form-data" | ||||
| 							th:action="@{api/v1/security/get-info-on-pdf}"> | ||||
| 							<div | ||||
| 								th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, remoteCall='false')}"></div> | ||||
| 								th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, remoteCall='false', accept='application/pdf')}"></div> | ||||
| 							<br> | ||||
| 							<button type="submit" id="submitBtn" class="btn btn-primary" | ||||
| 								th:text="#{getPdfInfo.submit}"></button> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user