Merge branch 'main' into features/335_helm_chart
This commit is contained in:
commit
954e46c5ec
30 changed files with 224 additions and 97 deletions
|
@ -12,21 +12,22 @@ RUN apt-get update && \
|
||||||
|
|
||||||
|
|
||||||
# Set Environment Variables
|
# Set Environment Variables
|
||||||
ENV PUID=1000 \
|
ENV DOCKER_ENABLE_SECURITY=false \
|
||||||
PGID=1000 \
|
|
||||||
UMASK=022 \
|
|
||||||
DOCKER_ENABLE_SECURITY=false \
|
|
||||||
HOME=/home/stirlingpdfuser \
|
HOME=/home/stirlingpdfuser \
|
||||||
VERSION_TAG=$VERSION_TAG
|
VERSION_TAG=$VERSION_TAG
|
||||||
|
# PUID=1000 \
|
||||||
|
# PGID=1000 \
|
||||||
|
# UMASK=022 \
|
||||||
|
|
||||||
# Create user and group
|
# Create user and group
|
||||||
RUN groupadd -g $PGID stirlingpdfgroup && \
|
#RUN groupadd -g $PGID stirlingpdfgroup && \
|
||||||
useradd -u $PUID -g stirlingpdfgroup -s /bin/sh stirlingpdfuser && \
|
# useradd -u $PUID -g stirlingpdfgroup -s /bin/sh stirlingpdfuser && \
|
||||||
mkdir -p $HOME && chown stirlingpdfuser:stirlingpdfgroup $HOME
|
# mkdir -p $HOME && chown stirlingpdfuser:stirlingpdfgroup $HOME
|
||||||
|
|
||||||
# Set up necessary directories and permissions
|
# Set up necessary directories and permissions
|
||||||
RUN mkdir -p /scripts /usr/share/fonts/opentype/noto /configs /customFiles && \
|
RUN mkdir -p /scripts /usr/share/fonts/opentype/noto /configs /customFiles
|
||||||
chown -R stirlingpdfuser:stirlingpdfgroup /usr/share/fonts/opentype/noto /configs /customFiles
|
|
||||||
|
# chown -R stirlingpdfuser:stirlingpdfgroup /usr/share/fonts/opentype/noto /configs /customFiles
|
||||||
|
|
||||||
# Copy necessary files
|
# Copy necessary files
|
||||||
COPY src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
COPY src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
||||||
|
@ -34,8 +35,8 @@ COPY src/main/resources/static/fonts/*.otf /usr/share/fonts/opentype/noto/
|
||||||
COPY build/libs/*.jar app.jar
|
COPY build/libs/*.jar app.jar
|
||||||
|
|
||||||
# Set font cache and permissions
|
# Set font cache and permissions
|
||||||
RUN fc-cache -f -v && \
|
RUN fc-cache -f -v
|
||||||
chown stirlingpdfuser:stirlingpdfgroup /app.jar
|
# chown stirlingpdfuser:stirlingpdfgroup /app.jar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,5 +49,6 @@ ENV ENDPOINTS_GROUPS_TO_REMOVE=Python,OpenCV,OCRmyPDF
|
||||||
ENV DOCKER_ENABLE_SECURITY=false
|
ENV DOCKER_ENABLE_SECURITY=false
|
||||||
|
|
||||||
# Run the application
|
# Run the application
|
||||||
USER stirlingpdfuser
|
#USER stirlingpdfuser
|
||||||
|
|
||||||
CMD ["java", "-jar", "/app.jar"]
|
CMD ["java", "-jar", "/app.jar"]
|
||||||
|
|
|
@ -235,7 +235,8 @@ For those wanting to use Stirling-PDFs backend API to link with their own custom
|
||||||
### Prerequisites:
|
### Prerequisites:
|
||||||
- User must have the folder ./configs volumed within docker so that it is retained during updates.
|
- User must have the folder ./configs volumed within docker so that it is retained during updates.
|
||||||
- Docker uses must download the security jar version by setting ``DOCKER_ENABLE_SECURITY`` to ``true`` in environment variables.
|
- Docker uses must download the security jar version by setting ``DOCKER_ENABLE_SECURITY`` to ``true`` in environment variables.
|
||||||
- Now the initial user will be generated with username ``admin`` and password ``stirling``. On login you will be forced to change the password to a new one.
|
- Then either enable login via the settings.yml file or via setting ``SECURITY_ENABLE_LOGIN`` to ``true``
|
||||||
|
- Now the initial user will be generated with username ``admin`` and password ``stirling``. On login you will be forced to change the password to a new one. You can also use the environment variables ``SECURITY_INITIALLOGIN_USERNAME`` and ``SECURITY_INITIALLOGIN_PASSWORD`` to set your own straight away (Recommended to remove them after user creation).
|
||||||
|
|
||||||
Once the above has been done, on restart, a new stirling-pdf-DB.mv.db will show if everything worked.
|
Once the above has been done, on restart, a new stirling-pdf-DB.mv.db will show if everything worked.
|
||||||
|
|
||||||
|
@ -261,4 +262,7 @@ For API usage you must provide a header with 'X-API-Key' and the associated API
|
||||||
- Fill forms mannual and automatic
|
- Fill forms mannual and automatic
|
||||||
|
|
||||||
### Q2: Why is my application downloading .htm files?
|
### Q2: Why is my application downloading .htm files?
|
||||||
This is a issue caused commonly by your NGINX congifuration. The default file upload size for NGINX is 1MB, you need to add the following in your Nginx sites-available file. client_max_body_size SIZE; Where "SIZE" is 50M for example for 50MB files.
|
This is a issue caused commonly by your NGINX congifuration. The default file upload size for NGINX is 1MB, you need to add the following in your Nginx sites-available file. ``client_max_body_size SIZE;`` Where "SIZE" is 50M for example for 50MB files.
|
||||||
|
|
||||||
|
### Q3: Why is my download timing out
|
||||||
|
NGINX has timeout values by default so if you are running Stirling-PDF behind NGINX you may need to set a timeout value such as adding the config ``proxy_read_timeout 3600;``
|
|
@ -8,7 +8,7 @@ plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
group = 'stirling.software'
|
group = 'stirling.software'
|
||||||
version = '0.14.3'
|
version = '0.14.4'
|
||||||
sourceCompatibility = '17'
|
sourceCompatibility = '17'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import cv2
|
import cv2
|
||||||
import numpy as np
|
|
||||||
import sys
|
import sys
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -26,11 +26,18 @@ public class InitialSecuritySetup {
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
if (!userService.hasUsers()) {
|
if (!userService.hasUsers()) {
|
||||||
String initialUsername = "admin";
|
|
||||||
String initialPassword = "stirling";
|
|
||||||
userService.saveUser(initialUsername, initialPassword, Role.ADMIN.getRoleId(), true);
|
|
||||||
|
|
||||||
|
|
||||||
|
String initialUsername = applicationProperties.getSecurity().getInitialLogin().getUsername();
|
||||||
|
String initialPassword = applicationProperties.getSecurity().getInitialLogin().getPassword();
|
||||||
|
if (initialUsername != null && initialPassword != null) {
|
||||||
|
userService.saveUser(initialUsername, initialPassword, Role.ADMIN.getRoleId());
|
||||||
|
} else {
|
||||||
|
initialUsername = "admin";
|
||||||
|
initialPassword = "stirling";
|
||||||
|
userService.saveUser(initialUsername, initialPassword, Role.ADMIN.getRoleId(), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package stirling.software.SPDF.controller.api;
|
package stirling.software.SPDF.controller.api;
|
||||||
|
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@ -42,7 +43,8 @@ public class MultiPageLayoutController {
|
||||||
|
|
||||||
int pagesPerSheet = request.getPagesPerSheet();
|
int pagesPerSheet = request.getPagesPerSheet();
|
||||||
MultipartFile file = request.getFileInput();
|
MultipartFile file = request.getFileInput();
|
||||||
|
boolean addBorder = request.isAddBorder();
|
||||||
|
|
||||||
if (pagesPerSheet != 2 && pagesPerSheet != 3 && pagesPerSheet != (int) Math.sqrt(pagesPerSheet) * Math.sqrt(pagesPerSheet)) {
|
if (pagesPerSheet != 2 && pagesPerSheet != 3 && pagesPerSheet != (int) Math.sqrt(pagesPerSheet) * Math.sqrt(pagesPerSheet)) {
|
||||||
throw new IllegalArgumentException("pagesPerSheet must be 2, 3 or a perfect square");
|
throw new IllegalArgumentException("pagesPerSheet must be 2, 3 or a perfect square");
|
||||||
}
|
}
|
||||||
|
@ -62,6 +64,10 @@ public class MultiPageLayoutController {
|
||||||
PDPageContentStream contentStream = new PDPageContentStream(newDocument, newPage, PDPageContentStream.AppendMode.APPEND, true, true);
|
PDPageContentStream contentStream = new PDPageContentStream(newDocument, newPage, PDPageContentStream.AppendMode.APPEND, true, true);
|
||||||
LayerUtility layerUtility = new LayerUtility(newDocument);
|
LayerUtility layerUtility = new LayerUtility(newDocument);
|
||||||
|
|
||||||
|
float borderThickness = 1.5f; // Specify border thickness as required
|
||||||
|
contentStream.setLineWidth(borderThickness);
|
||||||
|
contentStream.setStrokingColor(Color.BLACK);
|
||||||
|
|
||||||
for (int i = 0; i < totalPages; i++) {
|
for (int i = 0; i < totalPages; i++) {
|
||||||
if (i != 0 && i % pagesPerSheet == 0) {
|
if (i != 0 && i % pagesPerSheet == 0) {
|
||||||
// Close the current content stream and create a new page and content stream
|
// Close the current content stream and create a new page and content stream
|
||||||
|
@ -92,6 +98,14 @@ public class MultiPageLayoutController {
|
||||||
contentStream.drawForm(formXObject);
|
contentStream.drawForm(formXObject);
|
||||||
|
|
||||||
contentStream.restoreGraphicsState();
|
contentStream.restoreGraphicsState();
|
||||||
|
|
||||||
|
if(addBorder) {
|
||||||
|
// Draw border around each page
|
||||||
|
float borderX = colIndex * cellWidth;
|
||||||
|
float borderY = newPage.getMediaBox().getHeight() - (rowIndex + 1) * cellHeight;
|
||||||
|
contentStream.addRect(borderX, borderY, cellWidth, cellHeight);
|
||||||
|
contentStream.stroke();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package stirling.software.SPDF.controller.api.misc;
|
package stirling.software.SPDF.controller.api.misc;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
|
@ -58,7 +61,8 @@ public class ExtractImagesController {
|
||||||
|
|
||||||
int imageIndex = 1;
|
int imageIndex = 1;
|
||||||
String filename = file.getOriginalFilename().replaceFirst("[.][^.]+$", "");
|
String filename = file.getOriginalFilename().replaceFirst("[.][^.]+$", "");
|
||||||
int pageNum = 1;
|
int pageNum = 0;
|
||||||
|
Set<Integer> processedImages = new HashSet<>();
|
||||||
// Iterate over each page
|
// Iterate over each page
|
||||||
for (PDPage page : document.getPages()) {
|
for (PDPage page : document.getPages()) {
|
||||||
++pageNum;
|
++pageNum;
|
||||||
|
@ -66,7 +70,12 @@ public class ExtractImagesController {
|
||||||
for (COSName name : page.getResources().getXObjectNames()) {
|
for (COSName name : page.getResources().getXObjectNames()) {
|
||||||
if (page.getResources().isImageXObject(name)) {
|
if (page.getResources().isImageXObject(name)) {
|
||||||
PDImageXObject image = (PDImageXObject) page.getResources().getXObject(name);
|
PDImageXObject image = (PDImageXObject) page.getResources().getXObject(name);
|
||||||
|
int imageHash = image.hashCode();
|
||||||
|
if(processedImages.contains(imageHash)) {
|
||||||
|
continue; // Skip already processed images
|
||||||
|
}
|
||||||
|
processedImages.add(imageHash);
|
||||||
|
|
||||||
// Convert image to desired format
|
// Convert image to desired format
|
||||||
RenderedImage renderedImage = image.getImage();
|
RenderedImage renderedImage = image.getImage();
|
||||||
BufferedImage bufferedImage = null;
|
BufferedImage bufferedImage = null;
|
||||||
|
|
|
@ -386,12 +386,16 @@ public class GetInfoOnPDF {
|
||||||
float width = mediaBox.getWidth();
|
float width = mediaBox.getWidth();
|
||||||
float height = mediaBox.getHeight();
|
float height = mediaBox.getHeight();
|
||||||
|
|
||||||
pageInfo.put("Width", width);
|
ObjectNode sizeInfo = objectMapper.createObjectNode();
|
||||||
pageInfo.put("Height", height);
|
|
||||||
|
getDimensionInfo(sizeInfo, width, height);
|
||||||
|
|
||||||
|
sizeInfo.put("Standard Page", getPageSize(width, height));
|
||||||
|
pageInfo.set("Size", sizeInfo);
|
||||||
|
|
||||||
pageInfo.put("Rotation", page.getRotation());
|
pageInfo.put("Rotation", page.getRotation());
|
||||||
|
|
||||||
pageInfo.put("Page Orientation", getPageOrientation(width, height));
|
pageInfo.put("Page Orientation", getPageOrientation(width, height));
|
||||||
pageInfo.put("Standard Size", getPageSize(width, height));
|
|
||||||
|
|
||||||
// Boxes
|
// Boxes
|
||||||
pageInfo.put("MediaBox", mediaBox.toString());
|
pageInfo.put("MediaBox", mediaBox.toString());
|
||||||
|
@ -620,7 +624,7 @@ public class GetInfoOnPDF {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pageInfoParent.set("Page " + pageNum, pageInfo);
|
pageInfoParent.set("Page " + (pageNum+1), pageInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -670,28 +674,52 @@ public class GetInfoOnPDF {
|
||||||
return "Square";
|
return "Square";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public String getPageSize(double width, double height) {
|
public String getPageSize(float width, float height) {
|
||||||
// Common aspect ratios used for standard paper sizes
|
// Define standard page sizes
|
||||||
double[] aspectRatios = {4.0 / 3.0, 3.0 / 2.0, Math.sqrt(2.0), 16.0 / 9.0};
|
Map<String, PDRectangle> standardSizes = new HashMap<>();
|
||||||
|
standardSizes.put("Letter", PDRectangle.LETTER);
|
||||||
|
standardSizes.put("LEGAL", PDRectangle.LEGAL);
|
||||||
|
standardSizes.put("A0", PDRectangle.A0);
|
||||||
|
standardSizes.put("A1", PDRectangle.A1);
|
||||||
|
standardSizes.put("A2", PDRectangle.A2);
|
||||||
|
standardSizes.put("A3", PDRectangle.A3);
|
||||||
|
standardSizes.put("A4", PDRectangle.A4);
|
||||||
|
standardSizes.put("A5", PDRectangle.A5);
|
||||||
|
standardSizes.put("A6", PDRectangle.A6);
|
||||||
|
|
||||||
// Check if the page matches any common aspect ratio
|
for (Map.Entry<String, PDRectangle> entry : standardSizes.entrySet()) {
|
||||||
for (double aspectRatio : aspectRatios) {
|
PDRectangle size = entry.getValue();
|
||||||
if (isCloseToAspectRatio(width, height, aspectRatio)) {
|
if (isCloseToSize(width, height, size.getWidth(), size.getHeight())) {
|
||||||
return "Standard";
|
return entry.getKey();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not a standard aspect ratio, consider it as a custom size
|
|
||||||
return "Custom";
|
return "Custom";
|
||||||
}
|
}
|
||||||
private boolean isCloseToAspectRatio(double width, double height, double aspectRatio) {
|
|
||||||
// Calculate the aspect ratio of the page
|
|
||||||
double pageAspectRatio = width / height;
|
|
||||||
|
|
||||||
// Compare the page aspect ratio with the common aspect ratio within a threshold
|
private boolean isCloseToSize(float width, float height, float standardWidth, float standardHeight) {
|
||||||
return Math.abs(pageAspectRatio - aspectRatio) <= 0.05;
|
float tolerance = 1.0f; // You can adjust the tolerance as needed
|
||||||
|
return Math.abs(width - standardWidth) <= tolerance && Math.abs(height - standardHeight) <= tolerance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ObjectNode getDimensionInfo(ObjectNode dimensionInfo, float width, float height) {
|
||||||
|
float ppi = 72; // Points Per Inch
|
||||||
|
|
||||||
|
float widthInInches = width / ppi;
|
||||||
|
float heightInInches = height / ppi;
|
||||||
|
|
||||||
|
float widthInCm = widthInInches * 2.54f;
|
||||||
|
float heightInCm = heightInInches * 2.54f;
|
||||||
|
|
||||||
|
dimensionInfo.put("Width (px)", String.format("%.2f", width));
|
||||||
|
dimensionInfo.put("Height (px)", String.format("%.2f", height));
|
||||||
|
dimensionInfo.put("Width (in)", String.format("%.2f", widthInInches));
|
||||||
|
dimensionInfo.put("Height (in)", String.format("%.2f", heightInInches));
|
||||||
|
dimensionInfo.put("Width (cm)", String.format("%.2f", widthInCm));
|
||||||
|
dimensionInfo.put("Height (cm)", String.format("%.2f", heightInCm));
|
||||||
|
return dimensionInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static boolean checkForStandard(PDDocument document, String standardKeyword) {
|
public static boolean checkForStandard(PDDocument document, String standardKeyword) {
|
||||||
|
|
|
@ -105,7 +105,16 @@ public class ApplicationProperties {
|
||||||
public static class Security {
|
public static class Security {
|
||||||
private Boolean enableLogin;
|
private Boolean enableLogin;
|
||||||
private Boolean csrfDisabled;
|
private Boolean csrfDisabled;
|
||||||
|
private InitialLogin initialLogin;
|
||||||
|
|
||||||
|
public InitialLogin getInitialLogin() {
|
||||||
|
return initialLogin != null ? initialLogin : new InitialLogin();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInitialLogin(InitialLogin initialLogin) {
|
||||||
|
this.initialLogin = initialLogin;
|
||||||
|
}
|
||||||
|
|
||||||
public Boolean getEnableLogin() {
|
public Boolean getEnableLogin() {
|
||||||
return enableLogin;
|
return enableLogin;
|
||||||
}
|
}
|
||||||
|
@ -125,9 +134,39 @@ public class ApplicationProperties {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Security [enableLogin=" + enableLogin + ", csrfDisabled="
|
return "Security [enableLogin=" + enableLogin + ", initialLogin=" + initialLogin + ", csrfDisabled="
|
||||||
+ csrfDisabled + "]";
|
+ csrfDisabled + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class InitialLogin {
|
||||||
|
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "InitialLogin [username=" + username + ", password=" + (password != null && !password.isEmpty() ? "MASKED" : "NULL") + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class System {
|
public static class System {
|
||||||
|
|
|
@ -12,4 +12,7 @@ public class MergeMultiplePagesRequest extends PDFFile {
|
||||||
@Schema(description = "The number of pages to fit onto a single sheet in the output PDF.",
|
@Schema(description = "The number of pages to fit onto a single sheet in the output PDF.",
|
||||||
type = "integer", allowableValues = {"2", "3", "4", "9", "16"})
|
type = "integer", allowableValues = {"2", "3", "4", "9", "16"})
|
||||||
private int pagesPerSheet;
|
private int pagesPerSheet;
|
||||||
|
|
||||||
|
@Schema(description = "Boolean for if you wish to add border around the pages")
|
||||||
|
private boolean addBorder;
|
||||||
}
|
}
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Multi Page Layout
|
pageLayout.title=Multi Page Layout
|
||||||
pageLayout.header=Multi Page Layout
|
pageLayout.header=Multi Page Layout
|
||||||
pageLayout.pagesPerSheet=Pages per sheet:
|
pageLayout.pagesPerSheet=Pages per sheet:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Submit
|
pageLayout.submit=Submit
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Split
|
||||||
imageToPDF.title=صورة إلى PDF
|
imageToPDF.title=صورة إلى PDF
|
||||||
imageToPDF.header=صورة إلى PDF
|
imageToPDF.header=صورة إلى PDF
|
||||||
imageToPDF.submit=تحول
|
imageToPDF.submit=تحول
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Multi Page Layout
|
pageLayout.title=Multi Page Layout
|
||||||
pageLayout.header=Multi Page Layout
|
pageLayout.header=Multi Page Layout
|
||||||
pageLayout.pagesPerSheet=Pages per sheet:
|
pageLayout.pagesPerSheet=Pages per sheet:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Submit
|
pageLayout.submit=Submit
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Divideix
|
||||||
imageToPDF.title=Imatge a PDF
|
imageToPDF.title=Imatge a PDF
|
||||||
imageToPDF.header=Imatge a PDF
|
imageToPDF.header=Imatge a PDF
|
||||||
imageToPDF.submit=Converteix
|
imageToPDF.submit=Converteix
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Mehrseitiges Layout
|
pageLayout.title=Mehrseitiges Layout
|
||||||
pageLayout.header=Mehrseitiges Layout
|
pageLayout.header=Mehrseitiges Layout
|
||||||
pageLayout.pagesPerSheet=Seiten pro Blatt:
|
pageLayout.pagesPerSheet=Seiten pro Blatt:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Abschicken
|
pageLayout.submit=Abschicken
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Aufteilen
|
||||||
imageToPDF.title=Bild zu PDF
|
imageToPDF.title=Bild zu PDF
|
||||||
imageToPDF.header=Bild zu PDF
|
imageToPDF.header=Bild zu PDF
|
||||||
imageToPDF.submit=Umwandeln
|
imageToPDF.submit=Umwandeln
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,7 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Multi Page Layout
|
pageLayout.title=Multi Page Layout
|
||||||
pageLayout.header=Multi Page Layout
|
pageLayout.header=Multi Page Layout
|
||||||
pageLayout.pagesPerSheet=Pages per sheet:
|
pageLayout.pagesPerSheet=Pages per sheet:
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Submit
|
pageLayout.submit=Submit
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Multi Page Layout
|
pageLayout.title=Multi Page Layout
|
||||||
pageLayout.header=Multi Page Layout
|
pageLayout.header=Multi Page Layout
|
||||||
pageLayout.pagesPerSheet=Pages per sheet:
|
pageLayout.pagesPerSheet=Pages per sheet:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Submit
|
pageLayout.submit=Submit
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Split
|
||||||
imageToPDF.title=Image to PDF
|
imageToPDF.title=Image to PDF
|
||||||
imageToPDF.header=Image to PDF
|
imageToPDF.header=Image to PDF
|
||||||
imageToPDF.submit=Convert
|
imageToPDF.submit=Convert
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Diseño de varias páginas
|
pageLayout.title=Diseño de varias páginas
|
||||||
pageLayout.header=Diseño de varias páginas
|
pageLayout.header=Diseño de varias páginas
|
||||||
pageLayout.pagesPerSheet=Páginas por hoja:
|
pageLayout.pagesPerSheet=Páginas por hoja:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Entregar
|
pageLayout.submit=Entregar
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Dividir
|
||||||
imageToPDF.title=Imagen a PDF
|
imageToPDF.title=Imagen a PDF
|
||||||
imageToPDF.header=Imagen a PDF
|
imageToPDF.header=Imagen a PDF
|
||||||
imageToPDF.submit=Convertir
|
imageToPDF.submit=Convertir
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Hodia
|
||||||
pageLayout.title=Hainbat orrialderen diseinua
|
pageLayout.title=Hainbat orrialderen diseinua
|
||||||
pageLayout.header=Hainbat orrialderen diseinua
|
pageLayout.header=Hainbat orrialderen diseinua
|
||||||
pageLayout.pagesPerSheet=Orrialdeak orriko:
|
pageLayout.pagesPerSheet=Orrialdeak orriko:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Entregatu
|
pageLayout.submit=Entregatu
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Zatitu
|
||||||
imageToPDF.title=Irudia PDF bihurtu
|
imageToPDF.title=Irudia PDF bihurtu
|
||||||
imageToPDF.header=Irudia PDF bihurtu
|
imageToPDF.header=Irudia PDF bihurtu
|
||||||
imageToPDF.submit=Bihurtu
|
imageToPDF.submit=Bihurtu
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Fusionner des pages
|
pageLayout.title=Fusionner des pages
|
||||||
pageLayout.header=Fusionner des pages
|
pageLayout.header=Fusionner des pages
|
||||||
pageLayout.pagesPerSheet=Pages par feuille
|
pageLayout.pagesPerSheet=Pages par feuille
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Fusionner
|
pageLayout.submit=Fusionner
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Diviser
|
||||||
imageToPDF.title=Image en PDF
|
imageToPDF.title=Image en PDF
|
||||||
imageToPDF.header=Image en PDF
|
imageToPDF.header=Image en PDF
|
||||||
imageToPDF.submit=Convertir
|
imageToPDF.submit=Convertir
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Layout multipagina
|
pageLayout.title=Layout multipagina
|
||||||
pageLayout.header=Layout multipagina
|
pageLayout.header=Layout multipagina
|
||||||
pageLayout.pagesPerSheet=Pagine per foglio:
|
pageLayout.pagesPerSheet=Pagine per foglio:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Invia
|
pageLayout.submit=Invia
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Dividi
|
||||||
imageToPDF.title=Immagine a PDF
|
imageToPDF.title=Immagine a PDF
|
||||||
imageToPDF.header=Immagine a PDF
|
imageToPDF.header=Immagine a PDF
|
||||||
imageToPDF.submit=Converti
|
imageToPDF.submit=Converti
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=パイプライン
|
||||||
pageLayout.title=マルチページレイアウト
|
pageLayout.title=マルチページレイアウト
|
||||||
pageLayout.header=マルチページレイアウト
|
pageLayout.header=マルチページレイアウト
|
||||||
pageLayout.pagesPerSheet=1枚あたりのページ数:
|
pageLayout.pagesPerSheet=1枚あたりのページ数:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=送信
|
pageLayout.submit=送信
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=分割
|
||||||
imageToPDF.title=画像をPDFに変換
|
imageToPDF.title=画像をPDFに変換
|
||||||
imageToPDF.header=画像をPDFに変換
|
imageToPDF.header=画像をPDFに変換
|
||||||
imageToPDF.submit=変換
|
imageToPDF.submit=変換
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Multi Page Layout
|
pageLayout.title=Multi Page Layout
|
||||||
pageLayout.header=Multi Page Layout
|
pageLayout.header=Multi Page Layout
|
||||||
pageLayout.pagesPerSheet=Pages per sheet:
|
pageLayout.pagesPerSheet=Pages per sheet:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Submit
|
pageLayout.submit=Submit
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=분할
|
||||||
imageToPDF.title=이미지를 PDF로 변환
|
imageToPDF.title=이미지를 PDF로 변환
|
||||||
imageToPDF.header=이미지를 PDF로 변환
|
imageToPDF.header=이미지를 PDF로 변환
|
||||||
imageToPDF.submit=변환하기
|
imageToPDF.submit=변환하기
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pijplijn
|
||||||
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:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Indienen
|
pageLayout.submit=Indienen
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ 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
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Układ wielu stron
|
pageLayout.title=Układ wielu stron
|
||||||
pageLayout.header=Układ wielu stron
|
pageLayout.header=Układ wielu stron
|
||||||
pageLayout.pagesPerSheet=Stron na jednym arkuszu:
|
pageLayout.pagesPerSheet=Stron na jednym arkuszu:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Wykonaj
|
pageLayout.submit=Wykonaj
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Podziel
|
||||||
imageToPDF.title=Obraz na PDF
|
imageToPDF.title=Obraz na PDF
|
||||||
imageToPDF.header=Obraz na PDF
|
imageToPDF.header=Obraz na PDF
|
||||||
imageToPDF.submit=Konwertuj
|
imageToPDF.submit=Konwertuj
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Layout de Múltiplas Páginas
|
pageLayout.title=Layout de Múltiplas Páginas
|
||||||
pageLayout.header=Layout de Múltiplas Páginas
|
pageLayout.header=Layout de Múltiplas Páginas
|
||||||
pageLayout.pagesPerSheet=Páginas por folha:
|
pageLayout.pagesPerSheet=Páginas por folha:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Enviar
|
pageLayout.submit=Enviar
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Dividir
|
||||||
imageToPDF.title=Imagem para PDF
|
imageToPDF.title=Imagem para PDF
|
||||||
imageToPDF.header=Converter Imagem para PDF
|
imageToPDF.header=Converter Imagem para PDF
|
||||||
imageToPDF.submit=Converter
|
imageToPDF.submit=Converter
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Multi Page Layout
|
pageLayout.title=Multi Page Layout
|
||||||
pageLayout.header=Multi Page Layout
|
pageLayout.header=Multi Page Layout
|
||||||
pageLayout.pagesPerSheet=Pages per sheet:
|
pageLayout.pagesPerSheet=Pages per sheet:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Submit
|
pageLayout.submit=Submit
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Împarte
|
||||||
imageToPDF.title=Imagine în PDF
|
imageToPDF.title=Imagine în PDF
|
||||||
imageToPDF.header=Imagine în PDF
|
imageToPDF.header=Imagine în PDF
|
||||||
imageToPDF.submit=Convertă
|
imageToPDF.submit=Convertă
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Multi Page Layout
|
pageLayout.title=Multi Page Layout
|
||||||
pageLayout.header=Multi Page Layout
|
pageLayout.header=Multi Page Layout
|
||||||
pageLayout.pagesPerSheet=Pages per sheet:
|
pageLayout.pagesPerSheet=Pages per sheet:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Submit
|
pageLayout.submit=Submit
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Разделить
|
||||||
imageToPDF.title=Изображение в PDF
|
imageToPDF.title=Изображение в PDF
|
||||||
imageToPDF.header=Изображение в PDF
|
imageToPDF.header=Изображение в PDF
|
||||||
imageToPDF.submit=Конвертировать
|
imageToPDF.submit=Конвертировать
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Multi Page Layout
|
pageLayout.title=Multi Page Layout
|
||||||
pageLayout.header=Multi Page Layout
|
pageLayout.header=Multi Page Layout
|
||||||
pageLayout.pagesPerSheet=Pages per sheet:
|
pageLayout.pagesPerSheet=Pages per sheet:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Submit
|
pageLayout.submit=Submit
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=Dela
|
||||||
imageToPDF.title=Bild till PDF
|
imageToPDF.title=Bild till PDF
|
||||||
imageToPDF.header=Bild till PDF
|
imageToPDF.header=Bild till PDF
|
||||||
imageToPDF.submit=Konvertera
|
imageToPDF.submit=Konvertera
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -478,6 +478,10 @@ pipeline.title=Pipeline
|
||||||
pageLayout.title=Multi Page Layout
|
pageLayout.title=Multi Page Layout
|
||||||
pageLayout.header=Multi Page Layout
|
pageLayout.header=Multi Page Layout
|
||||||
pageLayout.pagesPerSheet=Pages per sheet:
|
pageLayout.pagesPerSheet=Pages per sheet:
|
||||||
|
##########################
|
||||||
|
### TODO: Translate ###
|
||||||
|
##########################
|
||||||
|
pageLayout.addBorder=Add Borders
|
||||||
pageLayout.submit=Submit
|
pageLayout.submit=Submit
|
||||||
|
|
||||||
|
|
||||||
|
@ -665,9 +669,6 @@ split.submit=拆分
|
||||||
imageToPDF.title=图片转PDF
|
imageToPDF.title=图片转PDF
|
||||||
imageToPDF.header=图像转为PDF
|
imageToPDF.header=图像转为PDF
|
||||||
imageToPDF.submit=转换
|
imageToPDF.submit=转换
|
||||||
##########################
|
|
||||||
### TODO: Translate ###
|
|
||||||
##########################
|
|
||||||
imageToPDF.selectLabel=Image Fit Options
|
imageToPDF.selectLabel=Image Fit Options
|
||||||
imageToPDF.fillPage=Fill Page
|
imageToPDF.fillPage=Fill Page
|
||||||
imageToPDF.fitDocumentToImage=Fit Page to Image
|
imageToPDF.fitDocumentToImage=Fit Page to Image
|
||||||
|
|
|
@ -26,6 +26,10 @@
|
||||||
<option value="16">16</option>
|
<option value="16">16</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<input type="checkbox" class="form-check-input" id="addBorder" name="addBorder">
|
||||||
|
<label class="form-check-label" for="addBorder" th:text="#{pageLayout.addBorder}"></label>
|
||||||
|
</div>
|
||||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{pageLayout.submit}"></button>
|
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{pageLayout.submit}"></button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label th:text="#{removePassword.selectText.2}"></label>
|
<label th:text="#{removePassword.selectText.2}"></label>
|
||||||
<input type="password" class="form-control" id="password" name="password" required>
|
<input type="password" class="form-control" id="password" name="password">
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<div class="mb-3 text-center">
|
<div class="mb-3 text-center">
|
||||||
|
|
Loading…
Reference in a new issue