Merge branch 'main' into main
This commit is contained in:
commit
a884f1b3d4
72 changed files with 2373 additions and 599 deletions
18
.github/pull_request_template.md
vendored
18
.github/pull_request_template.md
vendored
|
@ -1,4 +1,18 @@
|
||||||
# License Agreement for Contributions
|
# Description
|
||||||
By submitting this pull request, I acknowledge and agree that my contributions will be included in Stirling-PDF and that they can be relicensed in the future under MPL 2.0 (Mozilla Public License Version 2.0) license.
|
|
||||||
|
Please provide a summary of the changes, including relevant motivation and context.
|
||||||
|
|
||||||
|
Closes #(issue_number)
|
||||||
|
|
||||||
|
## Checklist:
|
||||||
|
|
||||||
|
- [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
|
||||||
|
- [ ] I have performed a self-review of my own code
|
||||||
|
- [ ] I have commented my code, particularly in hard-to-understand areas
|
||||||
|
- [ ] My changes generate no new warnings
|
||||||
|
|
||||||
|
## Contributor License Agreement
|
||||||
|
|
||||||
|
By submitting this pull request, I acknowledge and agree that my contributions will be included in Stirling-PDF and that they can be relicensed in the future under the MPL 2.0 (Mozilla Public License Version 2.0) license.
|
||||||
|
|
||||||
(This does not change the general open-source nature of Stirling-PDF, simply moving from one license to another license)
|
(This does not change the general open-source nature of Stirling-PDF, simply moving from one license to another license)
|
||||||
|
|
3
.github/workflows/pull_request_template.md
vendored
3
.github/workflows/pull_request_template.md
vendored
|
@ -1,3 +0,0 @@
|
||||||
# License Agreement for Contributions
|
|
||||||
By submitting this pull request, I acknowledge and agree that my contributions will be included in Stirling-PDF and that they can be relicensed in the future under MPL 2.0 (Mozilla Public License Version 2.0) license.
|
|
||||||
(This does not change the open-source nature of Stirling-PDF, simply moving from one license to another license)
|
|
|
@ -12,7 +12,7 @@ plugins {
|
||||||
import com.github.jk1.license.render.*
|
import com.github.jk1.license.render.*
|
||||||
|
|
||||||
group = 'stirling.software'
|
group = 'stirling.software'
|
||||||
version = '0.20.0'
|
version = '0.20.1'
|
||||||
sourceCompatibility = '17'
|
sourceCompatibility = '17'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|
|
@ -21,7 +21,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
DOCKER_ENABLE_SECURITY: "true"
|
DOCKER_ENABLE_SECURITY: "true"
|
||||||
SECURITY_ENABLELOGIN: "true"
|
SECURITY_ENABLELOGIN: "true"
|
||||||
SYSTEM_DEFAULTLOCALE: en_US
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
UI_APPNAME: Stirling-PDF-Lite
|
UI_APPNAME: Stirling-PDF-Lite
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest with Security
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest with Security
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest
|
UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest
|
||||||
|
|
|
@ -20,7 +20,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
DOCKER_ENABLE_SECURITY: "false"
|
DOCKER_ENABLE_SECURITY: "false"
|
||||||
SECURITY_ENABLELOGIN: "false"
|
SECURITY_ENABLELOGIN: "false"
|
||||||
SYSTEM_DEFAULTLOCALE: en_US
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
UI_APPNAME: Stirling-PDF-Lite
|
UI_APPNAME: Stirling-PDF-Lite
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest
|
UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest
|
||||||
|
|
|
@ -21,7 +21,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
DOCKER_ENABLE_SECURITY: "true"
|
DOCKER_ENABLE_SECURITY: "true"
|
||||||
SECURITY_ENABLELOGIN: "true"
|
SECURITY_ENABLELOGIN: "true"
|
||||||
SYSTEM_DEFAULTLOCALE: en_US
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
UI_APPNAME: Stirling-PDF
|
UI_APPNAME: Stirling-PDF
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest with Security
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest with Security
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF Latest
|
UI_APPNAMENAVBAR: Stirling-PDF Latest
|
||||||
|
|
|
@ -21,7 +21,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
DOCKER_ENABLE_SECURITY: "true"
|
DOCKER_ENABLE_SECURITY: "true"
|
||||||
SECURITY_ENABLELOGIN: "true"
|
SECURITY_ENABLELOGIN: "true"
|
||||||
SYSTEM_DEFAULTLOCALE: en_US
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
UI_APPNAME: Stirling-PDF-Lite
|
UI_APPNAME: Stirling-PDF-Lite
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest with Security
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest with Security
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest
|
UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest
|
||||||
|
|
|
@ -20,7 +20,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
DOCKER_ENABLE_SECURITY: "false"
|
DOCKER_ENABLE_SECURITY: "false"
|
||||||
SECURITY_ENABLELOGIN: "false"
|
SECURITY_ENABLELOGIN: "false"
|
||||||
SYSTEM_DEFAULTLOCALE: en_US
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
UI_APPNAME: Stirling-PDF-Ultra-lite
|
UI_APPNAME: Stirling-PDF-Ultra-lite
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Ultra-lite Latest
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Ultra-lite Latest
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF-Ultra-lite Latest
|
UI_APPNAMENAVBAR: Stirling-PDF-Ultra-lite Latest
|
||||||
|
|
|
@ -21,7 +21,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
DOCKER_ENABLE_SECURITY: "false"
|
DOCKER_ENABLE_SECURITY: "false"
|
||||||
SECURITY_ENABLELOGIN: "false"
|
SECURITY_ENABLELOGIN: "false"
|
||||||
SYSTEM_DEFAULTLOCALE: en_US
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
UI_APPNAME: Stirling-PDF
|
UI_APPNAME: Stirling-PDF
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF Latest
|
UI_APPNAMENAVBAR: Stirling-PDF Latest
|
||||||
|
|
|
@ -122,7 +122,7 @@ public class SplitPdfBySectionsController {
|
||||||
// Set clipping area and position
|
// Set clipping area and position
|
||||||
float translateX = -subPageWidth * i;
|
float translateX = -subPageWidth * i;
|
||||||
|
|
||||||
//float translateY = height - subPageHeight * (verticalDivisions - j);
|
// float translateY = height - subPageHeight * (verticalDivisions - j);
|
||||||
float translateY = -subPageHeight * (verticalDivisions - 1 - j);
|
float translateY = -subPageHeight * (verticalDivisions - 1 - j);
|
||||||
|
|
||||||
contentStream.saveGraphicsState();
|
contentStream.saveGraphicsState();
|
||||||
|
|
|
@ -12,7 +12,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
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.FileToPdf;
|
||||||
import stirling.software.SPDF.utils.WebResponseUtils;
|
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",
|
summary = "Convert an HTML or ZIP (containing HTML and CSS) to PDF",
|
||||||
description =
|
description =
|
||||||
"This endpoint takes an HTML or ZIP file input and converts it to a PDF format.")
|
"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();
|
MultipartFile fileInput = request.getFileInput();
|
||||||
|
|
||||||
if (fileInput == null) {
|
if (fileInput == null) {
|
||||||
|
@ -45,7 +46,7 @@ public class ConvertHtmlToPDF {
|
||||||
}
|
}
|
||||||
byte[] pdfBytes =
|
byte[] pdfBytes =
|
||||||
FileToPdf.convertHtmlToPdf(
|
FileToPdf.convertHtmlToPdf(
|
||||||
fileInput.getBytes(), originalFilename, htmlFormatsInstalled);
|
request, fileInput.getBytes(), originalFilename, htmlFormatsInstalled);
|
||||||
|
|
||||||
String outputFilename =
|
String outputFilename =
|
||||||
originalFilename.replaceFirst("[.][^.]+$", "")
|
originalFilename.replaceFirst("[.][^.]+$", "")
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class ConvertImgPDFController {
|
||||||
@Operation(
|
@Operation(
|
||||||
summary = "Convert images to a PDF file",
|
summary = "Convert images to a PDF file",
|
||||||
description =
|
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)
|
public ResponseEntity<byte[]> convertToPdf(@ModelAttribute ConvertToPdfRequest request)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
MultipartFile[] file = request.getFileInput();
|
MultipartFile[] file = request.getFileInput();
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class ConvertMarkdownToPdf {
|
||||||
@Operation(
|
@Operation(
|
||||||
summary = "Convert a Markdown file to PDF",
|
summary = "Convert a Markdown file to PDF",
|
||||||
description =
|
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)
|
public ResponseEntity<byte[]> markdownToPdf(@ModelAttribute GeneralFile request)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
MultipartFile fileInput = request.getFileInput();
|
MultipartFile fileInput = request.getFileInput();
|
||||||
|
@ -68,7 +68,7 @@ public class ConvertMarkdownToPdf {
|
||||||
|
|
||||||
byte[] pdfBytes =
|
byte[] pdfBytes =
|
||||||
FileToPdf.convertHtmlToPdf(
|
FileToPdf.convertHtmlToPdf(
|
||||||
htmlContent.getBytes(), "converted.html", htmlFormatsInstalled);
|
null, htmlContent.getBytes(), "converted.html", htmlFormatsInstalled);
|
||||||
|
|
||||||
String outputFilename =
|
String outputFilename =
|
||||||
originalFilename.replaceFirst("[.][^.]+$", "")
|
originalFilename.replaceFirst("[.][^.]+$", "")
|
||||||
|
|
|
@ -43,6 +43,7 @@ import stirling.software.SPDF.utils.WebResponseUtils;
|
||||||
public class AutoSplitPdfController {
|
public class AutoSplitPdfController {
|
||||||
|
|
||||||
private static final String QR_CONTENT = "https://github.com/Stirling-Tools/Stirling-PDF";
|
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")
|
@PostMapping(value = "/auto-split-pdf", consumes = "multipart/form-data")
|
||||||
@Operation(
|
@Operation(
|
||||||
|
@ -63,12 +64,13 @@ public class AutoSplitPdfController {
|
||||||
for (int page = 0; page < document.getNumberOfPages(); ++page) {
|
for (int page = 0; page < document.getNumberOfPages(); ++page) {
|
||||||
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 150);
|
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 150);
|
||||||
String result = decodeQRCode(bim);
|
String result = decodeQRCode(bim);
|
||||||
|
if ((QR_CONTENT.equals(result) || QR_CONTENT_OLD.equals(result)) && page != 0) {
|
||||||
if (QR_CONTENT.equals(result) && page != 0) {
|
|
||||||
splitDocuments.add(new PDDocument());
|
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));
|
splitDocuments.get(splitDocuments.size() - 1).addPage(document.getPage(page));
|
||||||
} else if (page == 0) {
|
} else if (page == 0) {
|
||||||
PDDocument firstDocument = new PDDocument();
|
PDDocument firstDocument = new PDDocument();
|
||||||
|
@ -77,7 +79,7 @@ public class AutoSplitPdfController {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If duplexMode is true and current page is a divider, then skip next page
|
// 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++;
|
page++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import stirling.software.SPDF.model.api.misc.RemoveBlankPagesRequest;
|
import stirling.software.SPDF.model.api.misc.RemoveBlankPagesRequest;
|
||||||
import stirling.software.SPDF.utils.PdfUtils;
|
import stirling.software.SPDF.utils.PdfUtils;
|
||||||
import stirling.software.SPDF.utils.ProcessExecutor;
|
import stirling.software.SPDF.utils.ProcessExecutor;
|
||||||
import stirling.software.SPDF.utils.ProcessExecutor.ProcessExecutorResult;
|
|
||||||
import stirling.software.SPDF.utils.WebResponseUtils;
|
import stirling.software.SPDF.utils.WebResponseUtils;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
|
@ -85,7 +84,7 @@ public class BlankPageController {
|
||||||
List<String> command =
|
List<String> command =
|
||||||
new ArrayList<>(
|
new ArrayList<>(
|
||||||
Arrays.asList(
|
Arrays.asList(
|
||||||
"python3",
|
"python",
|
||||||
System.getProperty("user.dir")
|
System.getProperty("user.dir")
|
||||||
+ "/scripts/detect-blank-pages.py",
|
+ "/scripts/detect-blank-pages.py",
|
||||||
tempFile.toString(),
|
tempFile.toString(),
|
||||||
|
@ -94,18 +93,25 @@ public class BlankPageController {
|
||||||
"--white_percent",
|
"--white_percent",
|
||||||
String.valueOf(whitePercent)));
|
String.valueOf(whitePercent)));
|
||||||
|
|
||||||
|
Boolean blank = false;
|
||||||
// Run CLI command
|
// Run CLI command
|
||||||
ProcessExecutorResult returnCode =
|
try {
|
||||||
ProcessExecutor.getInstance(ProcessExecutor.Processes.PYTHON_OPENCV)
|
ProcessExecutor.getInstance(ProcessExecutor.Processes.PYTHON_OPENCV)
|
||||||
.runCommandWithOutputHandling(command);
|
.runCommandWithOutputHandling(command);
|
||||||
|
} catch (IOException e) {
|
||||||
|
// From detect-blank-pages.py
|
||||||
|
// Return code 1: The image is considered blank.
|
||||||
|
// Return code 0: The image is not considered blank.
|
||||||
|
// Since the process returned with a failure code, it should be blank.
|
||||||
|
blank = true;
|
||||||
|
}
|
||||||
|
|
||||||
// does contain data
|
if (blank) {
|
||||||
if (returnCode.getRc() == 0) {
|
System.out.println("Skipping, Image was blank for page #" + pageIndex);
|
||||||
|
} else {
|
||||||
System.out.println(
|
System.out.println(
|
||||||
"page " + pageIndex + " has image which is not blank");
|
"page " + pageIndex + " has image which is not blank");
|
||||||
pagesToKeepIndex.add(pageIndex);
|
pagesToKeepIndex.add(pageIndex);
|
||||||
} else {
|
|
||||||
System.out.println("Skipping, Image was blank for page #" + pageIndex);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,6 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
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.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
@ -50,7 +49,7 @@ public class FakeScanControllerWIP {
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
@Hidden
|
@Hidden
|
||||||
@PostMapping(consumes = "multipart/form-data", value = "/fakeScan")
|
// @PostMapping(consumes = "multipart/form-data", value = "/fakeScan")
|
||||||
@Operation(
|
@Operation(
|
||||||
summary = "Repair a PDF file",
|
summary = "Repair a PDF file",
|
||||||
description =
|
description =
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class OverlayImageController {
|
||||||
@Operation(
|
@Operation(
|
||||||
summary = "Overlay image onto a PDF file",
|
summary = "Overlay image onto a PDF file",
|
||||||
description =
|
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) {
|
public ResponseEntity<byte[]> overlayImage(@ModelAttribute OverlayImageRequest request) {
|
||||||
MultipartFile pdfFile = request.getFileInput();
|
MultipartFile pdfFile = request.getFileInput();
|
||||||
MultipartFile imageFile = request.getImageFile();
|
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;
|
package stirling.software.SPDF.controller.api.pipeline;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
@ -39,6 +41,57 @@ public class ApiDocService {
|
||||||
return "http://localhost:" + port + contextPath + "/v1/api-docs";
|
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)
|
@Autowired(required = false)
|
||||||
private UserServiceInterface userService;
|
private UserServiceInterface userService;
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
@ -82,15 +83,11 @@ public class PipelineProcessor {
|
||||||
operation,
|
operation,
|
||||||
isMultiInputOperation);
|
isMultiInputOperation);
|
||||||
Map<String, Object> parameters = pipelineOperation.getParameters();
|
Map<String, Object> parameters = pipelineOperation.getParameters();
|
||||||
String inputFileExtension = "";
|
List<String> inputFileTypes = apiDocService.getExtensionTypes(false, operation);
|
||||||
|
if (inputFileTypes == null) {
|
||||||
// TODO
|
inputFileTypes = new ArrayList<String>(Arrays.asList("ALL"));
|
||||||
// if (operationNode.has("inputFileType")) {
|
}
|
||||||
// inputFileExtension = operationNode.get("inputFileType").asText();
|
// List outputFileTypes = apiDocService.getExtensionTypes(true, operation);
|
||||||
// } else {
|
|
||||||
inputFileExtension = ".pdf";
|
|
||||||
// }
|
|
||||||
final String finalInputFileExtension = inputFileExtension;
|
|
||||||
|
|
||||||
String url = getBaseUrl() + operation;
|
String url = getBaseUrl() + operation;
|
||||||
|
|
||||||
|
@ -98,38 +95,42 @@ public class PipelineProcessor {
|
||||||
if (!isMultiInputOperation) {
|
if (!isMultiInputOperation) {
|
||||||
for (Resource file : outputFiles) {
|
for (Resource file : outputFiles) {
|
||||||
boolean hasInputFileType = false;
|
boolean hasInputFileType = false;
|
||||||
if (file.getFilename().endsWith(inputFileExtension)) {
|
for (String extension : inputFileTypes) {
|
||||||
hasInputFileType = true;
|
if (extension.equals("ALL") || file.getFilename().endsWith(extension)) {
|
||||||
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
|
hasInputFileType = true;
|
||||||
body.add("fileInput", file);
|
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
|
||||||
|
body.add("fileInput", file);
|
||||||
|
|
||||||
for (Entry<String, Object> entry : parameters.entrySet()) {
|
for (Entry<String, Object> entry : parameters.entrySet()) {
|
||||||
body.add(entry.getKey(), entry.getValue());
|
body.add(entry.getKey(), entry.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
ResponseEntity<byte[]> response = sendWebRequest(url, body);
|
||||||
|
|
||||||
|
// 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)) {
|
||||||
|
logger.info("Skipping file due to failing {}", operation);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!response.getStatusCode().equals(HttpStatus.OK)) {
|
||||||
|
logPrintStream.println("Error: " + response.getBody());
|
||||||
|
hasErrors = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
processOutputFiles(operation, response, newOutputFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
ResponseEntity<byte[]> response = sendWebRequest(url, body);
|
|
||||||
|
|
||||||
// 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)) {
|
|
||||||
logger.info("Skipping file due to failing {}", operation);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!response.getStatusCode().equals(HttpStatus.OK)) {
|
|
||||||
logPrintStream.println("Error: " + response.getBody());
|
|
||||||
hasErrors = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
processOutputFiles(operation, file.getFilename(), response, newOutputFiles);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hasInputFileType) {
|
if (!hasInputFileType) {
|
||||||
logPrintStream.println(
|
logPrintStream.println(
|
||||||
"No files with extension "
|
"No files with extension "
|
||||||
+ inputFileExtension
|
+ String.join(", ", inputFileTypes)
|
||||||
+ " found for operation "
|
+ " found for operation "
|
||||||
+ operation);
|
+ operation);
|
||||||
hasErrors = true;
|
hasErrors = true;
|
||||||
|
@ -138,13 +139,19 @@ public class PipelineProcessor {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Filter and collect all files that match the inputFileExtension
|
// Filter and collect all files that match the inputFileExtension
|
||||||
List<Resource> matchingFiles =
|
List<Resource> matchingFiles;
|
||||||
outputFiles.stream()
|
if (inputFileTypes.contains("ALL")) {
|
||||||
.filter(
|
matchingFiles = new ArrayList<>(outputFiles);
|
||||||
file ->
|
} else {
|
||||||
file.getFilename()
|
final List<String> finalinputFileTypes = inputFileTypes;
|
||||||
.endsWith(finalInputFileExtension))
|
matchingFiles =
|
||||||
.collect(Collectors.toList());
|
outputFiles.stream()
|
||||||
|
.filter(
|
||||||
|
file ->
|
||||||
|
finalinputFileTypes.stream()
|
||||||
|
.anyMatch(file.getFilename()::endsWith))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
// Check if there are matching files
|
// Check if there are matching files
|
||||||
if (!matchingFiles.isEmpty()) {
|
if (!matchingFiles.isEmpty()) {
|
||||||
|
@ -164,11 +171,7 @@ public class PipelineProcessor {
|
||||||
|
|
||||||
// Handle the response
|
// Handle the response
|
||||||
if (response.getStatusCode().equals(HttpStatus.OK)) {
|
if (response.getStatusCode().equals(HttpStatus.OK)) {
|
||||||
processOutputFiles(
|
processOutputFiles(operation, response, newOutputFiles);
|
||||||
operation,
|
|
||||||
matchingFiles.get(0).getFilename(),
|
|
||||||
response,
|
|
||||||
newOutputFiles);
|
|
||||||
} else {
|
} else {
|
||||||
// Log error if the response status is not OK
|
// Log error if the response status is not OK
|
||||||
logPrintStream.println(
|
logPrintStream.println(
|
||||||
|
@ -178,7 +181,7 @@ public class PipelineProcessor {
|
||||||
} else {
|
} else {
|
||||||
logPrintStream.println(
|
logPrintStream.println(
|
||||||
"No files with extension "
|
"No files with extension "
|
||||||
+ inputFileExtension
|
+ String.join(", ", inputFileTypes)
|
||||||
+ " found for multi-input operation "
|
+ " found for multi-input operation "
|
||||||
+ operation);
|
+ operation);
|
||||||
hasErrors = true;
|
hasErrors = true;
|
||||||
|
@ -211,11 +214,29 @@ public class PipelineProcessor {
|
||||||
return restTemplate.exchange(url, HttpMethod.POST, entity, byte[].class);
|
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(
|
private List<Resource> processOutputFiles(
|
||||||
String operation,
|
String operation, ResponseEntity<byte[]> response, List<Resource> newOutputFiles)
|
||||||
String fileName,
|
|
||||||
ResponseEntity<byte[]> response,
|
|
||||||
List<Resource> newOutputFiles)
|
|
||||||
throws IOException {
|
throws IOException {
|
||||||
// Define filename
|
// Define filename
|
||||||
String newFilename;
|
String newFilename;
|
||||||
|
@ -227,7 +248,7 @@ public class PipelineProcessor {
|
||||||
newFilename = extractFilename(response);
|
newFilename = extractFilename(response);
|
||||||
} else {
|
} else {
|
||||||
// Otherwise, keep the original filename.
|
// Otherwise, keep the original filename.
|
||||||
newFilename = fileName;
|
newFilename = removeTrailingNaming(extractFilename(response));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if the response body is a zip file
|
// Check if the response body is a zip file
|
||||||
|
|
|
@ -74,7 +74,7 @@ public class CertSignController {
|
||||||
@Operation(
|
@Operation(
|
||||||
summary = "Sign PDF with a Digital Certificate",
|
summary = "Sign PDF with a Digital Certificate",
|
||||||
description =
|
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)
|
public ResponseEntity<byte[]> signPDFWithCert(@ModelAttribute SignPDFWithCertRequest request)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
MultipartFile pdf = request.getFileInput();
|
MultipartFile pdf = request.getFileInput();
|
||||||
|
|
|
@ -155,9 +155,16 @@ public class WatermarkController {
|
||||||
contentStream.setFont(font, fontSize);
|
contentStream.setFont(font, fontSize);
|
||||||
contentStream.setNonStrokingColor(Color.LIGHT_GRAY);
|
contentStream.setNonStrokingColor(Color.LIGHT_GRAY);
|
||||||
|
|
||||||
|
String[] textLines = watermarkText.split("\\\\n");
|
||||||
|
float maxLineWidth = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < textLines.length; ++i) {
|
||||||
|
maxLineWidth = Math.max(maxLineWidth, font.getStringWidth(textLines[i]));
|
||||||
|
}
|
||||||
|
|
||||||
// Set size and location of text watermark
|
// Set size and location of text watermark
|
||||||
float watermarkWidth = widthSpacer + font.getStringWidth(watermarkText) * fontSize / 1000;
|
float watermarkWidth = widthSpacer + maxLineWidth * fontSize / 1000;
|
||||||
float watermarkHeight = heightSpacer + fontSize;
|
float watermarkHeight = heightSpacer + fontSize * textLines.length;
|
||||||
float pageWidth = page.getMediaBox().getWidth();
|
float pageWidth = page.getMediaBox().getWidth();
|
||||||
float pageHeight = page.getMediaBox().getHeight();
|
float pageHeight = page.getMediaBox().getHeight();
|
||||||
int watermarkRows = (int) (pageHeight / watermarkHeight + 1);
|
int watermarkRows = (int) (pageHeight / watermarkHeight + 1);
|
||||||
|
@ -172,7 +179,12 @@ public class WatermarkController {
|
||||||
(float) Math.toRadians(rotation),
|
(float) Math.toRadians(rotation),
|
||||||
j * watermarkWidth,
|
j * watermarkWidth,
|
||||||
i * watermarkHeight));
|
i * watermarkHeight));
|
||||||
contentStream.showText(watermarkText);
|
|
||||||
|
for (int k = 0; k < textLines.length; ++k) {
|
||||||
|
contentStream.showText(textLines[k]);
|
||||||
|
contentStream.newLineAtOffset(0, -fontSize);
|
||||||
|
}
|
||||||
|
|
||||||
contentStream.endText();
|
contentStream.endText();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,13 @@ public class OtherWebController {
|
||||||
return "misc/show-javascript";
|
return "misc/show-javascript";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/stamp")
|
||||||
|
@Hidden
|
||||||
|
public String stampForm(Model model) {
|
||||||
|
model.addAttribute("currentPage", "stamp");
|
||||||
|
return "misc/stamp";
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/add-page-numbers")
|
@GetMapping("/add-page-numbers")
|
||||||
@Hidden
|
@Hidden
|
||||||
public String addPageNumbersForm(Model model) {
|
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";
|
||||||
|
}
|
|
@ -1,131 +0,0 @@
|
||||||
package stirling.software.SPDF.pdf;
|
|
||||||
|
|
||||||
import java.awt.geom.Point2D;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.pdfbox.contentstream.operator.Operator;
|
|
||||||
import org.apache.pdfbox.contentstream.operator.OperatorName;
|
|
||||||
import org.apache.pdfbox.cos.COSBase;
|
|
||||||
import org.apache.pdfbox.cos.COSName;
|
|
||||||
import org.apache.pdfbox.pdmodel.PDPage;
|
|
||||||
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
|
|
||||||
import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject;
|
|
||||||
import org.apache.pdfbox.pdmodel.graphics.image.PDImage;
|
|
||||||
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
|
||||||
|
|
||||||
public class ImageFinder extends org.apache.pdfbox.contentstream.PDFGraphicsStreamEngine {
|
|
||||||
private boolean hasImages = false;
|
|
||||||
|
|
||||||
public ImageFinder(PDPage page) {
|
|
||||||
super(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hasImages() {
|
|
||||||
return hasImages;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void processOperator(Operator operator, List<COSBase> operands) throws IOException {
|
|
||||||
String operation = operator.getName();
|
|
||||||
if (operation.equals(OperatorName.DRAW_OBJECT)) {
|
|
||||||
COSBase base = operands.get(0);
|
|
||||||
if (base instanceof COSName) {
|
|
||||||
COSName objectName = (COSName) base;
|
|
||||||
PDXObject xobject = getResources().getXObject(objectName);
|
|
||||||
if (xobject instanceof PDImageXObject) {
|
|
||||||
hasImages = true;
|
|
||||||
} else if (xobject instanceof PDFormXObject) {
|
|
||||||
PDFormXObject form = (PDFormXObject) xobject;
|
|
||||||
ImageFinder innerFinder = new ImageFinder(getPage());
|
|
||||||
innerFinder.processPage(getPage());
|
|
||||||
if (innerFinder.hasImages()) {
|
|
||||||
hasImages = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
super.processOperator(operator, operands);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void appendRectangle(Point2D p0, Point2D p1, Point2D p2, Point2D p3) throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawImage(PDImage pdImage) throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void clip(int windingRule) throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void moveTo(float x, float y) throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void lineTo(float x, float y) throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3)
|
|
||||||
throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Point2D getCurrentPoint() throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void closePath() throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void endPath() throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void strokePath() throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillPath(int windingRule) throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillAndStrokePath(int windingRule) throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shadingFill(COSName shadingName) throws IOException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// ... rest of the overridden methods
|
|
||||||
}
|
|
|
@ -2,6 +2,7 @@ package stirling.software.SPDF.utils;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -11,12 +12,16 @@ import java.util.stream.Stream;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipInputStream;
|
import java.util.zip.ZipInputStream;
|
||||||
|
|
||||||
|
import stirling.software.SPDF.model.api.converters.HTMLToPdfRequest;
|
||||||
import stirling.software.SPDF.utils.ProcessExecutor.ProcessExecutorResult;
|
import stirling.software.SPDF.utils.ProcessExecutor.ProcessExecutorResult;
|
||||||
|
|
||||||
public class FileToPdf {
|
public class FileToPdf {
|
||||||
|
|
||||||
public static byte[] convertHtmlToPdf(
|
public static byte[] convertHtmlToPdf(
|
||||||
byte[] fileBytes, String fileName, boolean htmlFormatsInstalled)
|
HTMLToPdfRequest request,
|
||||||
|
byte[] fileBytes,
|
||||||
|
String fileName,
|
||||||
|
boolean htmlFormatsInstalled)
|
||||||
throws IOException, InterruptedException {
|
throws IOException, InterruptedException {
|
||||||
|
|
||||||
Path tempOutputFile = Files.createTempFile("output_", ".pdf");
|
Path tempOutputFile = Files.createTempFile("output_", ".pdf");
|
||||||
|
@ -36,6 +41,65 @@ public class FileToPdf {
|
||||||
} else {
|
} else {
|
||||||
command.add("wkhtmltopdf");
|
command.add("wkhtmltopdf");
|
||||||
command.add("--enable-local-file-access");
|
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());
|
command.add(tempInputFile.toString());
|
||||||
|
@ -59,7 +123,13 @@ public class FileToPdf {
|
||||||
}
|
}
|
||||||
|
|
||||||
pdfBytes = Files.readAllBytes(tempOutputFile);
|
pdfBytes = Files.readAllBytes(tempOutputFile);
|
||||||
|
} catch (IOException e) {
|
||||||
|
pdfBytes = Files.readAllBytes(tempOutputFile);
|
||||||
|
if (pdfBytes.length < 1) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
|
||||||
// Clean up temporary files
|
// Clean up temporary files
|
||||||
Files.delete(tempOutputFile);
|
Files.delete(tempOutputFile);
|
||||||
Files.delete(tempInputFile);
|
Files.delete(tempInputFile);
|
||||||
|
@ -130,7 +200,6 @@ public class FileToPdf {
|
||||||
command.add("ebook-convert");
|
command.add("ebook-convert");
|
||||||
command.add(tempInputFile.toString());
|
command.add(tempInputFile.toString());
|
||||||
command.add(tempOutputFile.toString());
|
command.add(tempOutputFile.toString());
|
||||||
|
|
||||||
ProcessExecutorResult returnCode =
|
ProcessExecutorResult returnCode =
|
||||||
ProcessExecutor.getInstance(ProcessExecutor.Processes.CALIBRE)
|
ProcessExecutor.getInstance(ProcessExecutor.Processes.CALIBRE)
|
||||||
.runCommandWithOutputHandling(command);
|
.runCommandWithOutputHandling(command);
|
||||||
|
|
|
@ -2,8 +2,10 @@ package stirling.software.SPDF.utils;
|
||||||
|
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.awt.image.RenderedImage;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
|
@ -16,11 +18,15 @@ import javax.imageio.ImageWriter;
|
||||||
import javax.imageio.stream.ImageOutputStream;
|
import javax.imageio.stream.ImageOutputStream;
|
||||||
|
|
||||||
import org.apache.pdfbox.Loader;
|
import org.apache.pdfbox.Loader;
|
||||||
|
import org.apache.pdfbox.cos.COSName;
|
||||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||||
import org.apache.pdfbox.pdmodel.PDPage;
|
import org.apache.pdfbox.pdmodel.PDPage;
|
||||||
import org.apache.pdfbox.pdmodel.PDPageContentStream;
|
import org.apache.pdfbox.pdmodel.PDPageContentStream;
|
||||||
import org.apache.pdfbox.pdmodel.PDPageContentStream.AppendMode;
|
import org.apache.pdfbox.pdmodel.PDPageContentStream.AppendMode;
|
||||||
|
import org.apache.pdfbox.pdmodel.PDResources;
|
||||||
import org.apache.pdfbox.pdmodel.common.PDRectangle;
|
import org.apache.pdfbox.pdmodel.common.PDRectangle;
|
||||||
|
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
|
||||||
|
import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject;
|
||||||
import org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory;
|
import org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory;
|
||||||
import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory;
|
import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory;
|
||||||
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
||||||
|
@ -31,8 +37,6 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import stirling.software.SPDF.pdf.ImageFinder;
|
|
||||||
|
|
||||||
public class PdfUtils {
|
public class PdfUtils {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(PdfUtils.class);
|
private static final Logger logger = LoggerFactory.getLogger(PdfUtils.class);
|
||||||
|
@ -62,6 +66,23 @@ public class PdfUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<RenderedImage> getAllImages(PDResources resources) throws IOException {
|
||||||
|
List<RenderedImage> images = new ArrayList<>();
|
||||||
|
|
||||||
|
for (COSName name : resources.getXObjectNames()) {
|
||||||
|
PDXObject object = resources.getXObject(name);
|
||||||
|
|
||||||
|
if (object instanceof PDImageXObject) {
|
||||||
|
images.add(((PDImageXObject) object).getImage());
|
||||||
|
|
||||||
|
} else if (object instanceof PDFormXObject) {
|
||||||
|
images.addAll(getAllImages(((PDFormXObject) object).getResources()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return images;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean hasImages(PDDocument document, String pagesToCheck) throws IOException {
|
public static boolean hasImages(PDDocument document, String pagesToCheck) throws IOException {
|
||||||
String[] pageOrderArr = pagesToCheck.split(",");
|
String[] pageOrderArr = pagesToCheck.split(",");
|
||||||
List<Integer> pageList =
|
List<Integer> pageList =
|
||||||
|
@ -94,9 +115,7 @@ public class PdfUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean hasImagesOnPage(PDPage page) throws IOException {
|
public static boolean hasImagesOnPage(PDPage page) throws IOException {
|
||||||
ImageFinder imageFinder = new ImageFinder(page);
|
return getAllImages(page.getResources()).size() > 0;
|
||||||
imageFinder.processPage(page);
|
|
||||||
return imageFinder.hasImages();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean hasTextOnPage(PDPage page, String phrase) throws IOException {
|
public static boolean hasTextOnPage(PDPage page, String phrase) throws IOException {
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blue
|
||||||
custom=Custom...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
userNotFoundMessage=User not found.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Accepts HTML files and ZIPs containing html/css/images etc required
|
||||||
HTMLToPDF.submit=Convert
|
HTMLToPDF.submit=Convert
|
||||||
HTMLToPDF.credit=Uses WeasyPrint
|
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
|
||||||
sanitizePDF.title=Sanitize PDF
|
sanitizePDF.title=Sanitize PDF
|
||||||
sanitizePDF.header=Sanitize a PDF file
|
sanitizePDF.header=Sanitize a PDF file
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Синьо
|
||||||
custom=Персонализиране...
|
custom=Персонализиране...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Идентификационните данни са променени!
|
changedCredsMessage=Идентификационните данни са променени!
|
||||||
notAuthenticatedMessage=Потребителят не е автентикиран.
|
notAuthenticatedMessage=Потребителят не е автентикиран.
|
||||||
userNotFoundMessage=Потребителят не е намерен
|
userNotFoundMessage=Потребителят не е намерен
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# WEB PAGES #
|
||||||
|
@ -459,8 +466,38 @@ HTMLToPDF.header=HTML към PDF
|
||||||
HTMLToPDF.help=Приема HTML файлове и ZIP файлове, съдържащи html/css/изображения и т.н
|
HTMLToPDF.help=Приема HTML файлове и ZIP файлове, съдържащи html/css/изображения и т.н
|
||||||
HTMLToPDF.submit=Преобразуване
|
HTMLToPDF.submit=Преобразуване
|
||||||
HTMLToPDF.credit=Използва WeasyPrint
|
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
|
||||||
sanitizePDF.title=Дезинфектирай PDF
|
sanitizePDF.title=Дезинфектирай PDF
|
||||||
sanitizePDF.header=Дезинфектира PDF файл
|
sanitizePDF.header=Дезинфектира PDF файл
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blau
|
||||||
custom=Personalitzat...
|
custom=Personalitzat...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
userNotFoundMessage=User not found.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Accepts HTML files and ZIPs containing html/css/images etc required
|
||||||
HTMLToPDF.submit=Convert
|
HTMLToPDF.submit=Convert
|
||||||
HTMLToPDF.credit=Uses WeasyPrint
|
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
|
||||||
sanitizePDF.title=Sanitize PDF
|
sanitizePDF.title=Sanitize PDF
|
||||||
sanitizePDF.header=Sanitize a PDF file
|
sanitizePDF.header=Sanitize a PDF file
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
###########
|
###########
|
||||||
# Generic #
|
# Generic #
|
||||||
###########
|
###########
|
||||||
# the direction that the language is written (ltr=left to right, rtl = right to left)
|
# the direction that the language is written (ltr=left to right, rtl = right to left)
|
||||||
|
@ -44,7 +44,8 @@ blue=Blau
|
||||||
custom=benutzerdefiniert...
|
custom=benutzerdefiniert...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Anmeldedaten geändert!
|
changedCredsMessage=Anmeldedaten geändert!
|
||||||
notAuthenticatedMessage=Benutzer nicht authentifiziert.
|
notAuthenticatedMessage=Benutzer nicht authentifiziert.
|
||||||
userNotFoundMessage=Benutzer nicht gefunden.
|
userNotFoundMessage=Benutzer nicht gefunden.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
pipelineOptions.saveButton=Download
|
||||||
|
@ -340,22 +342,22 @@ HTMLToPDF.tags=markup,web-content,transformation,convert
|
||||||
|
|
||||||
home.MarkdownToPDF.title=Markdown zu PDF
|
home.MarkdownToPDF.title=Markdown zu PDF
|
||||||
home.MarkdownToPDF.desc=Konvertiert jede Markdown-Datei zu PDF
|
home.MarkdownToPDF.desc=Konvertiert jede Markdown-Datei zu PDF
|
||||||
MarkdownToPDF.tags=markup,web-content,transformation,convert
|
MarkdownToPDF.tags=markup,web-content,transformation,konvertieren
|
||||||
|
|
||||||
|
|
||||||
home.getPdfInfo.title=Alle Informationen anzeigen
|
home.getPdfInfo.title=Alle Informationen anzeigen
|
||||||
home.getPdfInfo.desc=Erfasst alle möglichen Informationen in einer PDF
|
home.getPdfInfo.desc=Erfasst alle möglichen Informationen in einer PDF
|
||||||
getPdfInfo.tags=infomation,data,stats,statistics
|
getPdfInfo.tags=infomation,daten,statistik
|
||||||
|
|
||||||
|
|
||||||
home.extractPage.title=Seite(n) extrahieren
|
home.extractPage.title=Seite(n) extrahieren
|
||||||
home.extractPage.desc=Extrahiert ausgewählte Seiten aus einer PDF
|
home.extractPage.desc=Extrahiert ausgewählte Seiten aus einer PDF
|
||||||
extractPage.tags=extract
|
extractPage.tags=extrahieren
|
||||||
|
|
||||||
|
|
||||||
home.PdfToSinglePage.title=PDF zu einer Seite zusammenfassen
|
home.PdfToSinglePage.title=PDF zu einer Seite zusammenfassen
|
||||||
home.PdfToSinglePage.desc=Fügt alle PDF-Seiten zu einer einzigen großen Seite zusammen
|
home.PdfToSinglePage.desc=Fügt alle PDF-Seiten zu einer einzigen großen Seite zusammen
|
||||||
PdfToSinglePage.tags=single page
|
PdfToSinglePage.tags=einzelseite
|
||||||
|
|
||||||
|
|
||||||
home.showJS.title=Javascript anzeigen
|
home.showJS.title=Javascript anzeigen
|
||||||
|
@ -363,26 +365,31 @@ home.showJS.desc=Alle Javascript Funktionen in einer PDF anzeigen
|
||||||
showJS.tags=JS
|
showJS.tags=JS
|
||||||
|
|
||||||
home.autoRedact.title=Automatisch zensieren/schwärzen
|
home.autoRedact.title=Automatisch zensieren/schwärzen
|
||||||
home.autoRedact.desc=Automatisches zensierten (Schwärzen) von Text in einer PDF-Datei basierend auf dem eingegebenen Text
|
home.autoRedact.desc=Automatisches Zensieren (Schwärzen) von Text in einer PDF-Datei basierend auf dem eingegebenen Text
|
||||||
showJS.tags=JS
|
showJS.tags=zensieren,schwärzen
|
||||||
|
|
||||||
home.tableExtraxt.title=Tabelle extrahieren
|
home.tableExtraxt.title=Tabelle extrahieren
|
||||||
home.tableExtraxt.desc=Tabelle aus PDF in CSV extrahieren
|
home.tableExtraxt.desc=Tabelle aus PDF in CSV extrahieren
|
||||||
tableExtraxt.tags=CSV
|
tableExtraxt.tags=CSV
|
||||||
|
|
||||||
|
|
||||||
home.autoSizeSplitPDF.title=Auto Split by Size/Count
|
home.autoSizeSplitPDF.title=Teilen nach Größe/Anzahl
|
||||||
home.autoSizeSplitPDF.desc=Split a single PDF into multiple documents based on size, page count, or document count
|
home.autoSizeSplitPDF.desc=Teilen Sie ein einzelnes PDF basierend auf Größe, Seitenanzahl oder Dokumentanzahl in mehrere Dokumente auf
|
||||||
autoSizeSplitPDF.tags=pdf,split,document,organization
|
autoSizeSplitPDF.tags=pdf,teilen,dokument,organisation
|
||||||
|
|
||||||
|
|
||||||
home.overlay-pdfs.title=Overlay PDFs
|
home.overlay-pdfs.title=PDF mit Overlay versehen
|
||||||
home.overlay-pdfs.desc=Overlays PDFs on-top of another PDF
|
home.overlay-pdfs.desc=Überlagert eine PDF über eine andere PDF
|
||||||
overlay-pdfs.tags=Overlay
|
overlay-pdfs.tags=overlay,überlagern
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
# #
|
# #
|
||||||
|
@ -408,7 +415,7 @@ autoRedact.useRegexLabel=Regex verwenden
|
||||||
autoRedact.wholeWordSearchLabel=Ganzes Wort suchen
|
autoRedact.wholeWordSearchLabel=Ganzes Wort suchen
|
||||||
autoRedact.customPaddingLabel=Benutzerdefinierte Extra-Padding
|
autoRedact.customPaddingLabel=Benutzerdefinierte Extra-Padding
|
||||||
autoRedact.convertPDFToImageLabel=PDF in PDF-Bild konvertieren (zum Entfernen von Text hinter dem Kasten)
|
autoRedact.convertPDFToImageLabel=PDF in PDF-Bild konvertieren (zum Entfernen von Text hinter dem Kasten)
|
||||||
autoRedact.submitButton=zensieren
|
autoRedact.submitButton=Zensieren
|
||||||
|
|
||||||
|
|
||||||
#showJS
|
#showJS
|
||||||
|
@ -459,8 +466,38 @@ HTMLToPDF.header=HTML zu PDF
|
||||||
HTMLToPDF.help=Akzeptiert HTML-Dateien und ZIPs mit html/css/images etc.
|
HTMLToPDF.help=Akzeptiert HTML-Dateien und ZIPs mit html/css/images etc.
|
||||||
HTMLToPDF.submit=Konvertieren
|
HTMLToPDF.submit=Konvertieren
|
||||||
HTMLToPDF.credit=Verwendet WeasyPrint
|
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
|
||||||
sanitizePDF.title=PDF Bereinigen
|
sanitizePDF.title=PDF Bereinigen
|
||||||
sanitizePDF.header=PDF Bereinigen
|
sanitizePDF.header=PDF Bereinigen
|
||||||
|
@ -572,9 +609,9 @@ removeBlanks.submit=Leere Seiten entfernen
|
||||||
|
|
||||||
|
|
||||||
#removeAnnotations
|
#removeAnnotations
|
||||||
removeAnnotations.title=Remove Annotations
|
removeAnnotations.title=Kommentare entfernen
|
||||||
removeAnnotations.header=Remove Annotations
|
removeAnnotations.header=Kommentare entfernen
|
||||||
removeAnnotations.submit=Remove
|
removeAnnotations.submit=Entfernen
|
||||||
|
|
||||||
|
|
||||||
#compare
|
#compare
|
||||||
|
@ -591,7 +628,7 @@ sign.header=PDFs signieren
|
||||||
sign.upload=Bild hochladen
|
sign.upload=Bild hochladen
|
||||||
sign.draw=Signatur zeichnen
|
sign.draw=Signatur zeichnen
|
||||||
sign.text=Texteingabe
|
sign.text=Texteingabe
|
||||||
sign.clear=Klar
|
sign.clear=Leeren
|
||||||
sign.add=Signieren
|
sign.add=Signieren
|
||||||
|
|
||||||
|
|
||||||
|
@ -883,44 +920,44 @@ PDFToXML.submit=Konvertieren
|
||||||
#PDFToCSV
|
#PDFToCSV
|
||||||
PDFToCSV.title=PDF zu CSV
|
PDFToCSV.title=PDF zu CSV
|
||||||
PDFToCSV.header=PDF zu CSV
|
PDFToCSV.header=PDF zu CSV
|
||||||
PDFToCSV.prompt=Choose page to extract table
|
PDFToCSV.prompt=Seite mit der zu extrahierenden Tabelle wählen
|
||||||
PDFToCSV.submit=Extrakt
|
PDFToCSV.submit=Extrahieren
|
||||||
|
|
||||||
#split-by-size-or-count
|
#split-by-size-or-count
|
||||||
split-by-size-or-count.header=Split PDF by Size or Count
|
split-by-size-or-count.header=PDF nach Größe oder Anzahl teilen
|
||||||
split-by-size-or-count.type.label=Select Split Type
|
split-by-size-or-count.type.label=Teil-Modus wählen
|
||||||
split-by-size-or-count.type.size=By Size
|
split-by-size-or-count.type.size=Nach Größe
|
||||||
split-by-size-or-count.type.pageCount=By Page Count
|
split-by-size-or-count.type.pageCount=Nach Anzahl Seiten
|
||||||
split-by-size-or-count.type.docCount=By Document Count
|
split-by-size-or-count.type.docCount=Nach Anzahl Dokumenten
|
||||||
split-by-size-or-count.value.label=Enter Value
|
split-by-size-or-count.value.label=Wert eingeben
|
||||||
split-by-size-or-count.value.placeholder=Enter size (e.g., 2MB or 3KB) or count (e.g., 5)
|
split-by-size-or-count.value.placeholder=Größe eingeben (z. B.: 2MB oder 3KB) oder Anzahl (z. B.: 5)
|
||||||
split-by-size-or-count.submit=Submit
|
split-by-size-or-count.submit=Erstellen
|
||||||
|
|
||||||
|
|
||||||
#overlay-pdfs
|
#overlay-pdfs
|
||||||
overlay-pdfs.header=Overlay PDF Files
|
overlay-pdfs.header=PDF mit Overlay versehen
|
||||||
overlay-pdfs.baseFile.label=Select Base PDF File
|
overlay-pdfs.baseFile.label=Basis-PDF-Datei auswählen
|
||||||
overlay-pdfs.overlayFiles.label=Select Overlay PDF Files
|
overlay-pdfs.overlayFiles.label=Overlay-PDF-Datei auswählen
|
||||||
overlay-pdfs.mode.label=Select Overlay Mode
|
overlay-pdfs.mode.label=Overlay-Modus auswählen
|
||||||
overlay-pdfs.mode.sequential=Sequential Overlay
|
overlay-pdfs.mode.sequential=Sequentielles Overlay
|
||||||
overlay-pdfs.mode.interleaved=Interleaved Overlay
|
overlay-pdfs.mode.interleaved=Verschachteltes Overlay
|
||||||
overlay-pdfs.mode.fixedRepeat=Fixed Repeat Overlay
|
overlay-pdfs.mode.fixedRepeat=Feste-Wiederholung Overlay
|
||||||
overlay-pdfs.counts.label=Overlay Counts (for Fixed Repeat Mode)
|
overlay-pdfs.counts.label=Overlay Anzahl (für Feste-Wiederholung)
|
||||||
overlay-pdfs.counts.placeholder=Enter comma-separated counts (e.g., 2,3,1)
|
overlay-pdfs.counts.placeholder=Komma-separierte Anzahl eingeben (z. B.: 2,3,1)
|
||||||
overlay-pdfs.position.label=Select Overlay Position
|
overlay-pdfs.position.label=Overlay Position auswählen
|
||||||
overlay-pdfs.position.foreground=Foreground
|
overlay-pdfs.position.foreground=Vordergrund
|
||||||
overlay-pdfs.position.background=Background
|
overlay-pdfs.position.background=Hintergrund
|
||||||
overlay-pdfs.submit=Submit
|
overlay-pdfs.submit=Erstellen
|
||||||
|
|
||||||
|
|
||||||
#split-by-sections
|
#split-by-sections
|
||||||
split-by-sections.title=Split PDF by Sections
|
split-by-sections.title=PDF in Abschnitte teilen
|
||||||
split-by-sections.header=Split PDF into Sections
|
split-by-sections.header=PDF in Abschnitte teilen
|
||||||
split-by-sections.horizontal.label=Horizontal Divisions
|
split-by-sections.horizontal.label=Horizontale Teiler
|
||||||
split-by-sections.vertical.label=Vertical Divisions
|
split-by-sections.vertical.label=Vertikale Teiler
|
||||||
split-by-sections.horizontal.placeholder=Enter number of horizontal divisions
|
split-by-sections.horizontal.placeholder=Anzahl horizontaler Teiler eingeben
|
||||||
split-by-sections.vertical.placeholder=Enter number of vertical divisions
|
split-by-sections.vertical.placeholder=Anzahl vertikaler Teiler eingeben
|
||||||
split-by-sections.submit=Split PDF
|
split-by-sections.submit=PDF teilen
|
||||||
|
|
||||||
|
|
||||||
#licenses
|
#licenses
|
||||||
|
@ -931,4 +968,3 @@ licenses.module=Module
|
||||||
licenses.version=Version
|
licenses.version=Version
|
||||||
licenses.license=License
|
licenses.license=License
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=\u039C\u03C0\u03BB\u03AD
|
||||||
custom=\u03A0\u03C1\u03BF\u03C3\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE...
|
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!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
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!
|
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.
|
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.
|
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.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.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.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.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
|
||||||
sanitizePDF.title=\u0391\u03C0\u03BF\u03BB\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7 PDF
|
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
|
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...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
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
|
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
|
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 #
|
# 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.help=Accepts HTML files and ZIPs containing html/css/images etc required
|
||||||
HTMLToPDF.submit=Convert
|
HTMLToPDF.submit=Convert
|
||||||
HTMLToPDF.credit=Uses WeasyPrint
|
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
|
||||||
sanitizePDF.title=Sanitize PDF
|
sanitizePDF.title=Sanitize PDF
|
||||||
sanitizePDF.header=Sanitize a PDF file
|
sanitizePDF.header=Sanitize a PDF file
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blue
|
||||||
custom=Custom...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
userNotFoundMessage=User not found.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Accepts HTML files and ZIPs containing html/css/images etc required
|
||||||
HTMLToPDF.submit=Convert
|
HTMLToPDF.submit=Convert
|
||||||
HTMLToPDF.credit=Uses WeasyPrint
|
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
|
||||||
sanitizePDF.title=Sanitize PDF
|
sanitizePDF.title=Sanitize PDF
|
||||||
sanitizePDF.header=Sanitize a PDF file
|
sanitizePDF.header=Sanitize a PDF file
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Azul
|
||||||
custom=Personalizado...
|
custom=Personalizado...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Se cambiaron las credenciales!
|
changedCredsMessage=Se cambiaron las credenciales!
|
||||||
notAuthenticatedMessage=Usuario no autentificado.
|
notAuthenticatedMessage=Usuario no autentificado.
|
||||||
userNotFoundMessage=Usuario no encontrado.
|
userNotFoundMessage=Usuario no encontrado.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Acepta archivos HTML y ZIPs conteniendo los html/css/imágenes, etc, requeridas
|
||||||
HTMLToPDF.submit=Convertir
|
HTMLToPDF.submit=Convertir
|
||||||
HTMLToPDF.credit=Utiliza WeasyPrint
|
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
|
||||||
sanitizePDF.title=Desinfectar archivo PDF
|
sanitizePDF.title=Desinfectar archivo PDF
|
||||||
sanitizePDF.header=Desinfectar un archivo PDF
|
sanitizePDF.header=Desinfectar un archivo PDF
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Urdina
|
||||||
custom=Pertsonalizatu...
|
custom=Pertsonalizatu...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
userNotFoundMessage=User not found.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Html/css/images etab dituen HTML eta Zip fitxategiak onartzen ditu
|
||||||
HTMLToPDF.submit=Bihurtu
|
HTMLToPDF.submit=Bihurtu
|
||||||
HTMLToPDF.credit=WeasyPrint darabil
|
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
|
||||||
sanitizePDF.title=PDF-a desinfektatu
|
sanitizePDF.title=PDF-a desinfektatu
|
||||||
sanitizePDF.header=PDF fitxategi bat desinfektatu
|
sanitizePDF.header=PDF fitxategi bat desinfektatu
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Bleu
|
||||||
custom=Personnalisé\u2026
|
custom=Personnalisé\u2026
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Les identifiants ont été mis à jour\u00a0!
|
changedCredsMessage=Les identifiants ont été mis à jour\u00a0!
|
||||||
notAuthenticatedMessage=Utilisateur non authentifié.
|
notAuthenticatedMessage=Utilisateur non authentifié.
|
||||||
userNotFoundMessage=Utilisateur non trouvé.
|
userNotFoundMessage=Utilisateur non trouvé.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Accepte les fichiers HTML et les ZIP contenant du HTML, du CSS, des images, etc. (requis).
|
||||||
HTMLToPDF.submit=Convertir
|
HTMLToPDF.submit=Convertir
|
||||||
HTMLToPDF.credit=Utilise WeasyPrint.
|
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
|
||||||
sanitizePDF.title=Assainir
|
sanitizePDF.title=Assainir
|
||||||
sanitizePDF.header=Assainir
|
sanitizePDF.header=Assainir
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=नीला
|
||||||
custom=कस्टम...
|
custom=कस्टम...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=क्रेडेंशियल्स बदल दी गईं!
|
changedCredsMessage=क्रेडेंशियल्स बदल दी गईं!
|
||||||
notAuthenticatedMessage=उपयोगकर्ता प्रमाणित नहीं है।
|
notAuthenticatedMessage=उपयोगकर्ता प्रमाणित नहीं है।
|
||||||
userNotFoundMessage=उपयोगकर्ता नहीं मिला।
|
userNotFoundMessage=उपयोगकर्ता नहीं मिला।
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
pipelineOptions.saveButton=Download
|
||||||
|
@ -384,6 +386,11 @@ home.split-by-sections.title=खंडों से पीडीएफ़ वि
|
||||||
home.split-by-sections.desc=पीडीएफ़ के प्रत्येक पृष्ठ को छोटे से छोटे क्षैतिज और ऊर्ध्वाधर खंडों में विभाजित करें
|
home.split-by-sections.desc=पीडीएफ़ के प्रत्येक पृष्ठ को छोटे से छोटे क्षैतिज और ऊर्ध्वाधर खंडों में विभाजित करें
|
||||||
split-by-sections.tags=खंड विभाजन, विभाजित करें, अनुकूलित
|
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 #
|
# WEB PAGES #
|
||||||
|
@ -459,8 +466,38 @@ HTMLToPDF.header=HTML से पीडीएफ़
|
||||||
HTMLToPDF.help=HTML फ़ाइलों और html/css/images आदि को आत्मसात करने वाले ZIPs को स्वीकार करता है
|
HTMLToPDF.help=HTML फ़ाइलों और html/css/images आदि को आत्मसात करने वाले ZIPs को स्वीकार करता है
|
||||||
HTMLToPDF.submit=रूपांतरित करें
|
HTMLToPDF.submit=रूपांतरित करें
|
||||||
HTMLToPDF.credit=WeasyPrint का प्रयोग होता है
|
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
|
||||||
sanitizePDF.title=पीडीएफ़ को सफाई करें
|
sanitizePDF.title=पीडीएफ़ को सफाई करें
|
||||||
sanitizePDF.header=एक पीडीएफ़ फ़ाइल को सफाई करें
|
sanitizePDF.header=एक पीडीएफ़ फ़ाइल को सफाई करें
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Kék
|
||||||
custom=Egyedi...
|
custom=Egyedi...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=A hitelek megváltoztak!
|
changedCredsMessage=A hitelek megváltoztak!
|
||||||
notAuthenticatedMessage=Felhasználó nincs hitelesítve.
|
notAuthenticatedMessage=Felhasználó nincs hitelesítve.
|
||||||
userNotFoundMessage=A felhasználó nem található.
|
userNotFoundMessage=A felhasználó nem található.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Elfogad HTML fájlokat és ZIP-fájlokat, amelyek tartalmaznak html/css/képeket stb.
|
||||||
HTMLToPDF.submit=Átalakítás
|
HTMLToPDF.submit=Átalakítás
|
||||||
HTMLToPDF.credit=WeasyPrint alkalmazása
|
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
|
||||||
sanitizePDF.title=PDF tisztítása
|
sanitizePDF.title=PDF tisztítása
|
||||||
sanitizePDF.header=PDF fájl megtisztítása
|
sanitizePDF.header=PDF fájl megtisztítása
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Biru
|
||||||
custom=Kustom...
|
custom=Kustom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Kredensial berubah!!
|
changedCredsMessage=Kredensial berubah!!
|
||||||
notAuthenticatedMessage=Pengguna tidak ter-autentikasi.
|
notAuthenticatedMessage=Pengguna tidak ter-autentikasi.
|
||||||
userNotFoundMessage=Pengguna tidak ditemukan.
|
userNotFoundMessage=Pengguna tidak ditemukan.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Menerima berkas HTML dan ZIP yang berisi html / css / gambar, dll yang diperlukan
|
||||||
HTMLToPDF.submit=Konversi
|
HTMLToPDF.submit=Konversi
|
||||||
HTMLToPDF.credit=Menggunakan WeasyPrint
|
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
|
||||||
sanitizePDF.title=Bersihkan PDF
|
sanitizePDF.title=Bersihkan PDF
|
||||||
sanitizePDF.header=Membersihkan berkas PDF
|
sanitizePDF.header=Membersihkan berkas PDF
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blu
|
||||||
custom=Personalizzato
|
custom=Personalizzato
|
||||||
WorkInProgess=Lavori in corso, potrebbe non funzionare o essere difettoso, segnalare eventuali problemi!
|
WorkInProgess=Lavori in corso, potrebbe non funzionare o essere difettoso, segnalare eventuali problemi!
|
||||||
poweredBy=Alimentato da
|
poweredBy=Alimentato da
|
||||||
|
yes=Si
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credenziali cambiate!
|
changedCredsMessage=Credenziali cambiate!
|
||||||
notAuthenticatedMessage=Utente non autenticato.
|
notAuthenticatedMessage=Utente non autenticato.
|
||||||
userNotFoundMessage=Utente non trovato.
|
userNotFoundMessage=Utente non trovato.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Configurazione Pipeline
|
||||||
pipelineOptions.pipelineNameLabel=Nome della Pipeline
|
pipelineOptions.pipelineNameLabel=Nome della Pipeline
|
||||||
pipelineOptions.saveSettings=Salva Impostazioni
|
pipelineOptions.saveSettings=Salva Impostazioni
|
||||||
pipelineOptions.pipelineNamePrompt=Inserisci qui il nome della pipeline
|
pipelineOptions.pipelineNamePrompt=Inserisci qui il nome della pipeline
|
||||||
|
pipelineOptions.selectOperation=Seleziona operazione
|
||||||
pipelineOptions.addOperationButton=Aggiungi operazione
|
pipelineOptions.addOperationButton=Aggiungi operazione
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
pipelineOptions.saveButton=Download
|
||||||
|
@ -234,7 +236,7 @@ ocr.tags=riconoscimento,testo,immagine,scansione,lettura,identificazione,rilevam
|
||||||
|
|
||||||
home.extractImages.title=Estrai immagini
|
home.extractImages.title=Estrai immagini
|
||||||
home.extractImages.desc=Estrai tutte le immagini da un PDF e salvale come zip.
|
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.title=Converti in PDF/A
|
||||||
home.pdfToPDFA.desc=Converti un PDF nel formato PDF/A per archiviazione a lungo termine.
|
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.title=Rinomina automaticamente il file PDF
|
||||||
home.auto-rename.desc=Rinomina automaticamente un file PDF in base all'intestazione rilevata
|
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.title=Regola colori/contrasto
|
||||||
home.adjust-contrast.desc=Regola contrasto, saturazione e luminosità di un PDF
|
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
|
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
|
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 #
|
# 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.help=Accetta file HTML e ZIP contenenti html/css/immagini ecc. richiesti
|
||||||
HTMLToPDF.submit=Converti
|
HTMLToPDF.submit=Converti
|
||||||
HTMLToPDF.credit=Utilizza WeasyPrint
|
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
|
||||||
sanitizePDF.title=Pulire PDF
|
sanitizePDF.title=Pulire PDF
|
||||||
sanitizePDF.header=Pulisci un file PDF
|
sanitizePDF.header=Pulisci un file PDF
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=青
|
||||||
custom=カスタム...
|
custom=カスタム...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=資格情報が変更されました!
|
changedCredsMessage=資格情報が変更されました!
|
||||||
notAuthenticatedMessage=ユーザーが認証されていません。
|
notAuthenticatedMessage=ユーザーが認証されていません。
|
||||||
userNotFoundMessage=ユーザーが見つかりません。
|
userNotFoundMessage=ユーザーが見つかりません。
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=パイプライン設定
|
||||||
pipelineOptions.pipelineNameLabel=パイプライン名
|
pipelineOptions.pipelineNameLabel=パイプライン名
|
||||||
pipelineOptions.saveSettings=動作設定の保存
|
pipelineOptions.saveSettings=動作設定の保存
|
||||||
pipelineOptions.pipelineNamePrompt=ここにパイプライン名を入力
|
pipelineOptions.pipelineNamePrompt=ここにパイプライン名を入力
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=動作の追加
|
pipelineOptions.addOperationButton=動作の追加
|
||||||
pipelineOptions.pipelineHeader=パイプライン:
|
pipelineOptions.pipelineHeader=パイプライン:
|
||||||
pipelineOptions.saveButton=ダウンロード
|
pipelineOptions.saveButton=ダウンロード
|
||||||
|
@ -384,6 +386,11 @@ home.split-by-sections.title=PDFをセクションで分割
|
||||||
home.split-by-sections.desc=PDFの各ページを縦横に分割します。
|
home.split-by-sections.desc=PDFの各ページを縦横に分割します。
|
||||||
split-by-sections.tags=Section Split, Divide, Customize
|
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 #
|
# WEB PAGES #
|
||||||
|
@ -459,8 +466,38 @@ HTMLToPDF.header=HTMLをPDFに変換
|
||||||
HTMLToPDF.help=HTMLファイルと必要なhtml/css/画像などを含むZIPを受け入れます
|
HTMLToPDF.help=HTMLファイルと必要なhtml/css/画像などを含むZIPを受け入れます
|
||||||
HTMLToPDF.submit=変換
|
HTMLToPDF.submit=変換
|
||||||
HTMLToPDF.credit=WeasyPrintを使用
|
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
|
||||||
sanitizePDF.title=PDFをサニタイズ
|
sanitizePDF.title=PDFをサニタイズ
|
||||||
sanitizePDF.header=PDFファイルをサニタイズ
|
sanitizePDF.header=PDFファイルをサニタイズ
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blue
|
||||||
custom=Custom...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=계정 정보 변경 성공!
|
changedCredsMessage=계정 정보 변경 성공!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=사용자를 찾을 수 없습니다.
|
userNotFoundMessage=사용자를 찾을 수 없습니다.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# WEB PAGES #
|
||||||
|
@ -459,8 +466,38 @@ HTMLToPDF.header=HTML 파일을 PDF 문서로 변환
|
||||||
HTMLToPDF.help=HTML 파일, 또는 html/css/이미지 등을 포함한 ZIP 파일을 받습니다.
|
HTMLToPDF.help=HTML 파일, 또는 html/css/이미지 등을 포함한 ZIP 파일을 받습니다.
|
||||||
HTMLToPDF.submit=변환
|
HTMLToPDF.submit=변환
|
||||||
HTMLToPDF.credit=이 기능은 WeasyPrint를 사용합니다.
|
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
|
||||||
sanitizePDF.title=PDF 정제
|
sanitizePDF.title=PDF 정제
|
||||||
sanitizePDF.header=PDF 문서 정제
|
sanitizePDF.header=PDF 문서 정제
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# the direction that the language is written (ltr=left to right, rtl = right to left)
|
# the direction that the language is written (ltr=left to right, rtl = right to left)
|
||||||
language.direction=ltr
|
language.direction=ltr
|
||||||
|
|
||||||
pdfPrompt=Selecteer PDF(s)
|
pdfPrompt=Selecteer PDF('s)
|
||||||
multiPdfPrompt=Selecteer PDFs (2+)
|
multiPdfPrompt=Selecteer PDFs (2+)
|
||||||
multiPdfDropPrompt=Selecteer (of sleep & zet neer) alle PDFs die je nodig hebt
|
multiPdfDropPrompt=Selecteer (of sleep & zet neer) alle PDFs die je nodig hebt
|
||||||
imgPrompt=Selecteer afbeelding(en)
|
imgPrompt=Selecteer afbeelding(en)
|
||||||
|
@ -29,49 +29,51 @@ pageNum=Paginanummer
|
||||||
sizes.small=Klein
|
sizes.small=Klein
|
||||||
sizes.medium=Medium
|
sizes.medium=Medium
|
||||||
sizes.large=Groot
|
sizes.large=Groot
|
||||||
sizes.x-large=Extra Groot
|
sizes.x-large=Extra groot
|
||||||
error.pdfPassword=Het PDF document is beveiligd met een wachtwoord en het wachtwoord is niet ingevoerd of was onjuist
|
error.pdfPassword=Het PDF document is beveiligd met een wachtwoord en het wachtwoord is niet ingevoerd of is onjuist
|
||||||
delete=Verwijderen
|
delete=Verwijderen
|
||||||
username=Gebruikersnaam
|
username=Gebruikersnaam
|
||||||
password=Wachtwoord
|
password=Wachtwoord
|
||||||
welcome=Welkom
|
welcome=Welkom
|
||||||
property=Property
|
property=Eigenschap
|
||||||
black=Black
|
black=Zwart
|
||||||
white=White
|
white=Wit
|
||||||
red=Red
|
red=Rood
|
||||||
green=Green
|
green=Groen
|
||||||
blue=Blue
|
blue=Blauw
|
||||||
custom=Custom...
|
custom=Aangepast...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Werk in uitvoering. Werkt mogelijk niet of bevat fouten. Meld eventuele problemen!
|
||||||
poweredBy=Powered by
|
poweredBy=Mogelijk gemaakt door
|
||||||
|
yes=Ja
|
||||||
changedCredsMessage=Credentials changed!
|
no=Nee
|
||||||
notAuthenticatedMessage=User not authenticated.
|
changedCredsMessage=Inloggegevens gewijzigd!
|
||||||
userNotFoundMessage=User not found.
|
notAuthenticatedMessage=Gebruiker niet ingelogd.
|
||||||
incorrectPasswordMessage=Current password is incorrect.
|
userNotFoundMessage=Gebruiker niet gevonden.
|
||||||
usernameExistsMessage=New Username already exists.
|
incorrectPasswordMessage=Huidige wachtwoord is onjuist.
|
||||||
|
usernameExistsMessage=Nieuwe gebruikersnaam bestaat al.
|
||||||
|
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
###############
|
###############
|
||||||
pipeline.header=Pipeline Menu (Alpha)
|
pipeline.header=Pijplijn menu (Alpha)
|
||||||
pipeline.uploadButton=Upload Custom
|
pipeline.uploadButton=Aangepast uploaden
|
||||||
pipeline.configureButton=Configure
|
pipeline.configureButton=Configureren
|
||||||
pipeline.defaultOption=Custom
|
pipeline.defaultOption=Aangepast
|
||||||
pipeline.submitButton=Submit
|
pipeline.submitButton=Opslaan
|
||||||
|
|
||||||
######################
|
######################
|
||||||
# Pipeline Options #
|
# Pipeline Options #
|
||||||
######################
|
######################
|
||||||
pipelineOptions.header=Pipeline Configuration
|
pipelineOptions.header=Pijplijn onfiguratie
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pijplijn naam
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Instellingen voor bewerking opslaan
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Voer hier de naam van de pijplijn in
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.selectOperation=Selecteer bewerking
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.addOperationButton=Bewerking toevoegen
|
||||||
pipelineOptions.saveButton=Download
|
pipelineOptions.pipelineHeader=Pijplijn:
|
||||||
pipelineOptions.validateButton=Validate
|
pipelineOptions.saveButton=Downloaden
|
||||||
|
pipelineOptions.validateButton=Valideren
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,7 +85,7 @@ navbar.convert=Converteren
|
||||||
navbar.security=Beveiliging
|
navbar.security=Beveiliging
|
||||||
navbar.other=Overige
|
navbar.other=Overige
|
||||||
navbar.darkmode=Donkere modus
|
navbar.darkmode=Donkere modus
|
||||||
navbar.pageOps=Pagina operaties
|
navbar.pageOps=Pagina bewerkingen
|
||||||
navbar.settings=Instellingen
|
navbar.settings=Instellingen
|
||||||
|
|
||||||
#############
|
#############
|
||||||
|
@ -96,20 +98,20 @@ settings.downloadOption.title=Kies download optie (Voor enkelvoudige bestanddown
|
||||||
settings.downloadOption.1=Open in hetzelfde venster
|
settings.downloadOption.1=Open in hetzelfde venster
|
||||||
settings.downloadOption.2=Open in nieuw venster
|
settings.downloadOption.2=Open in nieuw venster
|
||||||
settings.downloadOption.3=Download bestand
|
settings.downloadOption.3=Download bestand
|
||||||
settings.zipThreshold=Zip bestanden wanneer het aantal gedownloade bestanden overschrijdt
|
settings.zipThreshold=Bestanden zippen wanneer het aantal gedownloade bestanden meer is dan
|
||||||
settings.signOut=Uitloggen
|
settings.signOut=Uitloggen
|
||||||
settings.accountSettings=Account instellingen
|
settings.accountSettings=Account instellingen
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
changeCreds.title=Change Credentials
|
changeCreds.title=Inloggegevens wijzigen
|
||||||
changeCreds.header=Update Your Account Details
|
changeCreds.header=Werk je accountgegevens bij
|
||||||
changeCreds.changeUserAndPassword=You are using default login credentials. Please enter a new password (and username if wanted)
|
changeCreds.changeUserAndPassword=Je gebruikt de standaard inloggegevens. Voer een nieuw wachtwoord in (en eventueel een gebruikersnaam)
|
||||||
changeCreds.newUsername=New Username
|
changeCreds.newUsername=Nieuwe gebruikersnaam
|
||||||
changeCreds.oldPassword=Current Password
|
changeCreds.oldPassword=Huidige wachtwoord
|
||||||
changeCreds.newPassword=New Password
|
changeCreds.newPassword=Nieuw wachtwoord
|
||||||
changeCreds.confirmNewPassword=Confirm New Password
|
changeCreds.confirmNewPassword=Bevestig nieuw wachtwoord
|
||||||
changeCreds.submit=Submit Changes
|
changeCreds.submit=Wijzigingen opslaan
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,13 +131,13 @@ account.yourApiKey=Jouw API sleutel
|
||||||
account.syncTitle=Synchroniseer browserinstellingen met account
|
account.syncTitle=Synchroniseer browserinstellingen met account
|
||||||
account.settingsCompare=Instellingen vergelijking:
|
account.settingsCompare=Instellingen vergelijking:
|
||||||
account.property=Eigenschap
|
account.property=Eigenschap
|
||||||
account.webBrowserSettings=Web Browser instelling
|
account.webBrowserSettings=Webbrowser instelling
|
||||||
account.syncToBrowser=Synchroniseer account -> browser
|
account.syncToBrowser=Synchroniseer account -> browser
|
||||||
account.syncToAccount=Synchroniseer account <- browser
|
account.syncToAccount=Synchroniseer account <- browser
|
||||||
|
|
||||||
|
|
||||||
adminUserSettings.title=Gebruikerscontrole instellingen
|
adminUserSettings.title=Gebruikersbeheer
|
||||||
adminUserSettings.header=Beheer Gebruikerscontrole instellingen
|
adminUserSettings.header=Beheer gebruikers
|
||||||
adminUserSettings.admin=Beheerder
|
adminUserSettings.admin=Beheerder
|
||||||
adminUserSettings.user=Gebruiker
|
adminUserSettings.user=Gebruiker
|
||||||
adminUserSettings.addUser=Voeg nieuwe gebruiker toe
|
adminUserSettings.addUser=Voeg nieuwe gebruiker toe
|
||||||
|
@ -144,35 +146,35 @@ adminUserSettings.role=Rol
|
||||||
adminUserSettings.actions=Acties
|
adminUserSettings.actions=Acties
|
||||||
adminUserSettings.apiUser=Beperkte API gebruiker
|
adminUserSettings.apiUser=Beperkte API gebruiker
|
||||||
adminUserSettings.webOnlyUser=Alleen web gebruiker
|
adminUserSettings.webOnlyUser=Alleen web gebruiker
|
||||||
adminUserSettings.demoUser=Demo User (No custom settings)
|
adminUserSettings.demoUser=Demogebruiker (geen aangepaste instellingen)
|
||||||
adminUserSettings.forceChange=Force user to change username/password on login
|
adminUserSettings.forceChange=Forceer gebruiker om gebruikersnaam/wachtwoord te wijzigen bij inloggen
|
||||||
adminUserSettings.submit=Sla gebruiker op
|
adminUserSettings.submit=Gebruiker opslaan
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
#############
|
#############
|
||||||
home.desc=Jouw lokaal gehoste one-stop-shop voor al je PDF-behoeften.
|
home.desc=Jouw lokaal gehoste one-stop-shop voor al je PDF-behoeften.
|
||||||
home.searchBar=Search for features...
|
home.searchBar=Zoeken naar functies...
|
||||||
|
|
||||||
|
|
||||||
home.viewPdf.title=View PDF
|
home.viewPdf.title=PDF bekijken
|
||||||
home.viewPdf.desc=View, annotate, add text or images
|
home.viewPdf.desc=Bekijk, annoteer, voeg tekst of afbeeldingen toe
|
||||||
viewPdf.tags=view,read,annotate,text,image
|
viewPdf.tags=bekijken,lezen,annoteren,tekst,afbeelding
|
||||||
|
|
||||||
home.multiTool.title=PDF Multitool
|
home.multiTool.title=PDF multitool
|
||||||
home.multiTool.desc=Samenvoegen, draaien, herschikken en pagina''s verwijderen
|
home.multiTool.desc=Pagina's samenvoegen, draaien, herschikken en verwijderen
|
||||||
multiTool.tags=Multitool,Multi bewerking,UI,klik sleep,voorkant,clientzijde,interactief,beweegbaar,verplaats
|
multiTool.tags=Multitool,Multi bewerking,UI,klik sleep,voorkant,clientzijde,interactief,beweegbaar,verplaats
|
||||||
|
|
||||||
home.merge.title=Samenvoegen
|
home.merge.title=Samenvoegen
|
||||||
home.merge.desc=Voeg eenvoudig meerdere PDF''s samen tot één.
|
home.merge.desc=Voeg eenvoudig meerdere PDF's samen tot één.
|
||||||
merge.tags=samenvoegen,Pagina operaties,Serverkant
|
merge.tags=samenvoegen,Pagina bewerkingen,Serverkant
|
||||||
|
|
||||||
home.split.title=Splitsen
|
home.split.title=Splitsen
|
||||||
home.split.desc=Splits PDF''s in meerdere documenten
|
home.split.desc=Splits PDF's in meerdere documenten
|
||||||
split.tags=Pagina operaties,verdelen,meerdere pagina''s,knippen,serverzijde
|
split.tags=Pagina bewerkingen,verdelen,meerdere pagina's,knippen,serverzijde
|
||||||
|
|
||||||
home.rotate.title=Roteren
|
home.rotate.title=Roteren
|
||||||
home.rotate.desc=Roteer eenvoudig je PDF''s.
|
home.rotate.desc=Roteer eenvoudig je PDF's.
|
||||||
rotate.tags=serverzijde
|
rotate.tags=serverzijde
|
||||||
|
|
||||||
|
|
||||||
|
@ -185,7 +187,7 @@ home.pdfToImage.desc=Converteer een PDF naar een afbeelding. (PNG, JPEG, GIF)
|
||||||
pdfToImage.tags=conversie,img,jpg,foto
|
pdfToImage.tags=conversie,img,jpg,foto
|
||||||
|
|
||||||
home.pdfOrganiser.title=Organiseren
|
home.pdfOrganiser.title=Organiseren
|
||||||
home.pdfOrganiser.desc=Verwijder/Herschik pagina''s in een volgorde naar keus
|
home.pdfOrganiser.desc=Verwijder/herschik pagina's in een volgorde naar keus
|
||||||
pdfOrganiser.tags=duplex,even oneven,sorteren,verplaatsen
|
pdfOrganiser.tags=duplex,even oneven,sorteren,verplaatsen
|
||||||
|
|
||||||
|
|
||||||
|
@ -203,8 +205,8 @@ permissions.tags=lezen,schrijven,bewerken,printen
|
||||||
|
|
||||||
|
|
||||||
home.removePages.title=Verwijderen
|
home.removePages.title=Verwijderen
|
||||||
home.removePages.desc=Verwijder ongewenste pagina''s uit je PDF-document.
|
home.removePages.desc=Verwijder ongewenste pagina's uit je PDF-document.
|
||||||
removePages.tags=Pagina''s verwijderen
|
removePages.tags=Pagina's verwijderen
|
||||||
|
|
||||||
home.addPassword.title=Wachtwoord toevoegen
|
home.addPassword.title=Wachtwoord toevoegen
|
||||||
home.addPassword.desc=Versleutel je PDF-document met een wachtwoord.
|
home.addPassword.desc=Versleutel je PDF-document met een wachtwoord.
|
||||||
|
@ -220,7 +222,7 @@ compressPdfs.tags=comprimeren,klein
|
||||||
|
|
||||||
|
|
||||||
home.changeMetadata.title=Metadata wijzigen
|
home.changeMetadata.title=Metadata wijzigen
|
||||||
home.changeMetadata.desc=Wijzig/Verwijder/Voeg metadata toe van een PDF-document
|
home.changeMetadata.desc=Wijzig/verwijder/voeg metadata toe van een PDF-document
|
||||||
changeMetadata.tags=Titel,auteur,datum,creatie,tijd,uitgever,producent,statistieken
|
changeMetadata.tags=Titel,auteur,datum,creatie,tijd,uitgever,producent,statistieken
|
||||||
|
|
||||||
home.fileToPDF.title=Bestand naar PDF converteren
|
home.fileToPDF.title=Bestand naar PDF converteren
|
||||||
|
@ -261,8 +263,8 @@ home.PDFToXML.title=PDF naar XML
|
||||||
home.PDFToXML.desc=Converteer PDF naar XML formaat
|
home.PDFToXML.desc=Converteer PDF naar XML formaat
|
||||||
PDFToXML.tags=data-extractie,gestructureerd,code
|
PDFToXML.tags=data-extractie,gestructureerd,code
|
||||||
|
|
||||||
home.ScannerImageSplit.title=Detecteer/Split gescande foto''s
|
home.ScannerImageSplit.title=Detecteer/Split gescande foto's
|
||||||
home.ScannerImageSplit.desc=Splits meerdere foto''s van binnen een foto/PDF
|
home.ScannerImageSplit.desc=Splits meerdere foto's van binnen een foto/PDF
|
||||||
ScannerImageSplit.tags=scheiden,auto-detecteren,scans,meer-foto,organiseren
|
ScannerImageSplit.tags=scheiden,auto-detecteren,scans,meer-foto,organiseren
|
||||||
|
|
||||||
home.sign.title=Ondertekenen
|
home.sign.title=Ondertekenen
|
||||||
|
@ -277,16 +279,16 @@ home.repair.title=Repareren
|
||||||
home.repair.desc=Probeert een corrupt/beschadigd PDF te herstellen
|
home.repair.desc=Probeert een corrupt/beschadigd PDF te herstellen
|
||||||
repair.tags=repareren,herstellen,correctie,terughalen
|
repair.tags=repareren,herstellen,correctie,terughalen
|
||||||
|
|
||||||
home.removeBlanks.title=Verwijder lege pagina''s
|
home.removeBlanks.title=Verwijder lege pagina's
|
||||||
home.removeBlanks.desc=Detecteert en verwijdert lege pagina''s uit een document
|
home.removeBlanks.desc=Detecteert en verwijdert lege pagina's uit een document
|
||||||
removeBlanks.tags=opruimen,stroomlijnen,geen-inhoud,organiseren
|
removeBlanks.tags=opruimen,stroomlijnen,geen-inhoud,organiseren
|
||||||
|
|
||||||
home.removeAnnotations.title=Remove Annotations
|
home.removeAnnotations.title=Annotaties verwijderen
|
||||||
home.removeAnnotations.desc=Removes all comments/annotations from a PDF
|
home.removeAnnotations.desc=Verwijdert alle opmerkingen/annotaties uit een PDF
|
||||||
removeAnnotations.tags=comments,highlight,notes,markup,remove
|
removeAnnotations.tags=opmerkingen,highlight,notities,opmaak,verwijderen
|
||||||
|
|
||||||
home.compare.title=Vergelijken
|
home.compare.title=Vergelijken
|
||||||
home.compare.desc=Vergelijkt en toont de verschillen tussen 2 PDF-documenten
|
home.compare.desc=Vergelijkt en toont de verschillen tussen twee PDF-documenten
|
||||||
compare.tags=onderscheiden,contrasteren,veranderingen,analyse
|
compare.tags=onderscheiden,contrasteren,veranderingen,analyse
|
||||||
|
|
||||||
home.certSign.title=Ondertekenen met certificaat
|
home.certSign.title=Ondertekenen met certificaat
|
||||||
|
@ -294,7 +296,7 @@ home.certSign.desc=Ondertekent een PDF met een certificaat/sleutel (PEM/P12)
|
||||||
certSign.tags=authenticeren,PEM,P12,officieel,versleutelen
|
certSign.tags=authenticeren,PEM,P12,officieel,versleutelen
|
||||||
|
|
||||||
home.pageLayout.title=Multi-pagina indeling
|
home.pageLayout.title=Multi-pagina indeling
|
||||||
home.pageLayout.desc=Voeg meerdere pagina''s van een PDF-document samen op één pagina
|
home.pageLayout.desc=Voeg meerdere pagina's van een PDF-document samen op één pagina
|
||||||
pageLayout.tags=samenvoegen,composiet,enkel-zicht,organiseren
|
pageLayout.tags=samenvoegen,composiet,enkel-zicht,organiseren
|
||||||
|
|
||||||
home.scalePages.title=Aanpassen paginaformaat/schaal
|
home.scalePages.title=Aanpassen paginaformaat/schaal
|
||||||
|
@ -302,7 +304,7 @@ home.scalePages.desc=Wijzig de grootte/schaal van een pagina en/of de inhoud erv
|
||||||
scalePages.tags=resize,aanpassen,dimensie,aanpassen
|
scalePages.tags=resize,aanpassen,dimensie,aanpassen
|
||||||
|
|
||||||
home.pipeline.title=Pijplijn (Geavanceerd)
|
home.pipeline.title=Pijplijn (Geavanceerd)
|
||||||
home.pipeline.desc=Voer meerdere acties uit op PDF''s door pipelinescripts te definiëren
|
home.pipeline.desc=Voer meerdere acties uit op PDF's door pipelinescripts te definiëren
|
||||||
pipeline.tags=automatiseren,volgorde,gescrript,batch-verwerking
|
pipeline.tags=automatiseren,volgorde,gescrript,batch-verwerking
|
||||||
|
|
||||||
home.add-page-numbers.title=Paginanummers toevoegen
|
home.add-page-numbers.title=Paginanummers toevoegen
|
||||||
|
@ -313,15 +315,15 @@ home.auto-rename.title=Automatisch hernoemen PDF-bestand
|
||||||
home.auto-rename.desc=Hernoemt automatisch een PDF-bestand op basis van de gedetecteerde header
|
home.auto-rename.desc=Hernoemt automatisch een PDF-bestand op basis van de gedetecteerde header
|
||||||
auto-rename.tags=auto-detecteren,op-header-gebaseerd,organiseren,herlabelen
|
auto-rename.tags=auto-detecteren,op-header-gebaseerd,organiseren,herlabelen
|
||||||
|
|
||||||
home.adjust-contrast.title=Kleuren/Contrast aanpassen
|
home.adjust-contrast.title=Kleuren/contrast aanpassen
|
||||||
home.adjust-contrast.desc=Pas Contrast, Verzadiging en Helderheid van een PDF aan
|
home.adjust-contrast.desc=Pas contrast, verzadiging en helderheid van een PDF aan
|
||||||
adjust-contrast.tags=kleur-correctie,afstemmen,aanpassen,verbeteren
|
adjust-contrast.tags=kleur-correctie,afstemmen,aanpassen,verbeteren
|
||||||
|
|
||||||
home.crop.title=PDF bijsnijden
|
home.crop.title=PDF bijsnijden
|
||||||
home.crop.desc=Snijd een PDF bij om de grootte te verkleinen (behoudt tekst!)
|
home.crop.desc=Snijd een PDF bij om de grootte te verkleinen (behoudt tekst!)
|
||||||
crop.tags=trimmen,verkleinen,bewerken,vorm
|
crop.tags=trimmen,verkleinen,bewerken,vorm
|
||||||
|
|
||||||
home.autoSplitPDF.title=Automatisch splitsen pagina''s
|
home.autoSplitPDF.title=Automatisch splitsen pagina's
|
||||||
home.autoSplitPDF.desc=Automatisch splitsen van gescande PDF met fysieke gescande paginasplitter QR-code
|
home.autoSplitPDF.desc=Automatisch splitsen van gescande PDF met fysieke gescande paginasplitter QR-code
|
||||||
autoSplitPDF.tags=QR-gebaseerd,scheiden,scan-segment,organiseren
|
autoSplitPDF.tags=QR-gebaseerd,scheiden,scan-segment,organiseren
|
||||||
|
|
||||||
|
@ -329,7 +331,7 @@ home.sanitizePdf.title=Opschonen
|
||||||
home.sanitizePdf.desc=Verwijder scripts en andere elementen uit PDF-bestanden
|
home.sanitizePdf.desc=Verwijder scripts en andere elementen uit PDF-bestanden
|
||||||
sanitizePdf.tags=schoonmaken,veilig,veilig,bedreigingen verwijderen
|
sanitizePdf.tags=schoonmaken,veilig,veilig,bedreigingen verwijderen
|
||||||
|
|
||||||
home.URLToPDF.title=URL/Website naar PDF
|
home.URLToPDF.title=URL/website naar PDF
|
||||||
home.URLToPDF.desc=Zet http(s)URL om naar PDF
|
home.URLToPDF.desc=Zet http(s)URL om naar PDF
|
||||||
URLToPDF.tags=web-capture,pagina opslaan,web-naar-doc,archief
|
URLToPDF.tags=web-capture,pagina opslaan,web-naar-doc,archief
|
||||||
|
|
||||||
|
@ -344,17 +346,17 @@ MarkdownToPDF.tags=markup,web-inhoud,transformatie,omzetten
|
||||||
|
|
||||||
|
|
||||||
home.getPdfInfo.title=Haal ALLE informatie op over PDF
|
home.getPdfInfo.title=Haal ALLE informatie op over PDF
|
||||||
home.getPdfInfo.desc=Haalt alle mogelijke informatie op van PDF''s
|
home.getPdfInfo.desc=Haalt alle mogelijke informatie op van PDF's
|
||||||
getPdfInfo.tags=informatie,data,statistieken
|
getPdfInfo.tags=informatie,data,statistieken
|
||||||
|
|
||||||
|
|
||||||
home.extractPage.title=Pagina(''s) extraheren
|
home.extractPage.title=Pagina('s) extraheren
|
||||||
home.extractPage.desc=Extraheert geselecteerde pagina''s uit PDF
|
home.extractPage.desc=Extraheert geselecteerde pagina's uit PDF
|
||||||
extractPage.tags=extraheren
|
extractPage.tags=extraheren
|
||||||
|
|
||||||
|
|
||||||
home.PdfToSinglePage.title=PDF naar één grote pagina
|
home.PdfToSinglePage.title=PDF naar één grote pagina
|
||||||
home.PdfToSinglePage.desc=Voegt alle PDF-pagina''s samen tot één grote pagina
|
home.PdfToSinglePage.desc=Voegt alle PDF-pagina's samen tot één grote pagina
|
||||||
PdfToSinglePage.tags=één pagina
|
PdfToSinglePage.tags=één pagina
|
||||||
|
|
||||||
|
|
||||||
|
@ -362,27 +364,32 @@ home.showJS.title=Toon Javascript
|
||||||
home.showJS.desc=Zoekt en toont ieder script dat in een PDF is geïnjecteerd
|
home.showJS.desc=Zoekt en toont ieder script dat in een PDF is geïnjecteerd
|
||||||
showJS.tags=JS
|
showJS.tags=JS
|
||||||
|
|
||||||
home.autoRedact.title=Auto Redact
|
home.autoRedact.title=Automatisch censureren
|
||||||
home.autoRedact.desc=Auto Redacts(Blacks out) text in a PDF based on input text
|
home.autoRedact.desc=Automatisch censureren (onherkenbaar maken) van tekst in een PDF op basis van ingevoerde tekst
|
||||||
showJS.tags=JS
|
showJS.tags=JS
|
||||||
|
|
||||||
home.tableExtraxt.title=PDF to CSV
|
home.tableExtraxt.title=PDF naar CSV
|
||||||
home.tableExtraxt.desc=Extracts Tables from a PDF converting it to CSV
|
home.tableExtraxt.desc=Haalt tabellen uit een PDF en converteert ze naar CSV
|
||||||
tableExtraxt.tags=CSV,Table Extraction,extract,convert
|
tableExtraxt.tags=CSV,tabel extractie,extractie,converteren
|
||||||
|
|
||||||
|
|
||||||
home.autoSizeSplitPDF.title=Auto Split by Size/Count
|
home.autoSizeSplitPDF.title=Automatisch splitsen op grootte/aantal
|
||||||
home.autoSizeSplitPDF.desc=Split a single PDF into multiple documents based on size, page count, or document count
|
home.autoSizeSplitPDF.desc=Splits een enkele PDF in meerdere documenten op basis van grootte, aantal pagina's of aantal documenten
|
||||||
autoSizeSplitPDF.tags=pdf,split,document,organization
|
autoSizeSplitPDF.tags=pdf,splitsen,document,organiseren
|
||||||
|
|
||||||
|
|
||||||
home.overlay-pdfs.title=Overlay PDFs
|
home.overlay-pdfs.title=PDF's overlappen
|
||||||
home.overlay-pdfs.desc=Overlays PDFs on-top of another PDF
|
home.overlay-pdfs.desc=Plaatst PDF's over een andere PDF heen
|
||||||
overlay-pdfs.tags=Overlay
|
overlay-pdfs.tags=Overlappen
|
||||||
|
|
||||||
|
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=Sectie splitsen, Verdelen, Aanpassen
|
||||||
|
|
||||||
|
home.AddStampRequest.title=Stempel toevoegen aan PDF
|
||||||
|
home.AddStampRequest.desc=Voeg tekst of afbeeldingsstempels toe op vaste locaties
|
||||||
|
AddStampRequest.tags=Stempel, Afbeelding toevoegen, afbeelding centreren, watermerk, PDF, Insluiten, Aanpassen
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
# #
|
# #
|
||||||
|
@ -390,25 +397,25 @@ split-by-sections.tags=Section Split, Divide, Customize
|
||||||
# #
|
# #
|
||||||
###########################
|
###########################
|
||||||
#login
|
#login
|
||||||
login.title=Sign in
|
login.title=Inloggen
|
||||||
login.signin=Sign in
|
login.signin=Inloggen
|
||||||
login.rememberme=Remember me
|
login.rememberme=Onthoud mij
|
||||||
login.invalid=Invalid username or password.
|
login.invalid=Ongeldige gebruikersnaam of wachtwoord.
|
||||||
login.locked=Your account has been locked.
|
login.locked=Je account is geblokkeerd.
|
||||||
login.signinTitle=Please sign in
|
login.signinTitle=Gelieve in te loggen
|
||||||
|
|
||||||
|
|
||||||
#auto-redact
|
#auto-redact
|
||||||
autoRedact.title=Auto Redact
|
autoRedact.title=Automatisch censureren
|
||||||
autoRedact.header=Auto Redact
|
autoRedact.header=Automatisch censureren
|
||||||
autoRedact.colorLabel=Colour
|
autoRedact.colorLabel=Kleur
|
||||||
autoRedact.textsToRedactLabel=Text to Redact (line-separated)
|
autoRedact.textsToRedactLabel=Tekst om te censureren (gescheiden door regels)
|
||||||
autoRedact.textsToRedactPlaceholder=e.g. \nConfidential \nTop-Secret
|
autoRedact.textsToRedactPlaceholder=bijv.\Vertrouwelijk \nTopgeheim
|
||||||
autoRedact.useRegexLabel=Use Regex
|
autoRedact.useRegexLabel=Gebruik regex
|
||||||
autoRedact.wholeWordSearchLabel=Whole Word Search
|
autoRedact.wholeWordSearchLabel=Zoeken op hele woorden
|
||||||
autoRedact.customPaddingLabel=Custom Extra Padding
|
autoRedact.customPaddingLabel=Aangepaste extra ruimtevulling
|
||||||
autoRedact.convertPDFToImageLabel=Convert PDF to PDF-Image (Used to remove text behind the box)
|
autoRedact.convertPDFToImageLabel=Converteer PDF naar PDF-afbeelding (wordt gebruikt om tekst achter het vak te verwijderen)
|
||||||
autoRedact.submitButton=Submit
|
autoRedact.submitButton=Indienen
|
||||||
|
|
||||||
|
|
||||||
#showJS
|
#showJS
|
||||||
|
@ -425,8 +432,8 @@ pdfToSinglePage.submit=Converteren naar enkele pagina
|
||||||
|
|
||||||
|
|
||||||
#pageExtracter
|
#pageExtracter
|
||||||
pageExtracter.title=Pagina''s extraheren
|
pageExtracter.title=Pagina's extraheren
|
||||||
pageExtracter.header=Pagina''s extraheren
|
pageExtracter.header=Pagina's extraheren
|
||||||
pageExtracter.submit=Extraheren
|
pageExtracter.submit=Extraheren
|
||||||
|
|
||||||
|
|
||||||
|
@ -456,11 +463,41 @@ URLToPDF.credit=Gebruikt WeasyPrint
|
||||||
#html-to-pdf
|
#html-to-pdf
|
||||||
HTMLToPDF.title=HTML naar PDF
|
HTMLToPDF.title=HTML naar PDF
|
||||||
HTMLToPDF.header=HTML naar PDF
|
HTMLToPDF.header=HTML naar PDF
|
||||||
HTMLToPDF.help=Accepteert HTML-bestanden en ZIP''s die html/css/afbeeldingen etc. bevatten
|
HTMLToPDF.help=Accepteert HTML-bestanden en ZIP's die html/css/afbeeldingen etc. bevatten
|
||||||
HTMLToPDF.submit=Converteren
|
HTMLToPDF.submit=Converteren
|
||||||
HTMLToPDF.credit=Gebruikt WeasyPrint
|
HTMLToPDF.credit=Gebruikt WeasyPrint
|
||||||
|
HTMLToPDF.zoom=Zoom level for displaying the website.
|
||||||
|
HTMLToPDF.pageWidth=Breedte van de pagina in centimeters. (leeg voor standaard)
|
||||||
|
HTMLToPDF.pageHeight=Hoogte van de pagina in centimeters. (leeg voor standaard)
|
||||||
|
HTMLToPDF.marginTop=Marge bovenaan de pagina in millimeters. (leeg voor standaard)
|
||||||
|
HTMLToPDF.marginBottom=Marge onderaan de pagina in millimeters. (leeg voor standaard)
|
||||||
|
HTMLToPDF.marginLeft=Marge links van de pagina in millimeters. (leeg voor standaard)
|
||||||
|
HTMLToPDF.marginRight=Marge rechts van de pagina in millimeters. (leeg voor standaard)
|
||||||
|
HTMLToPDF.printBackground=De achtergrond van websites weergeven.
|
||||||
|
HTMLToPDF.defaultHeader=Standaard koptekst weergeven (naam en paginanummer)
|
||||||
|
HTMLToPDF.cssMediaType=Wijzig het CSS-mediatype van de pagina.
|
||||||
|
HTMLToPDF.none=Geen
|
||||||
|
HTMLToPDF.print=Print
|
||||||
|
HTMLToPDF.screen=Screen
|
||||||
|
|
||||||
|
|
||||||
|
#AddStampRequest
|
||||||
|
AddStampRequest.header=Stempel PDF
|
||||||
|
AddStampRequest.title=Stempel PDF
|
||||||
|
AddStampRequest.stampType=Soort stempel
|
||||||
|
AddStampRequest.stampText=Stempel tekst
|
||||||
|
AddStampRequest.stampImage=Stempel afbeelding
|
||||||
|
AddStampRequest.alphabet=Alfabet
|
||||||
|
AddStampRequest.fontSize=Tekst/afbeelding grootte
|
||||||
|
AddStampRequest.rotation=Rotatie
|
||||||
|
AddStampRequest.opacity=Transparantie
|
||||||
|
AddStampRequest.position=Positie
|
||||||
|
AddStampRequest.overrideX=X coördinaat overschrijven
|
||||||
|
AddStampRequest.overrideY=Y coördinaat overschrijven
|
||||||
|
AddStampRequest.customMargin=Aangepate marge
|
||||||
|
AddStampRequest.customColor=Aangepaste tekstkleur
|
||||||
|
AddStampRequest.submit=Indienen
|
||||||
|
|
||||||
#sanitizePDF
|
#sanitizePDF
|
||||||
sanitizePDF.title=PDF opschonen
|
sanitizePDF.title=PDF opschonen
|
||||||
sanitizePDF.header=Een PDF-bestand opschonen
|
sanitizePDF.header=Een PDF-bestand opschonen
|
||||||
|
@ -479,11 +516,11 @@ addPageNumbers.selectText.1=Selecteer PDF-bestand:
|
||||||
addPageNumbers.selectText.2=Margegrootte
|
addPageNumbers.selectText.2=Margegrootte
|
||||||
addPageNumbers.selectText.3=Positie
|
addPageNumbers.selectText.3=Positie
|
||||||
addPageNumbers.selectText.4=Startnummer
|
addPageNumbers.selectText.4=Startnummer
|
||||||
addPageNumbers.selectText.5=Pagina''s om te nummeren
|
addPageNumbers.selectText.5=Pagina's om te nummeren
|
||||||
addPageNumbers.selectText.6=Aangepaste tekst
|
addPageNumbers.selectText.6=Aangepaste tekst
|
||||||
addPageNumbers.customTextDesc=Custom Text
|
addPageNumbers.customTextDesc=Aangepaste tekst
|
||||||
addPageNumbers.numberPagesDesc=Which pages to number, default 'all', also accepts 1-5 or 2,5,9 etc
|
addPageNumbers.numberPagesDesc=Welke pagina's genummerd moeten worden, standaard 'all', accepteert ook 1-5 of 2,5,9 etc
|
||||||
addPageNumbers.customNumberDesc=Defaults to {n}, also accepts 'Page {n} of {total}', 'Text-{n}', '{filename}-{n}
|
addPageNumbers.customNumberDesc=Standaard {n}, accepteert ook 'Pagina {n} van {total}', 'Tekst-{n}', '{filename}-{n}
|
||||||
addPageNumbers.submit=Paginanummers toevoegen
|
addPageNumbers.submit=Paginanummers toevoegen
|
||||||
|
|
||||||
|
|
||||||
|
@ -515,7 +552,7 @@ autoSplitPDF.description=Print, Voeg in, Scan, upload, en laat ons je documenten
|
||||||
autoSplitPDF.selectText.1=Print enkele scheidingsbladen van hieronder (Zwart-wit is prima).
|
autoSplitPDF.selectText.1=Print enkele scheidingsbladen van hieronder (Zwart-wit is prima).
|
||||||
autoSplitPDF.selectText.2=Scan al je documenten tegelijk door het scheidingsblad ertussen te plaatsen.
|
autoSplitPDF.selectText.2=Scan al je documenten tegelijk door het scheidingsblad ertussen te plaatsen.
|
||||||
autoSplitPDF.selectText.3=Upload het enkele grote gescande PDF-bestand en laat Stirling PDF de rest afhandelen.
|
autoSplitPDF.selectText.3=Upload het enkele grote gescande PDF-bestand en laat Stirling PDF de rest afhandelen.
|
||||||
autoSplitPDF.selectText.4=Scheidingspagina''s worden automatisch gedetecteerd en verwijderd, wat een net einddocument garandeert.
|
autoSplitPDF.selectText.4=Scheidingspagina's worden automatisch gedetecteerd en verwijderd, wat een net einddocument garandeert.
|
||||||
autoSplitPDF.formPrompt=Dien PDF in met Stirling-PDF Pagina-scheiders:
|
autoSplitPDF.formPrompt=Dien PDF in met Stirling-PDF Pagina-scheiders:
|
||||||
autoSplitPDF.duplexMode=Duplex Modus (voor- en achterkant scannen)
|
autoSplitPDF.duplexMode=Duplex Modus (voor- en achterkant scannen)
|
||||||
autoSplitPDF.dividerDownload1=Download 'Auto Splitter Divider (minimal).pdf'
|
autoSplitPDF.dividerDownload1=Download 'Auto Splitter Divider (minimal).pdf'
|
||||||
|
@ -530,8 +567,8 @@ pipeline.title=Pijplijn
|
||||||
#pageLayout
|
#pageLayout
|
||||||
pageLayout.title=Meerdere pagina indeling
|
pageLayout.title=Meerdere pagina indeling
|
||||||
pageLayout.header=Meerdere pagina indeling
|
pageLayout.header=Meerdere pagina indeling
|
||||||
pageLayout.pagesPerSheet=Pagina''s per vel:
|
pageLayout.pagesPerSheet=Pagina's per vel:
|
||||||
pageLayout.addBorder=Add Borders
|
pageLayout.addBorder=Randen toevoegen
|
||||||
pageLayout.submit=Indienen
|
pageLayout.submit=Indienen
|
||||||
|
|
||||||
|
|
||||||
|
@ -562,24 +599,24 @@ certSign.submit=PDF ondertekenen
|
||||||
|
|
||||||
|
|
||||||
#removeBlanks
|
#removeBlanks
|
||||||
removeBlanks.title=Verwijder blanco''s
|
removeBlanks.title=Verwijder blanco's
|
||||||
removeBlanks.header=Verwijder lege pagina''s
|
removeBlanks.header=Verwijder lege pagina's
|
||||||
removeBlanks.threshold=Pixel witheid drempel:
|
removeBlanks.threshold=Pixel witheid drempel:
|
||||||
removeBlanks.thresholdDesc=Drempel voor het bepalen hoe wit een witte pixel moet zijn om als ''Wit'' te worden geclassificeerd. 0 = Zwart, 255 zuiver wit.
|
removeBlanks.thresholdDesc=Drempel voor het bepalen hoe wit een witte pixel moet zijn om als 'Wit' te worden geclassificeerd. 0 = Zwart, 255 zuiver wit.
|
||||||
removeBlanks.whitePercent=Wit percentage (%):
|
removeBlanks.whitePercent=Wit percentage (%):
|
||||||
removeBlanks.whitePercentDesc=Percentage van de pagina dat ''witte'' pixels moet zijn om verwijderd te worden
|
removeBlanks.whitePercentDesc=Percentage van de pagina dat 'witte' pixels moet zijn om verwijderd te worden
|
||||||
removeBlanks.submit=Blanco''s verwijderen
|
removeBlanks.submit=Blanco's verwijderen
|
||||||
|
|
||||||
|
|
||||||
#removeAnnotations
|
#removeAnnotations
|
||||||
removeAnnotations.title=Remove Annotations
|
removeAnnotations.title=Verwijder annotaties
|
||||||
removeAnnotations.header=Remove Annotations
|
removeAnnotations.header=Verwijder annotaties
|
||||||
removeAnnotations.submit=Remove
|
removeAnnotations.submit=Verwijderen
|
||||||
|
|
||||||
|
|
||||||
#compare
|
#compare
|
||||||
compare.title=Vergelijken
|
compare.title=Vergelijken
|
||||||
compare.header=PDF''s vergelijken
|
compare.header=PDF's vergelijken
|
||||||
compare.document.1=Document 1
|
compare.document.1=Document 1
|
||||||
compare.document.2=Document 2
|
compare.document.2=Document 2
|
||||||
compare.submit=Vergelijken
|
compare.submit=Vergelijken
|
||||||
|
@ -587,7 +624,7 @@ compare.submit=Vergelijken
|
||||||
|
|
||||||
#sign
|
#sign
|
||||||
sign.title=Ondertekenen
|
sign.title=Ondertekenen
|
||||||
sign.header=PDF''s ondertekenen
|
sign.header=PDF's ondertekenen
|
||||||
sign.upload=Upload afbeelding
|
sign.upload=Upload afbeelding
|
||||||
sign.draw=Handtekening tekenen
|
sign.draw=Handtekening tekenen
|
||||||
sign.text=Tekstinvoer
|
sign.text=Tekstinvoer
|
||||||
|
@ -597,13 +634,13 @@ sign.add=Toevoegen
|
||||||
|
|
||||||
#repair
|
#repair
|
||||||
repair.title=Repareren
|
repair.title=Repareren
|
||||||
repair.header=PDF''s repareren
|
repair.header=PDF's repareren
|
||||||
repair.submit=Repareren
|
repair.submit=Repareren
|
||||||
|
|
||||||
|
|
||||||
#flatten
|
#flatten
|
||||||
flatten.title=Afvlakken
|
flatten.title=Afvlakken
|
||||||
flatten.header=PDF''s afvlakken
|
flatten.header=PDF's afvlakken
|
||||||
flatten.submit=Afvlakken
|
flatten.submit=Afvlakken
|
||||||
|
|
||||||
|
|
||||||
|
@ -624,12 +661,12 @@ ScannerImageSplit.selectText.10=Stelt de grootte van de toegevoegde en verwijder
|
||||||
ocr.title=OCR / Scan opruimen
|
ocr.title=OCR / Scan opruimen
|
||||||
ocr.header=Scans opruimen / OCR (Optical Character Recognition)
|
ocr.header=Scans opruimen / OCR (Optical Character Recognition)
|
||||||
ocr.selectText.1=Selecteer talen die binnen de PDF gedetecteerd moeten worden (De vermelde zijn de momenteel gedetecteerde):
|
ocr.selectText.1=Selecteer talen die binnen de PDF gedetecteerd moeten worden (De vermelde zijn de momenteel gedetecteerde):
|
||||||
ocr.selectText.2=Produceer tekstbestand met OCR-tekst naast de OCR''d PDF
|
ocr.selectText.2=Produceer tekstbestand met OCR-tekst naast de OCR'd PDF
|
||||||
ocr.selectText.3=Corrigeer pagina''s die onder een scheve hoek zijn gescand door ze terug te draaien
|
ocr.selectText.3=Corrigeer pagina's die onder een scheve hoek zijn gescand door ze terug te draaien
|
||||||
ocr.selectText.4=Maak de pagina schoon, zodat het minder waarschijnlijk is dat OCR tekst in achtergrondruis vindt. (Geen uitvoerverandering)
|
ocr.selectText.4=Maak de pagina schoon, zodat het minder waarschijnlijk is dat OCR tekst in achtergrondruis vindt. (Geen uitvoerverandering)
|
||||||
ocr.selectText.5=Maak de pagina schoon zodat OCR waarschijnlijk geen tekst in achtergrondruis vindt, behoudt opruiming in uitvoer.
|
ocr.selectText.5=Maak de pagina schoon zodat OCR waarschijnlijk geen tekst in achtergrondruis vindt, behoudt opruiming in uitvoer.
|
||||||
ocr.selectText.6=Negeert pagina''s met interactieve tekst, OCR''s alleen pagina''s die afbeeldingen zijn
|
ocr.selectText.6=Negeert pagina's met interactieve tekst, OCR's alleen pagina's die afbeeldingen zijn
|
||||||
ocr.selectText.7=Forceer OCR, zal elke pagina OCR''en en alle originele tekstelementen verwijderen
|
ocr.selectText.7=Forceer OCR, zal elke pagina OCR'en en alle originele tekstelementen verwijderen
|
||||||
ocr.selectText.8=Normaal (Zal een fout geven als de PDF tekst bevat)
|
ocr.selectText.8=Normaal (Zal een fout geven als de PDF tekst bevat)
|
||||||
ocr.selectText.9=Aanvullende instellingen
|
ocr.selectText.9=Aanvullende instellingen
|
||||||
ocr.selectText.10=OCR-modus
|
ocr.selectText.10=OCR-modus
|
||||||
|
@ -677,7 +714,7 @@ addImage.submit=Afbeelding toevoegen
|
||||||
|
|
||||||
#merge
|
#merge
|
||||||
merge.title=Samenvoegen
|
merge.title=Samenvoegen
|
||||||
merge.header=Meerdere PDF''s samenvoegen (2+)
|
merge.header=Meerdere PDF's samenvoegen (2+)
|
||||||
merge.sortByName=Sorteer op naam
|
merge.sortByName=Sorteer op naam
|
||||||
merge.sortByDate=Sorteer op datum
|
merge.sortByDate=Sorteer op datum
|
||||||
merge.submit=Samenvoegen
|
merge.submit=Samenvoegen
|
||||||
|
@ -686,7 +723,7 @@ merge.submit=Samenvoegen
|
||||||
#pdfOrganiser
|
#pdfOrganiser
|
||||||
pdfOrganiser.title=Pagina organisator
|
pdfOrganiser.title=Pagina organisator
|
||||||
pdfOrganiser.header=PDF pagina organisator
|
pdfOrganiser.header=PDF pagina organisator
|
||||||
pdfOrganiser.submit=Pagina''s herschikken
|
pdfOrganiser.submit=Pagina's herschikken
|
||||||
|
|
||||||
|
|
||||||
#multiTool
|
#multiTool
|
||||||
|
@ -694,14 +731,14 @@ multiTool.title=PDF Multitool
|
||||||
multiTool.header=PDF Multitool
|
multiTool.header=PDF Multitool
|
||||||
|
|
||||||
#view pdf
|
#view pdf
|
||||||
viewPdf.title=View PDF
|
viewPdf.title=PDF bekijken
|
||||||
viewPdf.header=View PDF
|
viewPdf.header=PDF bekijken
|
||||||
|
|
||||||
#pageRemover
|
#pageRemover
|
||||||
pageRemover.title=Pagina verwijderaar
|
pageRemover.title=Pagina verwijderaar
|
||||||
pageRemover.header=PDF pagina verwijderaar
|
pageRemover.header=PDF pagina verwijderaar
|
||||||
pageRemover.pagesToDelete=Te verwijderen pagina''s (Voer een door komma''s gescheiden lijst met paginanummers in):
|
pageRemover.pagesToDelete=Te verwijderen pagina's (Voer een door komma's gescheiden lijst met paginanummers in):
|
||||||
pageRemover.submit=Pagina''s verwijderen
|
pageRemover.submit=Pagina's verwijderen
|
||||||
|
|
||||||
|
|
||||||
#rotate
|
#rotate
|
||||||
|
@ -715,14 +752,14 @@ rotate.submit=Roteren
|
||||||
split.title=PDF splitsen
|
split.title=PDF splitsen
|
||||||
split.header=PDF splitsen
|
split.header=PDF splitsen
|
||||||
split.desc.1=De nummers die je kiest zijn de paginanummers waarop je een splitsing wilt uitvoeren
|
split.desc.1=De nummers die je kiest zijn de paginanummers waarop je een splitsing wilt uitvoeren
|
||||||
split.desc.2=Als zodanig selecteren van 1,3,7-8 zou een 10 pagina''s tellend document splitsen in 6 aparte PDF''s met:
|
split.desc.2=Als zodanig selecteren van 1,3,7-8 zou een 10 pagina's tellend document splitsen in 6 aparte PDF's met:
|
||||||
split.desc.3=Document #1: Pagina 1
|
split.desc.3=Document #1: Pagina 1
|
||||||
split.desc.4=Document #2: Pagina 2 en 3
|
split.desc.4=Document #2: Pagina 2 en 3
|
||||||
split.desc.5=Document #3: Pagina 4, 5 en 6
|
split.desc.5=Document #3: Pagina 4, 5 en 6
|
||||||
split.desc.6=Document #4: Pagina 7
|
split.desc.6=Document #4: Pagina 7
|
||||||
split.desc.7=Document #5: Pagina 8
|
split.desc.7=Document #5: Pagina 8
|
||||||
split.desc.8=Document #6: Pagina 9 en 10
|
split.desc.8=Document #6: Pagina 9 en 10
|
||||||
split.splitPages=Voer pagina''s in om op te splitsen:
|
split.splitPages=Voer pagina's in om op te splitsen:
|
||||||
split.submit=Splitsen
|
split.submit=Splitsen
|
||||||
|
|
||||||
|
|
||||||
|
@ -730,14 +767,14 @@ split.submit=Splitsen
|
||||||
imageToPDF.title=Afbeelding naar PDF
|
imageToPDF.title=Afbeelding naar PDF
|
||||||
imageToPDF.header=Afbeelding naar PDF
|
imageToPDF.header=Afbeelding naar PDF
|
||||||
imageToPDF.submit=Omzetten
|
imageToPDF.submit=Omzetten
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Opties voor afbeelding passend maken
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Pagina vullen
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Pagina passend maken voor afbeelding
|
||||||
imageToPDF.maintainAspectRatio=Maintain Aspect Ratios
|
imageToPDF.maintainAspectRatio=Beeldverhoudingen behouden
|
||||||
imageToPDF.selectText.2=PDF automatisch draaien
|
imageToPDF.selectText.2=PDF automatisch draaien
|
||||||
imageToPDF.selectText.3=Meervoudige bestandslogica (Alleen ingeschakeld bij werken met meerdere afbeeldingen)
|
imageToPDF.selectText.3=Meervoudige bestandslogica (Alleen ingeschakeld bij werken met meerdere afbeeldingen)
|
||||||
imageToPDF.selectText.4=Voeg samen in één PDF
|
imageToPDF.selectText.4=Voeg samen in één PDF
|
||||||
imageToPDF.selectText.5=Zet om naar afzonderlijke PDF''s
|
imageToPDF.selectText.5=Zet om naar afzonderlijke PDF's
|
||||||
|
|
||||||
|
|
||||||
#pdfToImage
|
#pdfToImage
|
||||||
|
@ -745,7 +782,7 @@ pdfToImage.title=PDF naar afbeelding
|
||||||
pdfToImage.header=PDF naar afbeelding
|
pdfToImage.header=PDF naar afbeelding
|
||||||
pdfToImage.selectText=Afbeeldingsformaat
|
pdfToImage.selectText=Afbeeldingsformaat
|
||||||
pdfToImage.singleOrMultiple=Resultaattype van pagina naar afbeelding
|
pdfToImage.singleOrMultiple=Resultaattype van pagina naar afbeelding
|
||||||
pdfToImage.single=Eén grote afbeelding die alle pagina''s combineert
|
pdfToImage.single=Eén grote afbeelding die alle pagina's combineert
|
||||||
pdfToImage.multi=Meerdere afbeeldingen, één afbeelding per pagina
|
pdfToImage.multi=Meerdere afbeeldingen, één afbeelding per pagina
|
||||||
pdfToImage.colorType=Kleurtype
|
pdfToImage.colorType=Kleurtype
|
||||||
pdfToImage.color=Kleur
|
pdfToImage.color=Kleur
|
||||||
|
@ -887,48 +924,48 @@ PDFToCSV.prompt=Choose page to extract table
|
||||||
PDFToCSV.submit=Extract
|
PDFToCSV.submit=Extract
|
||||||
|
|
||||||
#split-by-size-or-count
|
#split-by-size-or-count
|
||||||
split-by-size-or-count.header=Split PDF by Size or Count
|
split-by-size-or-count.header=PDF splitsen op grootte of aantal
|
||||||
split-by-size-or-count.type.label=Select Split Type
|
split-by-size-or-count.type.label=Selecteer splits type
|
||||||
split-by-size-or-count.type.size=By Size
|
split-by-size-or-count.type.size=Op grootte
|
||||||
split-by-size-or-count.type.pageCount=By Page Count
|
split-by-size-or-count.type.pageCount=Op pagina aantal
|
||||||
split-by-size-or-count.type.docCount=By Document Count
|
split-by-size-or-count.type.docCount=Op document aantal
|
||||||
split-by-size-or-count.value.label=Enter Value
|
split-by-size-or-count.value.label=Voer waarde in
|
||||||
split-by-size-or-count.value.placeholder=Enter size (e.g., 2MB or 3KB) or count (e.g., 5)
|
split-by-size-or-count.value.placeholder=Voer grootte (bijv., 2MB of 3KB) of aantal (bijv., 5)
|
||||||
split-by-size-or-count.submit=Submit
|
split-by-size-or-count.submit=Indienen
|
||||||
|
|
||||||
|
|
||||||
#overlay-pdfs
|
#overlay-pdfs
|
||||||
overlay-pdfs.header=Overlay PDF Files
|
overlay-pdfs.header=PDF bestanden overlappen
|
||||||
overlay-pdfs.baseFile.label=Select Base PDF File
|
overlay-pdfs.baseFile.label=Selecteer basis PDF-bestand
|
||||||
overlay-pdfs.overlayFiles.label=Select Overlay PDF Files
|
overlay-pdfs.overlayFiles.label=Selecteer overlappende PDF-bestanden
|
||||||
overlay-pdfs.mode.label=Select Overlay Mode
|
overlay-pdfs.mode.label=Selecteer overlappingsmodus
|
||||||
overlay-pdfs.mode.sequential=Sequential Overlay
|
overlay-pdfs.mode.sequential=Sequentieel overlappen
|
||||||
overlay-pdfs.mode.interleaved=Interleaved Overlay
|
overlay-pdfs.mode.interleaved=Geïnterlinieerd overlappen
|
||||||
overlay-pdfs.mode.fixedRepeat=Fixed Repeat Overlay
|
overlay-pdfs.mode.fixedRepeat=Overlappen met vaste herhaling
|
||||||
overlay-pdfs.counts.label=Overlay Counts (for Fixed Repeat Mode)
|
overlay-pdfs.counts.label=Aantal keren overlappen (voor vaste herhalings modus)
|
||||||
overlay-pdfs.counts.placeholder=Enter comma-separated counts (e.g., 2,3,1)
|
overlay-pdfs.counts.placeholder=Voer door komma's gescheiden aantallen in (bijv., 2,3,1)
|
||||||
overlay-pdfs.position.label=Select Overlay Position
|
overlay-pdfs.position.label=Selecteer overlappingspositie
|
||||||
overlay-pdfs.position.foreground=Foreground
|
overlay-pdfs.position.foreground=Voorgrond
|
||||||
overlay-pdfs.position.background=Background
|
overlay-pdfs.position.background=Achtergrond
|
||||||
overlay-pdfs.submit=Submit
|
overlay-pdfs.submit=Indienen
|
||||||
|
|
||||||
|
|
||||||
#split-by-sections
|
#split-by-sections
|
||||||
split-by-sections.title=Split PDF by Sections
|
split-by-sections.title=PDF in secties splitsen
|
||||||
split-by-sections.header=Split PDF into Sections
|
split-by-sections.header=PDF in secties splitsen
|
||||||
split-by-sections.horizontal.label=Horizontal Divisions
|
split-by-sections.horizontal.label=Horizontale secties
|
||||||
split-by-sections.vertical.label=Vertical Divisions
|
split-by-sections.vertical.label=Verticale secties
|
||||||
split-by-sections.horizontal.placeholder=Enter number of horizontal divisions
|
split-by-sections.horizontal.placeholder=Voer het aantal horizontale secties in
|
||||||
split-by-sections.vertical.placeholder=Enter number of vertical divisions
|
split-by-sections.vertical.placeholder=Voer het aantal verticale secties in
|
||||||
split-by-sections.submit=Split PDF
|
split-by-sections.submit=PDF splitsen
|
||||||
|
|
||||||
|
|
||||||
#licenses
|
#licenses
|
||||||
licenses.nav=Licenses
|
licenses.nav=Licensies
|
||||||
licenses.title=3rd Party Licenses
|
licenses.title=Licensies van derden
|
||||||
licenses.header=3rd Party Licenses
|
licenses.header=Licensies van derden
|
||||||
licenses.module=Module
|
licenses.module=Module
|
||||||
licenses.version=Version
|
licenses.version=Versie
|
||||||
licenses.license=License
|
licenses.license=Licensie
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blue
|
||||||
custom=Custom...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
userNotFoundMessage=User not found.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Accepts HTML files and ZIPs containing html/css/images etc required
|
||||||
HTMLToPDF.submit=Convert
|
HTMLToPDF.submit=Convert
|
||||||
HTMLToPDF.credit=Uses WeasyPrint
|
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
|
||||||
sanitizePDF.title=Sanitize PDF
|
sanitizePDF.title=Sanitize PDF
|
||||||
sanitizePDF.header=Sanitize a PDF file
|
sanitizePDF.header=Sanitize a PDF file
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blue
|
||||||
custom=Custom...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
userNotFoundMessage=User not found.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Aceita arquivos HTML e ZIPs contendo html/css/imagens etc necessários
|
||||||
HTMLToPDF.submit=Converter
|
HTMLToPDF.submit=Converter
|
||||||
HTMLToPDF.credit=Usa o WeasyPrint
|
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
|
||||||
sanitizePDF.title=Sanitizar PDF
|
sanitizePDF.title=Sanitizar PDF
|
||||||
sanitizePDF.header=Sanitizar um arquivo PDF
|
sanitizePDF.header=Sanitizar um arquivo PDF
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blue
|
||||||
custom=Custom...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
userNotFoundMessage=User not found.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Accepts HTML files and ZIPs containing html/css/images etc required
|
||||||
HTMLToPDF.submit=Convert
|
HTMLToPDF.submit=Convert
|
||||||
HTMLToPDF.credit=Uses WeasyPrint
|
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
|
||||||
sanitizePDF.title=Sanitize PDF
|
sanitizePDF.title=Sanitize PDF
|
||||||
sanitizePDF.header=Sanitize a PDF file
|
sanitizePDF.header=Sanitize a PDF file
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blue
|
||||||
custom=Custom...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
userNotFoundMessage=User not found.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# WEB PAGES #
|
||||||
|
@ -459,8 +466,38 @@ HTMLToPDF.header=HTML в PDF
|
||||||
HTMLToPDF.help=Принимает файлы HTML и ZIP-файлы, содержащие html/css/изображения и т. д.
|
HTMLToPDF.help=Принимает файлы HTML и ZIP-файлы, содержащие html/css/изображения и т. д.
|
||||||
HTMLToPDF.submit=Конвертировать
|
HTMLToPDF.submit=Конвертировать
|
||||||
HTMLToPDF.credit=Использует WeasyPrint
|
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
|
||||||
sanitizePDF.title=Дезинфицировать PDF
|
sanitizePDF.title=Дезинфицировать PDF
|
||||||
sanitizePDF.header=Дезинфицировать PDF файл
|
sanitizePDF.header=Дезинфицировать PDF файл
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Plavo
|
||||||
custom=Prilagođeno...
|
custom=Prilagođeno...
|
||||||
WorkInProgess=Radovi u toku, možda neće raditi ili će biti grešaka, molimo prijavite sve probleme !
|
WorkInProgess=Radovi u toku, možda neće raditi ili će biti grešaka, molimo prijavite sve probleme !
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Podaci za prijavu uspešno promenjeni!
|
changedCredsMessage=Podaci za prijavu uspešno promenjeni!
|
||||||
notAuthenticatedMessage=Korisnik nije autentifikovan.
|
notAuthenticatedMessage=Korisnik nije autentifikovan.
|
||||||
userNotFoundMessage=Korisnik nije pronađen.
|
userNotFoundMessage=Korisnik nije pronađen.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Konfiguracija Pipeline-a
|
||||||
pipelineOptions.pipelineNameLabel=Ime Pipeline-a
|
pipelineOptions.pipelineNameLabel=Ime Pipeline-a
|
||||||
pipelineOptions.saveSettings=Sačuvaj podešavanja
|
pipelineOptions.saveSettings=Sačuvaj podešavanja
|
||||||
pipelineOptions.pipelineNamePrompt=Unesite ime pipeline-a ovde
|
pipelineOptions.pipelineNamePrompt=Unesite ime pipeline-a ovde
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Dodaj operaciju
|
pipelineOptions.addOperationButton=Dodaj operaciju
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Preuzmi
|
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
|
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
|
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 #
|
# 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.help=Prihvata HTML fajlove i ZIP-ove koji sadrže html/css/slike itd. potrebno
|
||||||
HTMLToPDF.submit=Konvertuj
|
HTMLToPDF.submit=Konvertuj
|
||||||
HTMLToPDF.credit=Koristi WeasyPrint
|
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
|
||||||
sanitizePDF.title=Sanitizacija PDF-a
|
sanitizePDF.title=Sanitizacija PDF-a
|
||||||
sanitizePDF.header=Sanitizacija PDF fajla
|
sanitizePDF.header=Sanitizacija PDF fajla
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blue
|
||||||
custom=Custom...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Credentials changed!
|
changedCredsMessage=Credentials changed!
|
||||||
notAuthenticatedMessage=User not authenticated.
|
notAuthenticatedMessage=User not authenticated.
|
||||||
userNotFoundMessage=User not found.
|
userNotFoundMessage=User not found.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=Accepts HTML files and ZIPs containing html/css/images etc required
|
||||||
HTMLToPDF.submit=Convert
|
HTMLToPDF.submit=Convert
|
||||||
HTMLToPDF.credit=Uses WeasyPrint
|
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
|
||||||
sanitizePDF.title=Sanitize PDF
|
sanitizePDF.title=Sanitize PDF
|
||||||
sanitizePDF.header=Sanitize a PDF file
|
sanitizePDF.header=Sanitize a PDF file
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Mavi
|
||||||
custom=Özel
|
custom=Özel
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=Bilgiler değiştirildi!
|
changedCredsMessage=Bilgiler değiştirildi!
|
||||||
notAuthenticatedMessage=Kullanıcı doğrulanmadı.
|
notAuthenticatedMessage=Kullanıcı doğrulanmadı.
|
||||||
userNotFoundMessage=Kullanıcı bulunamadı.
|
userNotFoundMessage=Kullanıcı bulunamadı.
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
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
|
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
|
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 #
|
# 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.help=HTML dosyalarını ve html/css/görsel vb. içeren ZIP'leri kabul eder
|
||||||
HTMLToPDF.submit=Dönüştür
|
HTMLToPDF.submit=Dönüştür
|
||||||
HTMLToPDF.credit=WeasyPrint Kullanıyor
|
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
|
||||||
sanitizePDF.title=PDF'i Temizle
|
sanitizePDF.title=PDF'i Temizle
|
||||||
sanitizePDF.header=PDF dosyasını temizle
|
sanitizePDF.header=PDF dosyasını temizle
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=Blue
|
||||||
custom=Custom...
|
custom=Custom...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=凭证已更改!
|
changedCredsMessage=凭证已更改!
|
||||||
notAuthenticatedMessage=用户未经过身份验证。
|
notAuthenticatedMessage=用户未经过身份验证。
|
||||||
userNotFoundMessage=未找到用户。
|
userNotFoundMessage=未找到用户。
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
pipelineOptions.saveButton=Download
|
||||||
|
@ -384,6 +386,11 @@ home.split-by-sections.title=拆分PDF成小块
|
||||||
home.split-by-sections.desc=将PDF的每一页分割成更小的水平和垂直的部分
|
home.split-by-sections.desc=将PDF的每一页分割成更小的水平和垂直的部分
|
||||||
split-by-sections.tags=章节拆分、分割、自定义
|
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 #
|
# WEB PAGES #
|
||||||
|
@ -459,8 +466,38 @@ HTMLToPDF.header=HTML转PDF
|
||||||
HTMLToPDF.help=接受HTML文件和包含所需的html/css/images等的ZIP文件
|
HTMLToPDF.help=接受HTML文件和包含所需的html/css/images等的ZIP文件
|
||||||
HTMLToPDF.submit=转换
|
HTMLToPDF.submit=转换
|
||||||
HTMLToPDF.credit=使用WeasyPrint
|
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
|
||||||
sanitizePDF.title=清理PDF
|
sanitizePDF.title=清理PDF
|
||||||
sanitizePDF.header=清理PDF文件
|
sanitizePDF.header=清理PDF文件
|
||||||
|
|
|
@ -44,7 +44,8 @@ blue=藍色
|
||||||
custom=自訂...
|
custom=自訂...
|
||||||
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
WorkInProgess=Work in progress, May not work or be buggy, Please report any ploblems!
|
||||||
poweredBy=Powered by
|
poweredBy=Powered by
|
||||||
|
yes=Yes
|
||||||
|
no=No
|
||||||
changedCredsMessage=憑證已變更!
|
changedCredsMessage=憑證已變更!
|
||||||
notAuthenticatedMessage=使用者未認證。
|
notAuthenticatedMessage=使用者未認證。
|
||||||
userNotFoundMessage=找不到使用者。
|
userNotFoundMessage=找不到使用者。
|
||||||
|
@ -68,6 +69,7 @@ pipelineOptions.header=Pipeline Configuration
|
||||||
pipelineOptions.pipelineNameLabel=Pipeline Name
|
pipelineOptions.pipelineNameLabel=Pipeline Name
|
||||||
pipelineOptions.saveSettings=Save Operation Settings
|
pipelineOptions.saveSettings=Save Operation Settings
|
||||||
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
|
||||||
|
pipelineOptions.selectOperation=Select Operation
|
||||||
pipelineOptions.addOperationButton=Add operation
|
pipelineOptions.addOperationButton=Add operation
|
||||||
pipelineOptions.pipelineHeader=Pipeline:
|
pipelineOptions.pipelineHeader=Pipeline:
|
||||||
pipelineOptions.saveButton=Download
|
pipelineOptions.saveButton=Download
|
||||||
|
@ -384,6 +386,11 @@ home.split-by-sections.title=依區段分割 PDF
|
||||||
home.split-by-sections.desc=將 PDF 的每一頁分割為較小的水平和垂直區段
|
home.split-by-sections.desc=將 PDF 的每一頁分割為較小的水平和垂直區段
|
||||||
split-by-sections.tags=區段分割, 劃分, 自訂
|
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 #
|
# WEB PAGES #
|
||||||
|
@ -459,8 +466,38 @@ HTMLToPDF.header=HTML 轉 PDF
|
||||||
HTMLToPDF.help=接受 HTML 文件和包含所需 html/css/images 等的 ZIP
|
HTMLToPDF.help=接受 HTML 文件和包含所需 html/css/images 等的 ZIP
|
||||||
HTMLToPDF.submit=轉換
|
HTMLToPDF.submit=轉換
|
||||||
HTMLToPDF.credit=使用 WeasyPrint
|
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
|
||||||
sanitizePDF.title=清理 PDF
|
sanitizePDF.title=清理 PDF
|
||||||
sanitizePDF.header=清理 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() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
setLanguageForDropdown('.lang_dropdown-item');
|
setLanguageForDropdown('.lang_dropdown-item');
|
||||||
const defaultLocale = document.documentElement.lang || 'en_GB';
|
|
||||||
const storedLocale = localStorage.getItem('languageCode') || defaultLocale;
|
// 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');
|
const dropdownItems = document.querySelectorAll('.lang_dropdown-item');
|
||||||
|
|
||||||
for (let i = 0; i < dropdownItems.length; i++) {
|
for (let i = 0; i < dropdownItems.length; i++) {
|
||||||
|
|
|
@ -8,11 +8,18 @@ document.getElementById("fileInput-input").addEventListener("change", function()
|
||||||
displayFiles(files);
|
displayFiles(files);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {FileList} files
|
||||||
|
*/
|
||||||
function displayFiles(files) {
|
function displayFiles(files) {
|
||||||
var list = document.getElementById("selectedFiles");
|
const list = document.getElementById("selectedFiles");
|
||||||
|
|
||||||
for (var i = 0; i < files.length; i++) {
|
while (list.firstChild) {
|
||||||
var item = document.createElement("li");
|
list.removeChild(list.firstChild);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < files.length; i++) {
|
||||||
|
const item = document.createElement("li");
|
||||||
item.className = "list-group-item";
|
item.className = "list-group-item";
|
||||||
item.innerHTML = `
|
item.innerHTML = `
|
||||||
<div class="d-flex justify-content-between align-items-center w-100">
|
<div class="d-flex justify-content-between align-items-center w-100">
|
||||||
|
|
|
@ -26,6 +26,7 @@ class PdfContainer {
|
||||||
movePageTo: this.movePageTo,
|
movePageTo: this.movePageTo,
|
||||||
addPdfs: this.addPdfs,
|
addPdfs: this.addPdfs,
|
||||||
rotateElement: this.rotateElement,
|
rotateElement: this.rotateElement,
|
||||||
|
updateFilename: this.updateFilename
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -38,7 +39,7 @@ class PdfContainer {
|
||||||
|
|
||||||
filenameInput.onkeyup = this.updateFilename;
|
filenameInput.onkeyup = this.updateFilename;
|
||||||
filenameInput.onkeydown = this.preventIllegalChars;
|
filenameInput.onkeydown = this.preventIllegalChars;
|
||||||
filenameInput.disabled = true;
|
filenameInput.disabled = false;
|
||||||
filenameInput.innerText = "";
|
filenameInput.innerText = "";
|
||||||
downloadBtn.disabled = true;
|
downloadBtn.disabled = true;
|
||||||
}
|
}
|
||||||
|
@ -73,30 +74,9 @@ class PdfContainer {
|
||||||
input.setAttribute("accept", "application/pdf");
|
input.setAttribute("accept", "application/pdf");
|
||||||
input.onchange = async(e) => {
|
input.onchange = async(e) => {
|
||||||
const files = e.target.files;
|
const files = e.target.files;
|
||||||
if (files.length > 0) {
|
|
||||||
const filenameInput = document.getElementById('filename-input');
|
|
||||||
const pagesContainer = document.getElementById('pages-container');
|
|
||||||
const downloadBtn = document.getElementById('export-button');
|
|
||||||
|
|
||||||
filenameInput.disabled = false;
|
|
||||||
|
|
||||||
if (pagesContainer.childElementCount === 0) {
|
|
||||||
filenameInput.value = "";
|
|
||||||
this.filename = null;
|
|
||||||
downloadBtn.disabled = true;
|
|
||||||
} else {
|
|
||||||
this.filename = filenameInput.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.filename === null || this.filename === undefined) {
|
|
||||||
filenameInput.value = files[0].name;
|
|
||||||
} else {
|
|
||||||
filenameInput.value = this.filename;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
this.addPdfsFromFiles(files, nextSiblingElement);
|
this.addPdfsFromFiles(files, nextSiblingElement);
|
||||||
|
this.updateFilename(files ? files[0].name : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
input.click();
|
input.click();
|
||||||
|
@ -242,12 +222,12 @@ class PdfContainer {
|
||||||
}
|
}
|
||||||
|
|
||||||
filenameInput.value = inputArr.join('');
|
filenameInput.value = inputArr.join('');
|
||||||
this.filename = filenameInput.value;
|
this.fileName = filenameInput.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!filenameInput.value.includes('.pdf')) {
|
if (!filenameInput.value.includes('.pdf')) {
|
||||||
filenameInput.value = filenameInput.value + '.pdf';
|
filenameInput.value = filenameInput.value + '.pdf';
|
||||||
this.filename = filenameInput.value;
|
this.fileName = filenameInput.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (downloadOption === 'sameWindow') {
|
if (downloadOption === 'sameWindow') {
|
||||||
|
@ -263,7 +243,7 @@ class PdfContainer {
|
||||||
this.downloadLink.href = url;
|
this.downloadLink.href = url;
|
||||||
// downloadLink.download = this.fileName ? this.fileName : 'managed.pdf';
|
// downloadLink.download = this.fileName ? this.fileName : 'managed.pdf';
|
||||||
// downloadLink.download = this.fileName;
|
// downloadLink.download = this.fileName;
|
||||||
this.downloadLink.setAttribute('download', this.filename ? this.fileName : 'managed.pdf');
|
this.downloadLink.setAttribute('download', this.fileName ? this.fileName : 'managed.pdf');
|
||||||
this.downloadLink.setAttribute('target', '_blank');
|
this.downloadLink.setAttribute('target', '_blank');
|
||||||
this.downloadLink.onclick = this.setDownloadAttribute;
|
this.downloadLink.onclick = this.setDownloadAttribute;
|
||||||
this.downloadLink.click();
|
this.downloadLink.click();
|
||||||
|
@ -271,20 +251,23 @@ class PdfContainer {
|
||||||
}
|
}
|
||||||
|
|
||||||
setDownloadAttribute() {
|
setDownloadAttribute() {
|
||||||
this.downloadLink.setAttribute("download", this.filename ? this.filename : 'managed.pdf');
|
this.downloadLink.setAttribute("download", this.fileName ? this.fileName : 'managed.pdf');
|
||||||
}
|
}
|
||||||
|
|
||||||
updateFilename() {
|
updateFilename(fileName = "") {
|
||||||
const filenameInput = document.getElementById('filename-input');
|
const filenameInput = document.getElementById('filename-input');
|
||||||
|
const pagesContainer = document.getElementById('pages-container');
|
||||||
const downloadBtn = document.getElementById('export-button');
|
const downloadBtn = document.getElementById('export-button');
|
||||||
|
|
||||||
if (filenameInput.value === "") {
|
downloadBtn.disabled = pagesContainer.childElementCount === 0
|
||||||
downloadBtn.disabled = true;
|
|
||||||
return;
|
if (!this.fileName) {
|
||||||
|
this.fileName = fileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadBtn.disabled = false;
|
if (!filenameInput.value) {
|
||||||
this.filename = filenameInput.value;
|
filenameInput.value = this.fileName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
preventIllegalChars(e) {
|
preventIllegalChars(e) {
|
||||||
|
|
|
@ -1,69 +1,94 @@
|
||||||
const addFileDragListener = (callback) => {
|
class FileDragManager {
|
||||||
let overlay;
|
overlay;
|
||||||
let dragCounter = 0;
|
dragCounter;
|
||||||
|
updateFilename;
|
||||||
|
|
||||||
const dragenterListener = function() {
|
constructor(cb = null) {
|
||||||
dragCounter++;
|
this.dragCounter = 0;
|
||||||
if (!overlay) {
|
this.setCallback(cb);
|
||||||
|
|
||||||
|
// Prevent default behavior for drag events
|
||||||
|
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
|
||||||
|
document.body.addEventListener(eventName, preventDefaults, false);
|
||||||
|
});
|
||||||
|
|
||||||
|
function preventDefaults(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.dragenterListener = this.dragenterListener.bind(this);
|
||||||
|
this.dragleaveListener = this.dragleaveListener.bind(this);
|
||||||
|
this.dropListener = this.dropListener.bind(this);
|
||||||
|
|
||||||
|
document.body.addEventListener('dragenter', this.dragenterListener);
|
||||||
|
document.body.addEventListener('dragleave', this.dragleaveListener);
|
||||||
|
// Add drop event listener
|
||||||
|
document.body.addEventListener('drop', this.dropListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
setActions({ updateFilename }) {
|
||||||
|
this.updateFilename = updateFilename;
|
||||||
|
}
|
||||||
|
|
||||||
|
setCallback(cb) {
|
||||||
|
if (cb) {
|
||||||
|
this.callback = cb;
|
||||||
|
} else {
|
||||||
|
this.callback = (files) => console.warn("FileDragManager not set");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dragenterListener() {
|
||||||
|
this.dragCounter++;
|
||||||
|
if (!this.overlay) {
|
||||||
// Create and show the overlay
|
// Create and show the overlay
|
||||||
overlay = document.createElement('div');
|
this.overlay = document.createElement('div');
|
||||||
overlay.style.position = 'fixed';
|
this.overlay.style.position = 'fixed';
|
||||||
overlay.style.top = 0;
|
this.overlay.style.top = 0;
|
||||||
overlay.style.left = 0;
|
this.overlay.style.left = 0;
|
||||||
overlay.style.width = '100%';
|
this.overlay.style.width = '100%';
|
||||||
overlay.style.height = '100%';
|
this.overlay.style.height = '100%';
|
||||||
overlay.style.background = 'rgba(0, 0, 0, 0.5)';
|
this.overlay.style.background = 'rgba(0, 0, 0, 0.5)';
|
||||||
overlay.style.color = '#fff';
|
this.overlay.style.color = '#fff';
|
||||||
overlay.style.zIndex = '1000';
|
this.overlay.style.zIndex = '1000';
|
||||||
overlay.style.display = 'flex';
|
this.overlay.style.display = 'flex';
|
||||||
overlay.style.alignItems = 'center';
|
this.overlay.style.alignItems = 'center';
|
||||||
overlay.style.justifyContent = 'center';
|
this.overlay.style.justifyContent = 'center';
|
||||||
overlay.style.pointerEvents = 'none';
|
this.overlay.style.pointerEvents = 'none';
|
||||||
overlay.innerHTML = '<p>Drop files anywhere to upload</p>';
|
this.overlay.innerHTML = '<p>Drop files anywhere to upload</p>';
|
||||||
document.getElementById('content-wrap').appendChild(overlay);
|
document.getElementById('content-wrap').appendChild(this.overlay);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const dragleaveListener = function() {
|
dragleaveListener() {
|
||||||
dragCounter--;
|
this.dragCounter--;
|
||||||
if (dragCounter === 0) {
|
if (this.dragCounter === 0) {
|
||||||
// Hide and remove the overlay
|
// Hide and remove the overlay
|
||||||
if (overlay) {
|
if (this.overlay) {
|
||||||
overlay.remove();
|
this.overlay.remove();
|
||||||
overlay = null;
|
this.overlay = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const dropListener = function(e) {
|
dropListener(e) {
|
||||||
|
|
||||||
const dt = e.dataTransfer;
|
const dt = e.dataTransfer;
|
||||||
const files = dt.files;
|
const files = dt.files;
|
||||||
callback(files).catch((err) => {
|
this.callback(files).catch((err) => {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
//maybe
|
//maybe
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
if (overlay) {
|
// Hide and remove the overlay
|
||||||
overlay.remove();
|
if (this.overlay) {
|
||||||
overlay = null;
|
this.overlay.remove();
|
||||||
|
this.overlay = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.updateFilename(files ? files[0].name : "");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// Prevent default behavior for drag events
|
|
||||||
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
|
|
||||||
document.body.addEventListener(eventName, preventDefaults, false);
|
|
||||||
});
|
|
||||||
|
|
||||||
function preventDefaults(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
}
|
|
||||||
|
|
||||||
document.body.addEventListener('dragenter', dragenterListener);
|
|
||||||
document.body.addEventListener('dragleave', dragleaveListener);
|
|
||||||
// Add drop event listener
|
|
||||||
document.body.addEventListener('drop', dropListener);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default addFileDragListener;
|
export default FileDragManager;
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
<form method="post" enctype="multipart/form-data" th:action="@{api/v1/misc/auto-split-pdf}">
|
<form method="post" enctype="multipart/form-data" th:action="@{api/v1/misc/auto-split-pdf}">
|
||||||
<p th:text="#{autoSplitPDF.formPrompt}"></p>
|
<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">
|
<div class="form-check">
|
||||||
<input type="checkbox" class="form-check-input" name="duplexMode" id="duplexMode">
|
<input type="checkbox" class="form-check-input" name="duplexMode" id="duplexMode">
|
||||||
<label class="ms-3" for="duplexMode" th:text=#{autoSplitPDF.duplexMode}></label>
|
<label class="ms-3" for="duplexMode" th:text=#{autoSplitPDF.duplexMode}></label>
|
||||||
|
|
|
@ -10,10 +10,73 @@
|
||||||
<br> <br>
|
<br> <br>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-md-6">
|
<div class="mb-3">
|
||||||
<h2 th:text="#{HTMLToPDF.header}"></h2>
|
<h2 th:text="#{HTMLToPDF.header}"></h2>
|
||||||
<form method="post" enctype="multipart/form-data" th:action="@{api/v1/convert/html/pdf}">
|
<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>
|
<br>
|
||||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{HTMLToPDF.submit}"></button>
|
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{HTMLToPDF.submit}"></button>
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<h2 th:text="#{MarkdownToPDF.header}"></h2>
|
<h2 th:text="#{MarkdownToPDF.header}"></h2>
|
||||||
<form method="post" enctype="multipart/form-data" th:action="@{api/v1/convert/markdown/pdf}">
|
<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>
|
<br>
|
||||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{MarkdownToPDF.submit}"></button>
|
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{MarkdownToPDF.submit}"></button>
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,7 @@
|
||||||
data-bs-files-selected=#{filesSelected},
|
data-bs-files-selected=#{filesSelected},
|
||||||
data-bs-pdf-prompt=#{pdfPrompt}">
|
data-bs-pdf-prompt=#{pdfPrompt}">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<input type="file" class="form-control" th:name="${name}" th:id="${name}+'-input'" th:accept="${accept}" multiple th:classappend="${notRequired ? '' : 'required'}">
|
<input type="file" class="form-control" th:name="${name}" th:id="${name}+'-input'" th:accept="${accept}" multiple th:required="${notRequired} ? null : 'required'">
|
||||||
</div>
|
</div>
|
||||||
<div class="selected-files"></div>
|
<div class="selected-files"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -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 ('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 ('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 ('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>
|
</div>
|
||||||
</li>
|
</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='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='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='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"
|
<form id="pdfInfoForm" method="post" enctype="multipart/form-data"
|
||||||
th:action="@{show-javascript}">
|
th:action="@{show-javascript}">
|
||||||
<div
|
<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>
|
<br>
|
||||||
<button type="submit" id="submitBtn" class="btn btn-primary"
|
<button type="submit" id="submitBtn" class="btn btn-primary"
|
||||||
th:text="#{showJS.submit}"></button>
|
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>
|
|
@ -79,13 +79,14 @@
|
||||||
import scrollDivHorizontally from "./js/multitool/horizontalScroll.js";
|
import scrollDivHorizontally from "./js/multitool/horizontalScroll.js";
|
||||||
import ImageHighlighter from "./js/multitool/ImageHighlighter.js";
|
import ImageHighlighter from "./js/multitool/ImageHighlighter.js";
|
||||||
import PdfActionsManager from './js/multitool/PdfActionsManager.js';
|
import PdfActionsManager from './js/multitool/PdfActionsManager.js';
|
||||||
import addFileInputListener from './js/multitool/fileInput.js';
|
import FileDragManager from './js/multitool/fileInput.js';
|
||||||
// enables drag and drop
|
// enables drag and drop
|
||||||
const dragDropManager = new DragDropManager('drag-container', 'pages-container');
|
const dragDropManager = new DragDropManager('drag-container', 'pages-container');
|
||||||
// enables image highlight on click
|
// enables image highlight on click
|
||||||
const imageHighlighter = new ImageHighlighter('image-highlighter');
|
const imageHighlighter = new ImageHighlighter('image-highlighter');
|
||||||
// enables the default action buttons on each pdf
|
// enables the default action buttons on each pdf
|
||||||
const pdfActionsManager = new PdfActionsManager('pages-container');
|
const pdfActionsManager = new PdfActionsManager('pages-container');
|
||||||
|
const fileDragManager = new FileDragManager();
|
||||||
|
|
||||||
// Scroll the wrapper horizontally
|
// Scroll the wrapper horizontally
|
||||||
scrollDivHorizontally('pages-container-wrapper');
|
scrollDivHorizontally('pages-container-wrapper');
|
||||||
|
@ -98,11 +99,11 @@
|
||||||
dragDropManager,
|
dragDropManager,
|
||||||
imageHighlighter,
|
imageHighlighter,
|
||||||
pdfActionsManager,
|
pdfActionsManager,
|
||||||
|
fileDragManager
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
addFileInputListener(async (files) => {
|
|
||||||
pdfContainer.addPdfsFromFiles(files);
|
fileDragManager.setCallback(async (files) => pdfContainer.addPdfsFromFiles(files));
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<h2 th:text="#{pdfToSinglePage.header}"></h2>
|
<h2 th:text="#{pdfToSinglePage.header}"></h2>
|
||||||
<form method="post" enctype="multipart/form-data" th:action="@{api/v1/general/pdf-to-single-page}">
|
<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>
|
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{pdfToSinglePage.submit}"></button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<form id="pdfInfoForm" method="post" enctype="multipart/form-data"
|
<form id="pdfInfoForm" method="post" enctype="multipart/form-data"
|
||||||
th:action="@{api/v1/security/get-info-on-pdf}">
|
th:action="@{api/v1/security/get-info-on-pdf}">
|
||||||
<div
|
<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>
|
<br>
|
||||||
<button type="submit" id="submitBtn" class="btn btn-primary"
|
<button type="submit" id="submitBtn" class="btn btn-primary"
|
||||||
th:text="#{getPdfInfo.submit}"></button>
|
th:text="#{getPdfInfo.submit}"></button>
|
||||||
|
|
|
@ -30,7 +30,6 @@ See https://github.com/adobe-type-tools/cmap-resources
|
||||||
<!-- Bootstrap -->
|
<!-- Bootstrap -->
|
||||||
<script src="js/thirdParty/popper.min.js"></script>
|
<script src="js/thirdParty/popper.min.js"></script>
|
||||||
<script src="js/thirdParty/bootstrap.min.js"></script>
|
<script src="js/thirdParty/bootstrap.min.js"></script>
|
||||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
|
||||||
|
|
||||||
<!-- This snippet is used in production (included from view-pdf.html) -->
|
<!-- This snippet is used in production (included from view-pdf.html) -->
|
||||||
<link rel="resource" type="application/l10n" href="pdfjs/locale/locale.properties">
|
<link rel="resource" type="application/l10n" href="pdfjs/locale/locale.properties">
|
||||||
|
|
Loading…
Reference in a new issue