mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-07-28 13:47:43 +02:00
Merge branch 'main' into filePath
This commit is contained in:
commit
9422a30ebf
7
.github/labeler-config.yml
vendored
7
.github/labeler-config.yml
vendored
@ -49,12 +49,17 @@ Documentation:
|
||||
|
||||
Docker:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '.github/workflows/build.yml'
|
||||
- any-glob-to-any-file: '.github/workflows/push-docker.yml'
|
||||
- any-glob-to-any-file: 'Dockerfile'
|
||||
- any-glob-to-any-file: 'Dockerfile-*'
|
||||
- any-glob-to-any-file: 'Dockerfile.*'
|
||||
- any-glob-to-any-file: 'exampleYmlFiles/*.yml'
|
||||
- any-glob-to-any-file: 'scripts/download-security-jar.sh'
|
||||
- any-glob-to-any-file: 'scripts/init.sh'
|
||||
- any-glob-to-any-file: 'scripts/init-without-ocr.sh'
|
||||
- any-glob-to-any-file: 'scripts/installFonts.sh'
|
||||
- any-glob-to-any-file: 'test.sh'
|
||||
- any-glob-to-any-file: 'test2.sh'
|
||||
|
||||
Test:
|
||||
- changed-files:
|
||||
|
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -95,7 +95,7 @@ jobs:
|
||||
|
||||
- name: Install Docker Compose
|
||||
run: |
|
||||
sudo curl -SL "https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
sudo curl -SL "https://github.com/docker/compose/releases/download/v2.32.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
sudo chmod +x /usr/local/bin/docker-compose
|
||||
|
||||
- name: Set up Python
|
||||
|
@ -124,7 +124,7 @@ Stirling-PDF currently supports 38 languages!
|
||||
| Croatian (Hrvatski) (hr_HR) |  |
|
||||
| Czech (Česky) (cs_CZ) |  |
|
||||
| Danish (Dansk) (da_DK) |  |
|
||||
| Dutch (Nederlands) (nl_NL) |  |
|
||||
| Dutch (Nederlands) (nl_NL) |  |
|
||||
| English (English) (en_GB) |  |
|
||||
| English (US) (en_US) |  |
|
||||
| French (Français) (fr_FR) |  |
|
||||
@ -136,7 +136,7 @@ Stirling-PDF currently supports 38 languages!
|
||||
| Irish (Gaeilge) (ga_IE) |  |
|
||||
| Italian (Italiano) (it_IT) |  |
|
||||
| Japanese (日本語) (ja_JP) |  |
|
||||
| Korean (한국어) (ko_KR) |  |
|
||||
| Korean (한국어) (ko_KR) |  |
|
||||
| Norwegian (Norsk) (no_NB) |  |
|
||||
| Persian (فارسی) (fa_IR) |  |
|
||||
| Polish (Polski) (pl_PL) |  |
|
||||
@ -149,7 +149,7 @@ Stirling-PDF currently supports 38 languages!
|
||||
| Slovakian (Slovensky) (sk_SK) |  |
|
||||
| Spanish (Español) (es_ES) |  |
|
||||
| Swedish (Svenska) (sv_SE) |  |
|
||||
| Thai (ไทย) (th_TH) |  |
|
||||
| Thai (ไทย) (th_TH) |  |
|
||||
| Traditional Chinese (繁體中文) (zh_TW) |  |
|
||||
| Turkish (Türkçe) (tr_TR) |  |
|
||||
| Ukrainian (Українська) (uk_UA) |  |
|
||||
|
@ -13,6 +13,9 @@ import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.pdfbox.Loader;
|
||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||
import org.apache.pdfbox.pdmodel.PDPage;
|
||||
import org.apache.pdfbox.rendering.ImageType;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
@ -31,11 +34,8 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import stirling.software.SPDF.model.api.converters.ConvertToImageRequest;
|
||||
import stirling.software.SPDF.model.api.converters.ConvertToPdfRequest;
|
||||
import stirling.software.SPDF.service.CustomPDDocumentFactory;
|
||||
import stirling.software.SPDF.utils.CheckProgramInstall;
|
||||
import stirling.software.SPDF.utils.PdfUtils;
|
||||
import stirling.software.SPDF.utils.ProcessExecutor;
|
||||
import stirling.software.SPDF.utils.*;
|
||||
import stirling.software.SPDF.utils.ProcessExecutor.ProcessExecutorResult;
|
||||
import stirling.software.SPDF.utils.WebResponseUtils;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/convert")
|
||||
@ -62,14 +62,20 @@ public class ConvertImgPDFController {
|
||||
String singleOrMultiple = request.getSingleOrMultiple();
|
||||
String colorType = request.getColorType();
|
||||
String dpi = request.getDpi();
|
||||
|
||||
String pageNumbers = request.getPageNumbers();
|
||||
Path tempFile = null;
|
||||
Path tempOutputDir = null;
|
||||
Path tempPdfPath = null;
|
||||
byte[] result = null;
|
||||
|
||||
String[] pageOrderArr =
|
||||
(pageNumbers != null && !pageNumbers.trim().isEmpty())
|
||||
? pageNumbers.split(",")
|
||||
: new String[] {"all"};
|
||||
;
|
||||
try {
|
||||
byte[] pdfBytes = file.getBytes();
|
||||
// Load the input PDF
|
||||
byte[] newPdfBytes = rearrangePdfPages(file.getBytes(), pageOrderArr);
|
||||
|
||||
ImageType colorTypeResult = ImageType.RGB;
|
||||
if ("greyscale".equals(colorType)) {
|
||||
colorTypeResult = ImageType.GRAY;
|
||||
@ -84,7 +90,7 @@ public class ConvertImgPDFController {
|
||||
|
||||
result =
|
||||
PdfUtils.convertFromPdf(
|
||||
pdfBytes,
|
||||
newPdfBytes,
|
||||
"webp".equalsIgnoreCase(imageFormat)
|
||||
? "png"
|
||||
: imageFormat.toUpperCase(),
|
||||
@ -227,4 +233,46 @@ public class ConvertImgPDFController {
|
||||
String mimeType = URLConnection.guessContentTypeFromName("." + imageFormat);
|
||||
return "null".equals(mimeType) ? "application/octet-stream" : mimeType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rearranges the pages of the given PDF document based on the specified page order.
|
||||
*
|
||||
* @param pdfBytes The byte array of the original PDF file.
|
||||
* @param pageOrderArr An array of page numbers indicating the new order.
|
||||
* @return A byte array of the rearranged PDF.
|
||||
* @throws IOException If an error occurs while processing the PDF.
|
||||
*/
|
||||
private byte[] rearrangePdfPages(byte[] pdfBytes, String[] pageOrderArr) throws IOException {
|
||||
// Load the input PDF
|
||||
PDDocument document = Loader.loadPDF(pdfBytes);
|
||||
int totalPages = document.getNumberOfPages();
|
||||
List<Integer> newPageOrder = GeneralUtils.parsePageList(pageOrderArr, totalPages, false);
|
||||
|
||||
// Create a new list to hold the pages in the new order
|
||||
List<PDPage> newPages = new ArrayList<>();
|
||||
for (int pageIndex : newPageOrder) {
|
||||
newPages.add(document.getPage(pageIndex));
|
||||
}
|
||||
|
||||
// Remove all the pages from the original document
|
||||
for (int i = document.getNumberOfPages() - 1; i >= 0; i--) {
|
||||
document.removePage(i);
|
||||
}
|
||||
|
||||
// Add the pages in the new order
|
||||
for (PDPage page : newPages) {
|
||||
document.addPage(page);
|
||||
}
|
||||
|
||||
// Convert PDDocument to byte array
|
||||
byte[] newPdfBytes;
|
||||
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
|
||||
document.save(baos);
|
||||
newPdfBytes = baos.toByteArray();
|
||||
} finally {
|
||||
document.close();
|
||||
}
|
||||
|
||||
return newPdfBytes;
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,11 @@ public class ConvertToImageRequest extends PDFFile {
|
||||
allowableValues = {"single", "multiple"})
|
||||
private String singleOrMultiple;
|
||||
|
||||
@Schema(
|
||||
description =
|
||||
"The pages to select, Supports ranges (e.g., '1,3,5-9'), or 'all' or functions in the format 'an+b' where 'a' is the multiplier of the page number 'n', and 'b' is a constant (e.g., '2n+1', '3n', '6n-5')\"")
|
||||
private String pageNumbers;
|
||||
|
||||
@Schema(
|
||||
description = "The color type of the output image(s)",
|
||||
allowableValues = {"color", "greyscale", "blackwhite"})
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=تدرج الرمادي
|
||||
pdfToImage.blackwhite=أبيض وأسود (قد يفقد البيانات!)
|
||||
pdfToImage.submit=تحويل
|
||||
pdfToImage.info=Python غير مثبت. مطلوب لتحويل WebP.
|
||||
pdfToImage.placeholder=(مثال: 1,2,8 أو 4,7,12-16 أو 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Boz Tonlama
|
||||
pdfToImage.blackwhite=Qara və Ağ (Data İtə Bilər)
|
||||
pdfToImage.submit=Çevir
|
||||
pdfToImage.info=Python Yüklü Deyil.WebP Çevirməsi Üçün Vacibdir
|
||||
pdfToImage.placeholder=(məsələn, 1,2,8 və ya 4,7,12-16 və ya 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Скала на сивото
|
||||
pdfToImage.blackwhite=Черно и бяло (може да загубите данни!)
|
||||
pdfToImage.submit=Преобразуване
|
||||
pdfToImage.info=Python не е инсталиран. Изисква се за конвертиране на WebP.
|
||||
pdfToImage.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Escala de Grisos
|
||||
pdfToImage.blackwhite=Blanc i Negre (Pot perdre dades!)
|
||||
pdfToImage.submit=Converteix
|
||||
pdfToImage.info=Python no està instal·lat. És necessari per a la conversió a WebP.
|
||||
pdfToImage.placeholder=(p. ex. 1,2,8 o 4,7,12-16 o 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Stupně šedi
|
||||
pdfToImage.blackwhite=Černobílý (Může dojít k ztrátě dat!)
|
||||
pdfToImage.submit=Převést
|
||||
pdfToImage.info=Python není nainstalován. Potřebuje se pro konverzi do WebP.
|
||||
pdfToImage.placeholder=(např. 1,2,8 nebo 4,7,12-16 nebo 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Gråtone
|
||||
pdfToImage.blackwhite=Sort og Hvid (Kan miste data!)
|
||||
pdfToImage.submit=Konvertér
|
||||
pdfToImage.info=Python er ikke installeret. Påkrævet for WebP-konvertering.
|
||||
pdfToImage.placeholder=(f.eks. 1,2,8 eller 4,7,12-16 eller 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Graustufen
|
||||
pdfToImage.blackwhite=Schwarzweiß (Datenverlust möglich!)
|
||||
pdfToImage.submit=Umwandeln
|
||||
pdfToImage.info=Python ist nicht installiert. Erforderlich für die WebP-Konvertierung.
|
||||
pdfToImage.placeholder=(z.B. 1,2,8 oder 4,7,12-16 oder 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Κλίμακα του γκρι
|
||||
pdfToImage.blackwhite=Ασπρόμαυρο (Μπορεί να χαθούν δεδομένα!)
|
||||
pdfToImage.submit=Μετατροπή
|
||||
pdfToImage.info=Δεν είναι ιστάμενος Python. Είναι απαιτήτων για τη μετατροπή σε WebP.
|
||||
pdfToImage.placeholder=(π.χ. 1,2,8 ή 4,7,12-16 ή 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Greyscale
|
||||
pdfToImage.blackwhite=Black and White (May lose data!)
|
||||
pdfToImage.submit=Convert
|
||||
pdfToImage.info=Python is not installed. Required for WebP conversion.
|
||||
pdfToImage.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Grayscale
|
||||
pdfToImage.blackwhite=Black and White (May lose data!)
|
||||
pdfToImage.submit=Convert
|
||||
pdfToImage.info=Python is not installed. Required for WebP conversion.
|
||||
pdfToImage.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Escala de grises
|
||||
pdfToImage.blackwhite=Blanco y Negro (¡Puede perder datos!)
|
||||
pdfToImage.submit=Convertir
|
||||
pdfToImage.info=Python no está instalado. Se requiere para la conversión WebP.
|
||||
pdfToImage.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Gris-eskala
|
||||
pdfToImage.blackwhite=Zuria eta Beltza (Datuak galdu ditzake!)
|
||||
pdfToImage.submit=Bihurtu
|
||||
pdfToImage.info=Python is not installed. Required for WebP conversion.
|
||||
pdfToImage.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=خاکستری
|
||||
pdfToImage.blackwhite=سیاه و سفید (ممکن است اطلاعات از دست برود!)
|
||||
pdfToImage.submit=تبدیل
|
||||
pdfToImage.info=پایتون نصب نشده است. برای تبدیل WebP لازم است.
|
||||
pdfToImage.placeholder=(مثال: 1,2,8 یا 4,7,12-16 یا 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Niveaux de gris
|
||||
pdfToImage.blackwhite=Noir et blanc (peut engendrer une perte de données !)
|
||||
pdfToImage.submit=Convertir
|
||||
pdfToImage.info=Python n’est pas installé. Nécessaire pour la conversion WebP.
|
||||
pdfToImage.placeholder=(par exemple : 1,2,8 ou 4,7,12-16 ou 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Scála Liath
|
||||
pdfToImage.blackwhite=Dubh agus Bán (D’fhéadfadh sonraí a chailleadh!)
|
||||
pdfToImage.submit=Tiontaigh
|
||||
pdfToImage.info=Python is not installed. Required for WebP conversion.
|
||||
pdfToImage.placeholder=(m.sh. 1,2,8 nó 4,7,12-16 nó 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=ग्रे स्केल
|
||||
pdfToImage.blackwhite=काला और सफेद (डेटा खो सकता है!)
|
||||
pdfToImage.submit=परिवर्तित करें
|
||||
pdfToImage.info=पायथन नहीं अनिस्तारित है। वेबP परिवर्तन के लिए आवश्यक है।
|
||||
pdfToImage.placeholder=(उदाहरण के लिए 1,2,8 या 4,7,12-16 या 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Sivi tonovi
|
||||
pdfToImage.blackwhite=Crno-bijelo (mogu se izgubiti podaci!)
|
||||
pdfToImage.submit=Pretvori
|
||||
pdfToImage.info=Python nije instaliran. Treba je za konverziju na WebP.
|
||||
pdfToImage.placeholder=(t.j. 1,2,8 ili 4,7,12-16 ili 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=szürkeárnyalatos
|
||||
pdfToImage.blackwhite=fekete-fehér (adatvesztéssel járhat!)
|
||||
pdfToImage.submit=Átalakítás
|
||||
pdfToImage.info=Nincs telepítve a Python. Szükséges a WebP konverzióhoz.
|
||||
pdfToImage.placeholder=(pl. 1,2,8 vagy 4,7,12-16 vagy 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Skala abu-abu
|
||||
pdfToImage.blackwhite=Black and White (Bisa kehilangan data!)
|
||||
pdfToImage.submit=Konversi
|
||||
pdfToImage.info=Python tidak terinstal. Diperlukan untuk konversi WebP.
|
||||
pdfToImage.placeholder=(misalnya 1,2,8 atau 4,7,12-16 atau 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Scala di grigi
|
||||
pdfToImage.blackwhite=Bianco e Nero (potresti perdere dettagli!)
|
||||
pdfToImage.submit=Converti
|
||||
pdfToImage.info=Python non è installato.È richiesto per la conversione WebP.
|
||||
pdfToImage.placeholder=(es. 1,2,8 o 4,7,12-16 o 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=グレースケール
|
||||
pdfToImage.blackwhite=白黒 (データが失われる可能性があります!)
|
||||
pdfToImage.submit=変換
|
||||
pdfToImage.info=Pythonがインストールされていません。WebPの変換に必要です。
|
||||
pdfToImage.placeholder=(例:1,2,8、4,7,12-16、2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=그레이스케일
|
||||
pdfToImage.blackwhite=흑백 (데이터 손실 가능성 있음!)
|
||||
pdfToImage.submit=변환
|
||||
pdfToImage.info=Python이 설치되어 있지 않습니다. WebP 변환에 필요합니다.
|
||||
pdfToImage.placeholder=(예: 1,2,8 또는 4,7,12-16 또는 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Grijstinten
|
||||
pdfToImage.blackwhite=Zwart en wit (kan data verliezen!)
|
||||
pdfToImage.submit=Omzetten
|
||||
pdfToImage.info=Python is niet geïnstalleerd. Vereist voor WebP-conversie.
|
||||
pdfToImage.placeholder=(bijv. 1,2,8 of 4,7,12-16 of 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Gråtone
|
||||
pdfToImage.blackwhite=Svart-hvitt (kan miste data!)
|
||||
pdfToImage.submit=Konverter
|
||||
pdfToImage.info=Python is not installed. Required for WebP conversion.
|
||||
pdfToImage.placeholder=(f.eks. 1,2,8 eller 4,7,12-16 eller 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Odcień szarości
|
||||
pdfToImage.blackwhite=Czarno-biały (może spowodować utratę danych!)
|
||||
pdfToImage.submit=Konwertuj
|
||||
pdfToImage.info=Python nie został zainstalowany. Jest wymagany do konwersji WebP.
|
||||
pdfToImage.placeholder=(przykład 1,2,8 lub 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Escala de Cinza
|
||||
pdfToImage.blackwhite=Preto e Branco (pode perder informações!)
|
||||
pdfToImage.submit=Converter
|
||||
pdfToImage.info=Python não está instalado. Necessário para conversão WebP.
|
||||
pdfToImage.placeholder=(por exemplo 1,2,8 or 4,7,12-16 ou 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Escala de Cinza
|
||||
pdfToImage.blackwhite=Preto e Branco (pode resultar em perda de dados!)
|
||||
pdfToImage.submit=Converter
|
||||
pdfToImage.info=O Python não está instalado. Necessário para a conversão de WebP.
|
||||
pdfToImage.placeholder=(ex: 1,2,8 ou 4,7,12-16 ou 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Scală de gri
|
||||
pdfToImage.blackwhite=Alb și negru (Poate pierde date!)
|
||||
pdfToImage.submit=Convertește
|
||||
pdfToImage.info=Python nu este instalat. Necesar pentru conversia WebP.
|
||||
pdfToImage.placeholder=(ex. 1,2,8 sau 4,7,12-16 sau 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Оттенки серого
|
||||
pdfToImage.blackwhite=Черно-белый (может потерять данные!)
|
||||
pdfToImage.submit=Конвертировать
|
||||
pdfToImage.info=Питон не установлен. Необходим для конвертации в WebP.
|
||||
pdfToImage.placeholder=(например 1,2,8 или 4,7,12-16 или 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Odtiene šedej
|
||||
pdfToImage.blackwhite=Čierno-biele (Môže stratiť údaje!)
|
||||
pdfToImage.submit=Konvertovať
|
||||
pdfToImage.info=Python is not installed. Required for WebP conversion.
|
||||
pdfToImage.placeholder=(napr. 1,2,8 alebo 4,7,12-16 alebo 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Nijanse sive
|
||||
pdfToImage.blackwhite=Crno-belo (Može izgubiti podatke!)
|
||||
pdfToImage.submit=Konvertuj
|
||||
pdfToImage.info=Python is not installed. Required for WebP conversion.
|
||||
pdfToImage.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -969,7 +969,7 @@ multiTool.undo=Undo
|
||||
multiTool.redo=Redo
|
||||
|
||||
#decrypt
|
||||
decrypt.passwordPrompt=Denna fil är lösenordsskyddad. Fyll i lösenord:
|
||||
decrypt.passwordPrompt=Denna fil är lösenordsskyddad. Fyll i lösenord:
|
||||
decrypt.cancelled=Operation misslyckades för PDF: {0}
|
||||
decrypt.noPassword=Inget lösenord angivet för krypterad PDF: {0}
|
||||
decrypt.invalidPassword=Försök igen med korrekt lösenord.
|
||||
@ -1042,6 +1042,7 @@ pdfToImage.grey=Gråskala
|
||||
pdfToImage.blackwhite=Svartvitt (kan förlora data!)
|
||||
pdfToImage.submit=Konvertera
|
||||
pdfToImage.info=Python är inte installerat. Krävs för WebP-konvertering.
|
||||
pdfToImage.placeholder=(t.ex. 1,2,8 eller 4,7,12-16 eller 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=ระดับสีเทา
|
||||
pdfToImage.blackwhite=ขาวดำ (อาจสูญเสียข้อมูล!)
|
||||
pdfToImage.submit=แปลง
|
||||
pdfToImage.info=Python ไม่มีการติดตั้ง จำเป็นสำหรับการแปลง WebP
|
||||
pdfToImage.placeholder=(เช่น 1,2,8 หรือ 4,7,12-16 หรือ 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Gri tonlama
|
||||
pdfToImage.blackwhite=Siyah ve Beyaz (Veri kaybolabilir!)
|
||||
pdfToImage.submit=Dönüştür
|
||||
pdfToImage.info=Python kurulu değil. WebP dönüşümü için gereklidir.
|
||||
pdfToImage.placeholder=(örneğin 1,2,8 veya 4,7,12-16 ya da 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Відтінки сірого
|
||||
pdfToImage.blackwhite=Чорно-білий (може втратити дані!)
|
||||
pdfToImage.submit=Конвертувати
|
||||
pdfToImage.info=Python is not installed. Required for WebP conversion.
|
||||
pdfToImage.placeholder=(наприклад 1,2,8 або 4,7,12-16 або 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=Thang độ xám
|
||||
pdfToImage.blackwhite=Đen trắng (Có thể mất dữ liệu!)
|
||||
pdfToImage.submit=Chuyển đổi
|
||||
pdfToImage.info=Python is not installed. Required for WebP conversion.
|
||||
pdfToImage.placeholder=(ví dụ: 1,2,8 hoặc 4,7,12-16 hoặc 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=灰度
|
||||
pdfToImage.blackwhite=黑白(可能会丢失数据!)。
|
||||
pdfToImage.submit=转换
|
||||
pdfToImage.info=WebP 转换需要安装 Python
|
||||
pdfToImage.placeholder=(例如:1,2,8 或 4,7,12-16 或 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -1042,6 +1042,7 @@ pdfToImage.grey=灰度
|
||||
pdfToImage.blackwhite=黑白(可能會遺失資料!)
|
||||
pdfToImage.submit=轉換
|
||||
pdfToImage.info=尚未安裝 Python。需要安裝 Python 才能進行 WebP 轉換。
|
||||
pdfToImage.placeholder=(例如 1,2,8 或 4,7,12-16 或 2n-1)
|
||||
|
||||
|
||||
#addPassword
|
||||
|
@ -84,27 +84,6 @@
|
||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||
},
|
||||
{
|
||||
"moduleName": "com.fasterxml.jackson.jaxrs:jackson-jaxrs-base",
|
||||
"moduleUrl": "https://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-base",
|
||||
"moduleVersion": "2.18.2",
|
||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||
},
|
||||
{
|
||||
"moduleName": "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider",
|
||||
"moduleUrl": "https://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-json-provider",
|
||||
"moduleVersion": "2.18.2",
|
||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||
},
|
||||
{
|
||||
"moduleName": "com.fasterxml.jackson.module:jackson-module-jaxb-annotations",
|
||||
"moduleUrl": "https://github.com/FasterXML/jackson-modules-base",
|
||||
"moduleVersion": "2.18.2",
|
||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||
},
|
||||
{
|
||||
"moduleName": "com.fasterxml.jackson.module:jackson-module-parameter-names",
|
||||
"moduleUrl": "https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names",
|
||||
@ -362,20 +341,6 @@
|
||||
"moduleLicense": "The BSD License",
|
||||
"moduleLicenseUrl": "https://github.com/haraldk/TwelveMonkeys#license"
|
||||
},
|
||||
{
|
||||
"moduleName": "com.unboundid.product.scim2:scim2-sdk-client",
|
||||
"moduleUrl": "https://github.com/pingidentity/scim2",
|
||||
"moduleVersion": "2.3.5",
|
||||
"moduleLicense": "UnboundID SCIM2 SDK Free Use License",
|
||||
"moduleLicenseUrl": "https://github.com/pingidentity/scim2"
|
||||
},
|
||||
{
|
||||
"moduleName": "com.unboundid.product.scim2:scim2-sdk-common",
|
||||
"moduleUrl": "https://github.com/pingidentity/scim2",
|
||||
"moduleVersion": "2.3.5",
|
||||
"moduleLicense": "UnboundID SCIM2 SDK Free Use License",
|
||||
"moduleLicenseUrl": "https://github.com/pingidentity/scim2"
|
||||
},
|
||||
{
|
||||
"moduleName": "com.zaxxer:HikariCP",
|
||||
"moduleUrl": "https://github.com/brettwooldridge/HikariCP",
|
||||
@ -584,20 +549,6 @@
|
||||
"moduleLicense": "GNU General Public License, version 2 with the GNU Classpath Exception",
|
||||
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
|
||||
},
|
||||
{
|
||||
"moduleName": "javax.activation:javax.activation-api",
|
||||
"moduleUrl": "http://www.oracle.com",
|
||||
"moduleVersion": "1.2.0",
|
||||
"moduleLicense": "COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0",
|
||||
"moduleLicenseUrl": "https://opensource.org/licenses/CDDL-1.0"
|
||||
},
|
||||
{
|
||||
"moduleName": "javax.xml.bind:jaxb-api",
|
||||
"moduleUrl": "http://www.oracle.com/",
|
||||
"moduleVersion": "2.3.1",
|
||||
"moduleLicense": "GPL2 w/ CPE",
|
||||
"moduleLicenseUrl": "https://oss.oracle.com/licenses/CDDL+GPL-1.1"
|
||||
},
|
||||
{
|
||||
"moduleName": "me.friwi:gluegen-rt",
|
||||
"moduleUrl": "http://jogamp.org/gluegen/www/",
|
||||
|
@ -39,6 +39,12 @@
|
||||
<option value="single" th:text="#{pdfToImage.single}"></option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3" id="singleOptionSection" >
|
||||
<label for="pageNumbers" th:text="#{pageSelectionPrompt}"></label>
|
||||
<input type="text" name="pageNumbers" class="form-control" id="pageNumbers" value="all"
|
||||
th:placeholder="#{pdfToImage.placeholder}" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label th:text="#{pdfToImage.colorType}"></label>
|
||||
<select class="form-control" name="colorType">
|
||||
@ -59,5 +65,6 @@
|
||||
</div>
|
||||
<th:block th:insert="~{fragments/footer.html :: footer}"></th:block>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user