Merge remote-tracking branch 'origin/main' into test

This commit is contained in:
Anthony Stirling 2023-12-25 13:26:13 +00:00
commit 03d3235e1d
18 changed files with 1107 additions and 99 deletions

View file

@ -3,7 +3,7 @@ plugins {
id 'org.springframework.boot' version '3.1.2' id 'org.springframework.boot' version '3.1.2'
id 'io.spring.dependency-management' version '1.1.3' id 'io.spring.dependency-management' version '1.1.3'
id 'org.springdoc.openapi-gradle-plugin' version '1.8.0' id 'org.springdoc.openapi-gradle-plugin' version '1.8.0'
id "io.swagger.swaggerhub" version "1.2.0" id "io.swagger.swaggerhub" version "1.3.2"
id 'edu.sc.seis.launch4j' version '3.0.5' id 'edu.sc.seis.launch4j' version '3.0.5'
} }
@ -80,12 +80,27 @@ dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test:3.2.1' testImplementation 'org.springframework.boot:spring-boot-starter-test:3.2.1'
// Batik
implementation 'org.apache.xmlgraphics:batik-all:1.17'
// TwelveMonkeys
implementation 'com.twelvemonkeys.imageio:imageio-batik:3.10.1'
implementation 'com.twelvemonkeys.imageio:imageio-bmp:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-hdr:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-icns:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-iff:3.10.1'
implementation 'com.twelvemonkeys.imageio:imageio-jpeg:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-pcx:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-pict:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-pnm:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-psd:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-sgi:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-tga:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-thumbsdb:3.10.1'
implementation 'com.twelvemonkeys.imageio:imageio-tiff:3.10.1'
implementation 'com.twelvemonkeys.imageio:imageio-webp:3.10.1'
// implementation 'com.twelvemonkeys.imageio:imageio-xwd:3.10.1'
// https://mvnrepository.com/artifact/org.apache.pdfbox/jbig2-imageio
implementation group: 'org.apache.pdfbox', name: 'jbig2-imageio', version: '3.0.4'
implementation 'com.github.jai-imageio:jai-imageio-core:1.4.0'
implementation 'com.github.jai-imageio:jai-imageio-jpeg2000:1.4.0'
implementation 'commons-io:commons-io:2.15.1' implementation 'commons-io:commons-io:2.15.1'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0' implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'

View file

@ -124,6 +124,7 @@ public class EndpointConfiguration {
addEndpointToGroup("Other", "flatten"); addEndpointToGroup("Other", "flatten");
addEndpointToGroup("Other", "repair"); addEndpointToGroup("Other", "repair");
addEndpointToGroup("Other", "remove-blanks"); addEndpointToGroup("Other", "remove-blanks");
addEndpointToGroup("Other", "remove-annotations");
addEndpointToGroup("Other", "compare"); addEndpointToGroup("Other", "compare");
addEndpointToGroup("Other", "add-page-numbers"); addEndpointToGroup("Other", "add-page-numbers");
addEndpointToGroup("Other", "auto-rename"); addEndpointToGroup("Other", "auto-rename");

View file

@ -1,6 +1,7 @@
package stirling.software.SPDF.controller.api.converters; package stirling.software.SPDF.controller.api.converters;
import java.io.IOException; import java.io.IOException;
import java.net.URLConnection;
import org.apache.pdfbox.rendering.ImageType; import org.apache.pdfbox.rendering.ImageType;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -23,6 +24,7 @@ import stirling.software.SPDF.model.api.converters.ConvertToImageRequest;
import stirling.software.SPDF.model.api.converters.ConvertToPdfRequest; import stirling.software.SPDF.model.api.converters.ConvertToPdfRequest;
import stirling.software.SPDF.utils.PdfUtils; import stirling.software.SPDF.utils.PdfUtils;
import stirling.software.SPDF.utils.WebResponseUtils; import stirling.software.SPDF.utils.WebResponseUtils;
@RestController @RestController
@RequestMapping("/api/v1/convert") @RequestMapping("/api/v1/convert")
@Tag(name = "Convert", description = "Convert APIs") @Tag(name = "Convert", description = "Convert APIs")
@ -89,15 +91,7 @@ public class ConvertImgPDFController {
} }
private String getMediaType(String imageFormat) { private String getMediaType(String imageFormat) {
if (imageFormat.equalsIgnoreCase("PNG")) String mimeType = URLConnection.guessContentTypeFromName("." + imageFormat);
return "image/png"; return mimeType.equals("null") ? "application/octet-stream" : mimeType;
else if (imageFormat.equalsIgnoreCase("JPEG") || imageFormat.equalsIgnoreCase("JPG"))
return "image/jpeg";
else if (imageFormat.equalsIgnoreCase("GIF"))
return "image/gif";
else
return "application/octet-stream";
} }
} }

View file

@ -127,6 +127,12 @@ public class OtherWebController {
return "misc/remove-blanks"; return "misc/remove-blanks";
} }
@GetMapping("/remove-annotations")
@Hidden
public String removeAnnotationsForm(Model model) {
model.addAttribute("currentPage", "remove-annotations");
return "misc/remove-annotations";
}
@GetMapping("/auto-crop") @GetMapping("/auto-crop")
@Hidden @Hidden

View file

@ -16,7 +16,11 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.imageio.IIOImage;
import javax.imageio.ImageReader; import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.imageio.ImageWriteParam;
import javax.imageio.stream.ImageOutputStream;
import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPage;
@ -206,21 +210,43 @@ public class PdfUtils {
images.add(pdfRenderer.renderImageWithDPI(i, DPI, colorType)); images.add(pdfRenderer.renderImageWithDPI(i, DPI, colorType));
} }
// Create a ByteArrayOutputStream to save the image(s) to
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if (singleImage) { if (singleImage) {
if (imageType.toLowerCase().equals("tiff") || imageType.toLowerCase().equals("tif")) {
// Write the images to the output stream as a TIFF with multiple frames
ImageWriter writer = ImageIO.getImageWritersByFormatName("tiff").next();
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionType("ZLib");
param.setCompressionQuality(1.0f);
try (ImageOutputStream ios = ImageIO.createImageOutputStream(baos)) {
writer.setOutput(ios);
writer.prepareWriteSequence(null);
for (int i = 0; i < images.size(); ++i) {
BufferedImage image = images.get(i);
writer.writeToSequence(new IIOImage(image, null, null), param);
}
writer.endWriteSequence();
}
writer.dispose();
} else {
// Combine all images into a single big image // Combine all images into a single big image
BufferedImage combined = new BufferedImage(images.get(0).getWidth(), images.get(0).getHeight() * pageCount, BufferedImage.TYPE_INT_RGB); BufferedImage combined = new BufferedImage(images.get(0).getWidth(), images.get(0).getHeight() * pageCount, BufferedImage.TYPE_INT_RGB);
Graphics g = combined.getGraphics(); Graphics g = combined.getGraphics();
for (int i = 0; i < images.size(); i++) { for (int i = 0; i < images.size(); i++) {
g.drawImage(images.get(i), 0, i * images.get(0).getHeight(), null); g.drawImage(images.get(i), 0, i * images.get(0).getHeight(), null);
} }
images = Arrays.asList(combined);
}
// Create a ByteArrayOutputStream to save the image(s) to
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if (singleImage) {
// Write the image to the output stream // Write the image to the output stream
ImageIO.write(images.get(0), imageType, baos); ImageIO.write(combined, imageType, baos);
}
// Log that the image was successfully written to the byte array // Log that the image was successfully written to the byte array
logger.info("Image successfully written to byte array"); logger.info("Image successfully written to byte array");
@ -264,28 +290,13 @@ public class PdfUtils {
addImageToDocument(doc, pdImage, fitOption, autoRotate); addImageToDocument(doc, pdImage, fitOption, autoRotate);
} }
} else { } else {
File imageFile = Files.createTempFile("image", ".png").toFile(); BufferedImage image = ImageIO.read(file.getInputStream());
try (FileOutputStream fos = new FileOutputStream(imageFile); InputStream input = file.getInputStream()) {
byte[] buffer = new byte[1024];
int len;
while ((len = input.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
BufferedImage image = ImageIO.read(imageFile);
BufferedImage convertedImage = ImageProcessingUtils.convertColorType(image, colorType); BufferedImage convertedImage = ImageProcessingUtils.convertColorType(image, colorType);
PDImageXObject pdImage; // Use JPEGFactory if it's JPEG since JPEG is lossy
if (contentType != null && (contentType.equals("image/jpeg"))) { PDImageXObject pdImage = (contentType != null && contentType.equals("image/jpeg"))
pdImage = JPEGFactory.createFromImage(doc, convertedImage); ? JPEGFactory.createFromImage(doc, convertedImage)
} else { : LosslessFactory.createFromImage(doc, convertedImage);
pdImage = LosslessFactory.createFromImage(doc, convertedImage);
}
addImageToDocument(doc, pdImage, fitOption, autoRotate); addImageToDocument(doc, pdImage, fitOption, autoRotate);
} catch (IOException e) {
logger.error("Error writing image to file: {}", imageFile.getAbsolutePath(), e);
throw e;
} finally {
imageFile.delete();
}
} }
} }
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

View file

@ -255,6 +255,10 @@ home.removeBlanks.title=Remove Blank pages
home.removeBlanks.desc=Detects and removes blank pages from a document home.removeBlanks.desc=Detects and removes blank pages from a document
removeBlanks.tags=cleanup,streamline,non-content,organize removeBlanks.tags=cleanup,streamline,non-content,organize
home.removeAnnotations.title=Remove Annotations
home.removeAnnotations.desc=Removes all comments/annotations from a PDF
removeAnnotations.tags=comments,highlight,notes,markup,remove
home.compare.title=Compare home.compare.title=Compare
home.compare.desc=Compares and shows the differences between 2 PDF Documents home.compare.desc=Compares and shows the differences between 2 PDF Documents
compare.tags=differentiate,contrast,changes,analysis compare.tags=differentiate,contrast,changes,analysis
@ -539,6 +543,12 @@ removeBlanks.whitePercentDesc=Percent of page that must be 'white' pixels to be
removeBlanks.submit=Remove Blanks removeBlanks.submit=Remove Blanks
#removeAnnotations
removeAnnotations.title=Remove Annotations
removeAnnotations.header=Remove Annotations
removeAnnotations.submit=Remove
#compare #compare
compare.title=Compare compare.title=Compare
compare.header=Compare PDFs compare.header=Compare PDFs

View file

@ -255,6 +255,10 @@ home.removeBlanks.title=Remove Blank pages
home.removeBlanks.desc=Detects and removes blank pages from a document home.removeBlanks.desc=Detects and removes blank pages from a document
removeBlanks.tags=cleanup,streamline,non-content,organize removeBlanks.tags=cleanup,streamline,non-content,organize
home.removeAnnotations.title=Remove Annotations
home.removeAnnotations.desc=Removes all comments/annotations from a PDF
removeAnnotations.tags=comments,highlight,notes,markup,remove
home.compare.title=Compare home.compare.title=Compare
home.compare.desc=Compares and shows the differences between 2 PDF Documents home.compare.desc=Compares and shows the differences between 2 PDF Documents
compare.tags=differentiate,contrast,changes,analysis compare.tags=differentiate,contrast,changes,analysis
@ -539,6 +543,12 @@ removeBlanks.whitePercentDesc=Percent of page that must be 'white' pixels to be
removeBlanks.submit=Remove Blanks removeBlanks.submit=Remove Blanks
#removeAnnotations
removeAnnotations.title=Remove Annotations
removeAnnotations.header=Remove Annotations
removeAnnotations.submit=Remove
#compare #compare
compare.title=Compare compare.title=Compare
compare.header=Compare PDFs compare.header=Compare PDFs

View file

@ -212,7 +212,7 @@ extractImages.tags=imagen,fotografía,guardar,archivo,zip,capturar,coger
home.pdfToPDFA.title=Convertir PDF a PDF/A home.pdfToPDFA.title=Convertir PDF a PDF/A
home.pdfToPDFA.desc=Convertir PDF a PDF/A para almacenamiento a largo plazo home.pdfToPDFA.desc=Convertir PDF a PDF/A para almacenamiento a largo plazo
pdfToPDFA.tags=archivo,largo plazo,estándar,conversión,almacewnamiento,conservación pdfToPDFA.tags=archivo,largo plazo,estándar,conversión,almacenamiento,conservación
home.PDFToWord.title=PDF a Word home.PDFToWord.title=PDF a Word
home.PDFToWord.desc=Convertir formatos PDF a Word (DOC, DOCX y ODT) home.PDFToWord.desc=Convertir formatos PDF a Word (DOC, DOCX y ODT)
@ -341,18 +341,18 @@ home.tableExtraxt.desc=Extraer Tablas de un PDF convirtiéndolas a CSV
tableExtraxt.tags=CSV,Extraer tabla,extraer,convertir tableExtraxt.tags=CSV,Extraer tabla,extraer,convertir
home.autoSizeSplitPDF.title=Auto Split by Size/Count home.autoSizeSplitPDF.title=Auto dividir por tamaño/conteo
home.autoSizeSplitPDF.desc=Split a single PDF into multiple documents based on size, page count, or document count home.autoSizeSplitPDF.desc=Divide un solo PDF en múltiples documentos según su tamaño, número de páginas, o número de documento
autoSizeSplitPDF.tags=pdf,split,document,organization autoSizeSplitPDF.tags=pdf,dividir,documento,organización
home.overlay-pdfs.title=Overlay PDFs home.overlay-pdfs.title=Superponer PDFs
home.overlay-pdfs.desc=Overlays PDFs on-top of another PDF home.overlay-pdfs.desc=Superponer PDFs encima de otro PDF
overlay-pdfs.tags=Overlay overlay-pdfs.tags=Superponer
home.split-by-sections.title=Split PDF by Sections home.split-by-sections.title=Dividir PDF por Seccioned
home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections 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=Section Split, Divide, Customize split-by-sections.tags=Dividir sección, Dividir, Personalizar
########################### ###########################
# # # #
@ -849,37 +849,37 @@ PDFToCSV.prompt=Elija una página para extraer la tabla
PDFToCSV.submit=Extraer PDFToCSV.submit=Extraer
#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=Dividir PDF por tamaño o número
split-by-size-or-count.type.label=Select Split Type split-by-size-or-count.type.label=Seleccionar tipo de división
split-by-size-or-count.type.size=By Size split-by-size-or-count.type.size=Por tamaño
split-by-size-or-count.type.pageCount=By Page Count split-by-size-or-count.type.pageCount=Por número de páginas
split-by-size-or-count.type.docCount=By Document Count split-by-size-or-count.type.docCount=por recuento de documentos
split-by-size-or-count.value.label=Enter Value split-by-size-or-count.value.label=Introduzca valor
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=Introduzca tamaño (p.ej., 2MB o 3KB) or recuento (p.ej., 5)
split-by-size-or-count.submit=Submit split-by-size-or-count.submit=Enviar
#overlay-pdfs #overlay-pdfs
overlay-pdfs.header=Overlay PDF Files overlay-pdfs.header=Superponer archivos PDF
overlay-pdfs.baseFile.label=Select Base PDF File overlay-pdfs.baseFile.label=Selleccione archivo PDF de base
overlay-pdfs.overlayFiles.label=Select Overlay PDF Files overlay-pdfs.overlayFiles.label=Seleccione archivos PDF a superponer
overlay-pdfs.mode.label=Select Overlay Mode overlay-pdfs.mode.label=Seleccione modo de superposición
overlay-pdfs.mode.sequential=Sequential Overlay overlay-pdfs.mode.sequential=Superposición Sequencial
overlay-pdfs.mode.interleaved=Interleaved Overlay overlay-pdfs.mode.interleaved=Superposición Intercalada
overlay-pdfs.mode.fixedRepeat=Fixed Repeat Overlay overlay-pdfs.mode.fixedRepeat=Superposición de repetición fija
overlay-pdfs.counts.label=Overlay Counts (for Fixed Repeat Mode) overlay-pdfs.counts.label=Recuento de superposición (para Modo de Repetición Fija)
overlay-pdfs.counts.placeholder=Enter comma-separated counts (e.g., 2,3,1) overlay-pdfs.counts.placeholder=Introduzca recuento separado por comas (p.ej., 2,3,1)
overlay-pdfs.position.label=Select Overlay Position overlay-pdfs.position.label=Seleccione Posición de Superposición
overlay-pdfs.position.foreground=Foreground overlay-pdfs.position.foreground=Arriba
overlay-pdfs.position.background=Background overlay-pdfs.position.background=Fondo
overlay-pdfs.submit=Submit overlay-pdfs.submit=Enviar
#split-by-sections #split-by-sections
split-by-sections.title=Split PDF by Sections split-by-sections.title=Dividir PDF por Secciones
split-by-sections.header=Split PDF into Sections split-by-sections.header=Dividir PDF por Secciones
split-by-sections.horizontal.label=Horizontal Divisions split-by-sections.horizontal.label=Divisiones Horizontales
split-by-sections.vertical.label=Vertical Divisions split-by-sections.vertical.label=Divisiones Verticales
split-by-sections.horizontal.placeholder=Enter number of horizontal divisions split-by-sections.horizontal.placeholder=Introduzca el número de divisiones horizontales
split-by-sections.vertical.placeholder=Enter number of vertical divisions split-by-sections.vertical.placeholder=Introduzca el número de divisiones verticales
split-by-sections.submit=Split PDF split-by-sections.submit=Dividir PDF

View file

@ -0,0 +1,874 @@
###########
# Generic #
###########
# the direction that the language is written (ltr = left to right, rtl = right to left)
language.direction=ltr
pdfPrompt=Válasszon PDF-fájlokat
multiPdfPrompt=Válasszon PDF-fájlokat (2+)
multiPdfDropPrompt=Válassza ki (vagy húzza ide) az összes szükséges PDF-fájlt
imgPrompt=Válasszon képeket
genericSubmit=Beküldés
processTimeWarning=Figyelmeztetés: Ez a folyamat akár egy percig is eltarthat a fájlmérettől függően
pageOrderPrompt=Egyedi oldalsorrend (Adjon meg vesszővel elválasztott oldalszámokat vagy függvényeket, például 2n+1):
goToPage=Ugrás
true=Igaz
false=Hamis
unknown=Ismeretlen
save=Mentés
close=Bezárás
filesSelected=kiválasztott fájlok
noFavourites=Nincs hozzáadva kedvenc
bored=Unatkozol?
alphabet=Ábécé
downloadPdf=PDF letöltése
text=Szöveg
font=Betűtípus
selectFillter=-- Válasszon --
pageNum=Oldalszám
sizes.small=Kicsi
sizes.medium=Közepes
sizes.large=Nagy
sizes.x-large=X-Nagy
error.pdfPassword=A PDF-dokumentum jelszóval védett, és vagy nem adták meg a jelszót, vagy helytelen volt
delete=Törlés
username=Felhasználónév
password=Jelszó
welcome=Üdvözöljük
property=Tulajdonság
black=Fekete
white=Fehér
red=Piros
green=Zöld
blue=Kék
custom=Egyedi...
changedCredsMessage=A hitelek megváltoztak!
notAuthenticatedMessage=Felhasználó nincs hitelesítve.
userNotFoundMessage=A felhasználó nem található.
incorrectPasswordMessage=A jelenlegi jelszó helytelen.
usernameExistsMessage=Az új felhasználónév már létezik.
#############
# NAVBAR #
#############
navbar.convert=Átalakítás
navbar.security=Biztonság
navbar.other=Egyéb
navbar.darkmode=Sötét mód
navbar.pageOps=Lap műveletek
navbar.settings=Beállítások
#############
# SETTINGS #
#############
settings.title=Beállítások
settings.update=Frisítés elérhető
settings.appVersion=App Verzió:
settings.downloadOption.title=Válassza ki a letöltési lehetőséget (Egyetlen fájl esetén a nem tömörített letöltésekhez):
settings.downloadOption.1=Nyissa meg ugyanabban az ablakban
settings.downloadOption.2=Nyissa meg új ablakban
settings.downloadOption.3=Töltse le a fájlt
settings.zipThreshold=Fájlok tömörítése, ha a letöltött fájlok száma meghaladja
settings.signOut=Kijelentkezés
settings.accountSettings=Fiókbeállítások
changeCreds.title=Hitelesítés megváltoztatása
changeCreds.header=Frissítse fiókadatait
changeCreds.changeUserAndPassword=Alapértelmezett bejelentkezési adatokat használ. Adjon meg egy új jelszót (és felhasználónevet, ha szeretné)
changeCreds.newUsername=Új felhasználónév
changeCreds.oldPassword=Jelenlegi jelszó
changeCreds.newPassword=Új jelszó
changeCreds.confirmNewPassword=Új jelszó megerősítése
changeCreds.submit=Változtatások elküldése
account.title=Fiókbeállítások
account.accountSettings=Fiókbeállítások
account.adminSettings=Admin Beállítások - Felhasználók megtekintése és hozzáadása
account.userControlSettings=Felhasználói vezérlési beállítások
account.changeUsername=Új felhasználónév
account.password=Megerősítő jelszó
account.oldPassword=Régi jelszó
account.newPassword=Új jelszó
account.changePassword=Jelszó módosítása
account.confirmNewPassword=Új jelszó megerősítése
account.signOut=Kijelentkezés
account.yourApiKey=Az Ön API-kulcsa
account.syncTitle=Böngészőbeállítások szinkronizálása a fiókkal
account.settingsCompare=Beállítások összehasonlítása:
account.property=Ingatlan
account.webBrowserSettings=Web Böngésző beállítása
account.syncToBrowser=Szinkronizálás Fiók -> Böngésző
account.syncToAccount=Szinkronizálás Fiók <- Böngésző
adminUserSettings.title=Felhasználói Vezérlési Beállítások
adminUserSettings.header=Adminisztrátori Felhasználói Vezérlési Beállítások
adminUserSettings.admin=Adminisztrátor
adminUserSettings.user=Felhasználó
adminUserSettings.addUser=Új felhasználó hozzáadása
adminUserSettings.roles=Szerepek
adminUserSettings.role=Szerep
adminUserSettings.actions=Műveletek
adminUserSettings.apiUser=Korlátozott API-felhasználó
adminUserSettings.webOnlyUser=Csak webes felhasználó
adminUserSettings.forceChange=Kényszerítse a felhasználót a felhasználónév/jelszó megváltoztatására bejelentkezéskor
adminUserSettings.submit=Felhasználó mentése
#############
# HOME-PAGE #
#############
home.desc=Lokálisan hostolt egyszerű megoldás minden PDF igényéhez.
home.searchBar=Keresés funkciókra...
home.viewPdf.title=PDF Megtekintése
home.viewPdf.desc=Megtekintés, annotálás, szöveg vagy képek hozzáadása
viewPdf.tags=megtekintés,olvasás,annotálás,szöveg,kép
home.multiTool.title=PDF Multi Eszköz
home.multiTool.desc=Egyesítés, forgatás, átrendezés és lapok eltávolítása
multiTool.tags=Multi Eszköz,Multi művelet,UI,kattintás húzás,előtér,ügyfél oldal,interaktív,megfogható,mozgás
home.merge.title=Egyesítés
home.merge.desc=Több PDF egyszerű egyesítése.
merge.tags=egyesítés,Lapműveletek,Háttér,server oldal
home.split.title=Osztás
home.split.desc=PDF-ek felosztása több dokumentumra
split.tags=Lapműveletek,osztás,Több oldal,vágás,server oldal
home.rotate.title=Forgatás
home.rotate.desc=PDF-ek egyszerű forgatása.
rotate.tags=server oldal
home.imageToPdf.title=Kép PDF-be
home.imageToPdf.desc=Kép (PNG, JPEG, GIF) konvertálása PDF-fé.
imageToPdf.tags=konverzió,img,jpg,kép,fotó
home.pdfToImage.title=PDF képpé
home.pdfToImage.desc=PDF konvertálása képpé. (PNG, JPEG, GIF)
pdfToImage.tags=konverzió,img,jpg,kép,fotó
home.pdfOrganiser.title=Szervezés
home.pdfOrganiser.desc=Lapok eltávolítása/átszervezése bármilyen sorrendben
pdfOrganiser.tags=duplex,páros,páratlan,rendezés,mozgatás
home.addImage.title=Kép hozzáadása
home.addImage.desc=Kép hozzáadása a PDF megadott helyére
addImage.tags=img,jpg,kép,fotó
home.watermark.title=Vízjel hozzáadása
home.watermark.desc=Egyéni vízjel hozzáadása a PDF dokumentumhoz.
watermark.tags=Szöveg,ismétlődő,címke,saját,szerzői jog,védjegy,img,jpg,kép,fotó
home.permissions.title=Engedélyek módosítása
home.permissions.desc=Változtassa meg a PDF dokumentum engedélyeit
permissions.tags=olvasás,írás,szerkesztés,nyomtatás
home.removePages.title=Eltávolítás
home.removePages.desc=Szükségtelen lapok törlése a PDF dokumentumból.
removePages.tags=Lapok eltávolítása,lapok törlése
home.addPassword.title=Jelszó hozzáadása
home.addPassword.desc=Titkosítsa a PDF dokumentumát jelszóval.
addPassword.tags=biztonság,biztonságos
home.removePassword.title=Jelszó eltávolítása
home.removePassword.desc=Vegye le a jelszóvédelmet a PDF dokumentumáról.
removePassword.tags=biztonság,Lezárat, biztonság,jelszó törlése
home.compressPdfs.title=Tömörítés
home.compressPdfs.desc=PDF-ek tömörítése a fájlméret csökkentése érdekében.
compressPdfs.tags=szorít,kicsi,miniatűr
home.changeMetadata.title=Metaadatok Módosítása
home.changeMetadata.desc=Metaadatok Módosítása/Eltávolítása/Hozzáadása egy PDF dokumentumból
changeMetadata.tags=Cím,szerző,dátum,alkotás,idő,közzétevő,gyártó,statisztika
home.fileToPDF.title=Fájl konvertálása PDF-be
home.fileToPDF.desc=Közel minden fájl konvertálása PDF-be (DOCX, PNG, XLS, PPT, TXT és más)
fileToPDF.tags=transzformáció,formátum,dokumentum,kép,dia,szöveg,konverzió,iroda,dokumentumok,word,excel,powerpoint
home.ocr.title=OCR / Tisztítás szkennelésekből
home.ocr.desc=Tisztítás szkennelésekből és szöveg észlelése képeken belül egy PDF-ben, majd visszahozza szövegként.
ocr.tags=felismerés,szöveg,kép,szken,gép,felismert,azonosítás,szerkeszthető
home.extractImages.title=Képek kinyerése
home.extractImages.desc=Az összes kép kinyerése egy PDF-ből és mentése zip-be
extractImages.tags=kép,fotó,mentés,archívum,zip,rögzítés,gyűjtés
home.pdfToPDFA.title=PDF >> PDF/A
home.pdfToPDFA.desc=PDF konvertálása PDF/A formátumra hosszú távú tárolás céljából
pdfToPDFA.tags=archívum,hosszú távú,standard,konverzió,tárolás,megőrzés
home.PDFToWord.title=PDF >> Word
home.PDFToWord.desc=PDF konvertálása Word formátumokra (DOC, DOCX és ODT)
PDFToWord.tags=doc,docx,odt,word,transzformáció,formátum,konverzió,iroda,microsoft,docfile
home.PDFToPresentation.title=PDF >> Presentation
home.PDFToPresentation.desc=PDF konvertálása prezentációs formátumokra (PPT, PPTX és ODP)
PDFToPresentation.tags=dia,bemutatás,iroda,microsoft
home.PDFToText.title=PDF >> RTF (szöveg)
home.PDFToText.desc=PDF konvertálása Szöveg vagy RTF formátumra
PDFToText.tags=richformat,rich text format
home.PDFToHTML.title=PDF >> HTML
home.PDFToHTML.desc=PDF konvertálása HTML formátumra
PDFToHTML.tags=web tartalom,böngészőbarát
home.PDFToXML.title=PDF >> XML
home.PDFToXML.desc=PDF konvertálása XML formátumra
PDFToXML.tags=adat-kinyerés,strukturált tartalom,interop,konverzió
home.ScannerImageSplit.title=Szkennelt fotók észlelése/Osztás
home.ScannerImageSplit.desc=Több fénykép szétválasztása egy fénykép/PDF-ben belül
ScannerImageSplit.tags=külön,kép észlelés,szkennelés,többfénykép,szervez
home.sign.title=Aláírás
home.sign.desc=Aláírás hozzáadása PDF-hez rajzzal, szöveggel vagy képpel
sign.tags=jogosítvány,jegyzék,rajzolt-aláírás,szöveg-aláírás,kép-aláírás
home.flatten.title=Lapok laposítása
home.flatten.desc=Minden interaktív elem és űrlap eltávolítása egy PDF-ből
flatten.tags=statikus,dezaktiválás,nem-interaktív,egyszerűsít
home.repair.title=Javítás
home.repair.desc=Megpróbálja helyreállítani a sérült/hiba PDF-t
repair.tags=javítás,visszaállítás,korrektúra,visszaszerzés
home.removeBlanks.title=Üres lapok eltávolítása
home.removeBlanks.desc=Felismeri és eltávolítja az üres lapokat a dokumentumból
removeBlanks.tags=takarítás,egyszerűsítés,nem-tartalom,szervez
home.compare.title=Összehasonlítás
home.compare.desc=Összehasonlítja és megmutatja a különbségeket két PDF dokumentum között
compare.tags=kiemel,ellentét,változások,elemzés
home.certSign.title=Aláírás Tanúsítvánnyal
home.certSign.desc=PDF aláírása tanúsítvánnyal/kulccsal (PEM/P12)
certSign.tags=hitelesítés,PEM,P12,hivatalos,segitít,álca
home.pageLayout.title=Több oldal elrendezése
home.pageLayout.desc=Több oldal egyesítése egy PDF dokumentumban egyetlen oldallá
pageLayout.tags=egyesítés,kompozit,egy oldal,megszervez
home.scalePages.title=Oldalméret/skála beállítása
home.scalePages.desc=Oldal méretének/skálájának megváltoztatása és/vagy tartalmának
scalePages.tags=átalakítás,módosítás,méret,alkalmazkodik
home.pipeline.title=Csővezeték (Haladó)
home.pipeline.desc=Több művelet futtatása PDF-eken csővezeték scriptek definiálásával
pipeline.tags=automatizálás,sorrend,szkriptelt,csomag-feldolgozás
home.add-page-numbers.title=Lapok számának hozzáadása
home.add-page-numbers.desc=Lapszám hozzáadása a dokumentumhoz egy meghatározott helyen
add-page-numbers.tags=lapszámozás,címke,szervez,index
home.auto-rename.title=Automatikus átnevezés PDF fájl
home.auto-rename.desc=Automatikusan átnevezi a PDF fájlt a felderített fejléc alapján
auto-rename.tags=auto-felismerés,fejléc-alapú,szervezés,címkézés
home.adjust-contrast.title=Színek/Kontraszt beállítása
home.adjust-contrast.desc=PDF kontrasztjának, telítettségének és világosságának beállítása
adjust-contrast.tags=szín-korrekció,beállítás,módosítás,fokoz
home.crop.title=Crop PDF
home.crop.desc=PDF vágása a méret csökkentése érdekében (a szöveg megőrzése mellett!)
crop.tags=vágás,csökkentés,szerkesztés,forma
home.autoSplitPDF.title=Automatikus oldalak szétválasztása
home.autoSplitPDF.desc=Automatikus szétválasztás a beolvasott oldalas PDF alapján fizikai szkennelt oldal szétválasztó QR kóddal
autoSplitPDF.tags=QR-alapú,külön,szkennel-oldal,szervez
home.sanitizePdf.title=Szankcionálás
home.sanitizePdf.desc=Szankcionálja a szkripteket és egyéb elemeket a PDF fájlokból
sanitizePdf.tags=tisztítás,biztonságos,biztonság,töröl-veszélyek
home.URLToPDF.title=URL/Weboldal PDF-be
home.URLToPDF.desc=Bármely http(s) URL átalakítása PDF-be
URLToPDF.tags=web-rögzítés,oldal-mentés,web-dokumentum,archívum
home.HTMLToPDF.title=HTML PDF-be
home.HTMLToPDF.desc=Bármely HTML fájl vagy tömörített fájl átalakítása PDF-be
HTMLToPDF.tags=markup,web-tartalom,transzformáció,konverzió
home.MarkdownToPDF.title=Markdown PDF-be
home.MarkdownToPDF.desc=Bármely Markdown fájl átalakítása PDF-be
MarkdownToPDF.tags=markup,web-tartalom,transzformáció,konverzió
home.getPdfInfo.title=Összes információ a PDF-ről
home.getPdfInfo.desc=Az összes lehetséges információ beszerzése a PDF-ekről
getPdfInfo.tags=információ,adat,statisztika,statisztika
home.extractPage.title=Lapok kinyerése
home.extractPage.desc=Válassza ki a lapokat a PDF-ből
extractPage.tags=kinyer
home.PdfToSinglePage.title=PDF egyetlen nagy lapba
home.PdfToSinglePage.desc=Az összes PDF lap egyesítése egyetlen nagy lapba
PdfToSinglePage.tags=egyetlen lap
home.showJS.title=JavaScript megjelenítése
home.showJS.desc=Keres és megjelenít bármilyen JS-t, amit beinjektáltak a PDF-be
showJS.tags=JS
home.autoRedact.title=Automatikus Elrejtés
home.autoRedact.desc=Automatikusan kitakar (elrejt) szöveget egy PDF-ben az input szöveg alapján
showJS.tags=Elrejt,Elrejtés,kitakarás,fekete,fekete,marker,elrejtett
home.tableExtraxt.title=PDF to CSV
home.tableExtraxt.desc=Táblázatok kinyerése a PDF-ből CSV formátumra konvertálva
tableExtraxt.tags=CSV,Táblázat kinyerése,kinyer,konvertál
home.autoSizeSplitPDF.title=Automatikus szétválasztás méret/számláló alapján
home.autoSizeSplitPDF.desc=Egyetlen PDF szétválasztása több dokumentummá méret, oldalszám vagy dokumentum szám alapján
autoSizeSplitPDF.tags=pdf,szétválasztás,dokumentum,szervezet
home.overlay-pdfs.title=PDF fájlok átlapolása
home.overlay-pdfs.desc=PDF fájlok átlapolása egyik dokumentum a másik fölé helyezésével
overlay-pdfs.tags=Átlapolás
home.split-by-sections.title=PDF Szakaszokra osztása
home.split-by-sections.desc=Minden oldal felosztása kisebb vízszintes és függőleges szakaszokra
split-by-sections.tags=Szakasz elosztás, felosztás, testreszabás
###########################
# #
# WEB PAGES #
# #
###########################
#login
login.title=Bejelentkezés
login.signin=Bejelentkezés
login.rememberme=Emlékezz rám
login.invalid=Érvénytelen felhasználónév vagy jelszó!
login.locked=A fiókja zárolva lett!
login.signinTitle=Kérjük, jelentkezzen be!
#auto-redact
autoRedact.title=Érzékeny tartalom eltávolítása
autoRedact.header=Érzékeny tartalom eltávolítása
autoRedact.colorLabel=Szín
autoRedact.textsToRedactLabel=Kivonand szövegek (sorokra bontva)
autoRedact.textsToRedactPlaceholder=például \nBizalmas \nLegfelsőbb Titok
autoRedact.useRegexLabel=Reguláris kifejezés használata
autoRedact.wholeWordSearchLabel=Teljes szó keresése
autoRedact.customPaddingLabel=Egyedi extra kitöltés
autoRedact.convertPDFToImageLabel=PDF átalakítása PDF-képé (a doboz mögötti szöveg eltávolításához)
autoRedact.submitButton=Elküld
#showJS
showJS.title=JavaScript megjelenítése
showJS.header=JavaScript megjelenítése
showJS.downloadJS=JavaScript letöltése
showJS.submit=Megjelenítés
#pdfToSinglePage
pdfToSinglePage.title=PDF egyetlen oldalra
pdfToSinglePage.header=PDF egyetlen oldalra
pdfToSinglePage.submit=Átalakítás egyetlen oldallá
#pageExtracter
pageExtracter.title=Oldalak kinyerése
pageExtracter.header=Oldalak kinyerése
pageExtracter.submit=Kinyerés
#getPdfInfo
getPdfInfo.title=Információk kinyerése a PDF-ről
getPdfInfo.header=Információk kinyerése a PDF-ről
getPdfInfo.submit=Információk kinyerése
getPdfInfo.downloadJson=JSON letöltése
#markdown-to-pdf
MarkdownToPDF.title=Markdown >> PDF
MarkdownToPDF.header=Markdown >> PDF
MarkdownToPDF.submit=Átalakítás
MarkdownToPDF.help=Az átalakítás folyamatban
MarkdownToPDF.credit=WeasyPrint alkalmazása
#url-to-pdf
URLToPDF.title=URL >> PDF
URLToPDF.header=URL >> PDF
URLToPDF.submit=Átalakítás
URLToPDF.credit=WeasyPrint alkalmazása
#html-to-pdf
HTMLToPDF.title=HTML >> PDF
HTMLToPDF.header=HTML >> PDF
HTMLToPDF.help=Elfogad HTML fájlokat és ZIP-fájlokat, amelyek tartalmaznak html/css/képeket stb.
HTMLToPDF.submit=Átalakítás
HTMLToPDF.credit=WeasyPrint alkalmazása
#sanitizePDF
sanitizePDF.title=PDF tisztítása
sanitizePDF.header=PDF fájl megtisztítása
sanitizePDF.selectText.1=JavaScript műveletek eltávolítása
sanitizePDF.selectText.2=Beágyazott fájlok eltávolítása
sanitizePDF.selectText.3=Metaadatok eltávolítása
sanitizePDF.selectText.4=Hivatkozások eltávolítása
sanitizePDF.selectText.5=Betűtípusok eltávolítása
sanitizePDF.submit=PDF tisztítása
#addPageNumbers
addPageNumbers.title=Oldalszámok hozzáadása
addPageNumbers.header=Oldalszámok hozzáadása
addPageNumbers.selectText.1=Válassza ki a PDF fájlt:
addPageNumbers.selectText.2=Margó mérete
addPageNumbers.selectText.3=Pozíció
addPageNumbers.selectText.4=Kezdő szám
addPageNumbers.selectText.5=Oldalak számozása
addPageNumbers.selectText.6=Egyedi szöveg
addPageNumbers.customTextDesc=Egyedi szöveg
addPageNumbers.numberPagesDesc=Melyik oldalakat számozzuk? Alapértelmezés szerint 'mind', vagy megadhatja még így: 1-5, esetleg 2,5,9.
addPageNumbers.customNumberDesc=Alapértelmezés szerint {n}, megadhatja még 'Oldal {n} a {teljes}', 'Szöveg-{n}', '{fájlnév}-{n}' formában.
addPageNumbers.submit=Oldalszámok hozzáadása
#auto-rename
auto-rename.title=Automatikus átnevezés
auto-rename.header=Automatikus átnevezés PDF
auto-rename.submit=Automatikus átnevezés
#adjustContrast
adjustContrast.title=Kontraszt beállítása
adjustContrast.header=Kontraszt beállítása
adjustContrast.contrast=Kontraszt:
adjustContrast.brightness=Fényerő:
adjustContrast.saturation=Színtelítettség:
adjustContrast.download=Letöltés
#crop
crop.title=Körülvágás
crop.header=Kép körülvégésa
crop.submit=Elküldés
#autoSplitPDF
autoSplitPDF.title=Automatikus PDF szétválasztás
autoSplitPDF.header=Automatikus PDF szétválasztás
autoSplitPDF.description=Nyomtasson, helyezzen be, szkenneljen, töltse fel, és hagyja, hogy az automatikus szétválasztás elvégezze a dokumentumok rendezését. A rendezéshez nincs szükség manuális beavatkozásra.
autoSplitPDF.selectText.1=Nyomtasson ki néhány elválasztó lapot lentebb (Fekete-fehér is megfelel).
autoSplitPDF.selectText.2=Helyezze be az összes dokumentumot egyszerre az elválasztó lapok közé történő beillesztéssel.
autoSplitPDF.selectText.3=Töltse fel a készített egyetlen nagy szkennelt PDF fájlt, és hagyja, hogy a Stirling PDF megoldja a többit.
autoSplitPDF.selectText.4=Az elválasztó lapok automatikusan észlelhetők és eltávolíthatók, így garantáltan tiszta lesz a végső dokumentum.
autoSplitPDF.formPrompt=Küldje el a Stirling-PDF oldal-elválasztót tartalmazó PDF-t:
autoSplitPDF.duplexMode=Duplex mód (Elő- és hátlapi szkennelés)
autoSplitPDF.dividerDownload1='Automatikus Szétválasztó Elválasztólap letöltése (minimális).pdf'
autoSplitPDF.dividerDownload2='Automatikus Szétválasztó Elválasztólap letöltése (utasításokkal).pdf'
autoSplitPDF.submit=Elküldés
#pipeline
pipeline.title=Folyamat
#pageLayout
pageLayout.title=Többoldalas elrendezés
pageLayout.header=Többoldalas elrendezés
pageLayout.pagesPerSheet=Oldalak laponként:
pageLayout.addBorder=Keret hozzáadása
pageLayout.submit=Elküldés
#scalePages
scalePages.title=Oldalméret beállítása
scalePages.header=Oldalméret beállítása
scalePages.pageSize=A dokumentum egy oldalának mérete.
scalePages.scaleFactor=Az oldal nagyításának szintje (vágás).
scalePages.submit=Küldés
#certSign
certSign.title=Tanúsítvánnyal történő aláírás
certSign.header=Aláírás PDF tanúsítvánnyal (fejlesztés alatt)
certSign.selectPDF=Válasszon PDF fájlt az aláíráshoz:
certSign.selectKey=Válassza ki a saját kulcsfájlját (PKCS#8 formátum, lehet .pem vagy .der kiterjesztésű):
certSign.selectCert=Válassza ki a tanúsítványfájlját (X.509 formátum, lehet .pem vagy .der kiterjesztésű):
certSign.selectP12=Válassza ki a PKCS#12 kulcstár fájlját (.p12 vagy .pfx) (Opcionális, ha rendelkezésre áll, tartalmaznia kell a privát kulcsot és a tanúsítványt.):
certSign.certType=Tanúsítvány típusa
certSign.password=Adja meg a kulcstár vagy a privát kulcs jelszavát (ha van):
certSign.showSig=Aláírás megjelenítése
certSign.reason=Ok
certSign.location=Hely
certSign.name=Név
certSign.submit=PDF aláírása
#removeBlanks
removeBlanks.title=Üres oldalak eltávolítása
removeBlanks.header=Üres oldalak eltávolítása
removeBlanks.threshold=Pixel fehérség küszöbértéke:
removeBlanks.thresholdDesc=A "fehér" pixel meghatározásához szükséges küszöbérték. 0 = fekete, 255 = tiszta fehér.
removeBlanks.whitePercent=Fehér százalék (%):
removeBlanks.whitePercentDesc=Az oldalakon található 'fehér' pixelek százaléka, amelyek eltávolításra kerülnek.
removeBlanks.submit=Üres oldalak eltávolítása
#compare
compare.title=Összehasonlítás
compare.header=PDF-ek összehasonlítása
compare.document.1=Dokumentum 1
compare.document.2=Dokumentum 2
compare.submit=Összehasonlítás
#sign
sign.title=Aláírás
sign.header=PDF-ek aláírása
sign.upload=Kép feltöltése
sign.draw=Aláírás rajzolása
sign.text=Szöveg beírása
sign.clear=Törlés
sign.add=Hozzáadás
#repair
repair.title=Javítás
repair.header=PDF-ek javítása
repair.submit=Javítás
#flatten
flatten.title=Kiegyenlítés
flatten.header=PDF-ek kiegyenlítése
flatten.submit=Kiegyenlítés
#ScannerImageSplit
ScannerImageSplit.selectText.1=Szög küszöbértéke:
ScannerImageSplit.selectText.2=Minimális forgatás abszolút szögének meghatározása (alapértelmezett: 10).
ScannerImageSplit.selectText.3=Tolerancia:
ScannerImageSplit.selectText.4=A háttér szín körülbelüli változási tartományának meghatározása (alapértelmezett: 30).
ScannerImageSplit.selectText.5=Minimális terület:
ScannerImageSplit.selectText.6=A fotók minimális területének beállítása (alapértelmezett: 10000).
ScannerImageSplit.selectText.7=Minimális kontúr terület:
ScannerImageSplit.selectText.8=A fotók minimális kontúrterületének beállítása
ScannerImageSplit.selectText.9=Keret mérete:
ScannerImageSplit.selectText.10=A hozzáadott és eltávolított keret méretének beállítása a fehér keretek elkerülése érdekében a kimeneten (alapértelmezett: 1).
#OCR
ocr.title=OCR / szkennelés tisztázása
ocr.header=Szkennelés tisztázása / OCR (Optikai karakterfelismerés)
ocr.selectText.1=Válassza ki azokat a nyelveket, amelyeket fel kell ismerni a PDF-ben (az alább felsoroltak azok, amelyeket jelenleg képesek vagyunk azonosítani):
ocr.selectText.2=Hozzon létre szövegfájlt az OCR szöveg mellett az OCR-es PDF-ben
ocr.selectText.3=Korrigálja azokat az oldalakat, amelyek ferdén lettek beolvasva, és fogassa vissza őket a helyes szögbe
ocr.selectText.4=Tisztítsa meg az oldalt, hogy az OCR pontosabban dolgozzon, ne érzékeljen szöveget a háttérzajban. (Nincs kimeneti változás)
ocr.selectText.5=Tisztítsa meg az oldalt, hogy az OCR pontosabban dolgozzon, ne érzékeljen szöveget a háttérzajban, és a tisztítást a kimeneten is őrizze meg.
ocr.selectText.6=Hagyja figyelmen kívül azokat az oldalakat, amelyeken interaktív szöveg található, csak azon oldalakat dolgozza el OCR-rel, amelyek képek
ocr.selectText.7=OCR kényszerítése, minden oldalt OCR-el, eltávolítva az összes eredeti szövegelemet
ocr.selectText.8=Normál (Hiba esetén, ha a PDF szöveget tartalmaz)
ocr.selectText.9=További beállítások
ocr.selectText.10=OCR mód
ocr.selectText.11=Képek eltávolítása OCR után (Az ÖSSZES kép eltávolítása, csak akkor hasznos, ha a konverzió része)
ocr.selectText.12=Render típusa (Speciális)
ocr.help=Kérjük, olvassa el ezt a dokumentációt az egyéb nyelvek használatához és/vagy a nem Docker-es használathoz.
ocr.credit=Ez a szolgáltatás az OCRmyPDF és a Tesseract OCR használatával működik.
ocr.submit=PDF feldolgozása OCR-rel
#extractImages
extractImages.title=Képek kinyerése
extractImages.header=Képek kinyerése
extractImages.selectText=Válassza ki a képformátumot a kinyert képek konvertálásához
extractImages.submit=Kinyerés
#File to PDF
fileToPDF.title=Fájl PDF dokumentummá alakítása
fileToPDF.header=Konvertáljon bármilyen fájlt PDF dokumentummá
fileToPDF.credit=Ez a szolgáltatás a LibreOffice-t és az Unoconv-ot használja a fájlkonverzióhoz.
fileToPDF.supportedFileTypes=A funkció az alábbi fájltípusokat támogatja, azonban a teljesen friss támogatott formátumok listájáért kérjük, tekintse meg a LibreOffice dokumentációját
fileToPDF.submit=Konvertálás PDF dokumentummá
#compress
compress.title=Tömörítés
compress.header=PDF tömörítése
compress.credit=Ez a szolgáltatás a Ghostscript-et használja a PDF tömörítéséhez/optimalizálásához.
compress.selectText.1=Kézi mód - 1-től 4-ig
compress.selectText.2=Optimalizálási szint:
compress.selectText.3=4 (nem ajánlott a szöveges képekhez)
compress.selectText.4=Automatikus mód - Az automata állítja a minőséget úgy, hogy a beállított méretű PDF-et generálja.
compress.selectText.5=Várt PDF méret (pl. 25MB, 10,8MB, 25KB)
compress.submit=Tömörítés
#Add image
addImage.title=Kép hozzáadása
addImage.header=Kép hozzáadása a PDF-hez
addImage.everyPage=Minden oldal?
addImage.upload=Kép hozzáadása
addImage.submit=Kép hozzáadása
#merge
merge.title=Összevonás
merge.header=Több PDF összevonása (2+)
merge.sortByName=Név szerinti rendezés
merge.sortByDate=Dátum szerinti rendezés
merge.submit=Összevonás
#pdfOrganiser
pdfOrganiser.title=Oldalszervező
pdfOrganiser.header=PDF Oldalszervező
pdfOrganiser.submit=Oldalak átrendezése
#multiTool
multiTool.title=PDF többfunkciós eszköz
multiTool.header=PDF többfunkciós eszköz
#view pdf
viewPdf.title=PDF megtekintése
viewPdf.header=PDF megtekintése
#pageRemover
pageRemover.title=Oldaltörlő
pageRemover.header=PDF oldaltörlő
pageRemover.pagesToDelete=Törlendő oldalak (adja meg az oldalszámok vesszővel elválasztott listáját):
pageRemover.submit=Oldalak törlése
#rotate
rotate.title=PDF forgatás
rotate.header=PDF forgatás
rotate.selectAngle=Válassza ki a forgatási szöget (90 fok egész számú többszörösei):
rotate.submit=Forgatás
#merge
split.title=PDF szétválasztás
split.header=PDF szétválasztás
split.desc.1=A kiválasztott számok a szétválasztani kívánt oldalszámok
split.desc.2=Például az 1,3,7-8 kiválasztása egy 10 oldalas dokumentumot 6 különálló PDF-fé szétválaszt
split.desc.3=Dokumentum #1: Oldal 1
split.desc.4=Dokumentum #2: Oldal 2 és 3
split.desc.5=Dokumentum #3: Oldal 4, 5 és 6
split.desc.6=Dokumentum #4: Oldal 7
split.desc.7=Dokumentum #5: Oldal 8
split.desc.8=Dokumentum #6: Oldal 9 és 10
split.splitPages=Adja meg az oldalakat, amelyekre szét akarja választani:
split.submit=Szétválasztás
#merge
imageToPDF.title=Kép PDF-be
imageToPDF.header=Kép PDF-be
imageToPDF.submit=Átalakítás
imageToPDF.selectLabel=Kép illesztési beállítások
imageToPDF.fillPage=Teljes oldal kitöltése
imageToPDF.fitDocumentToImage=Oldal illesztése a képhez
imageToPDF.maintainAspectRatio=Arányok megtartása
imageToPDF.selectText.2=Automatikus forgatás PDF
imageToPDF.selectText.3=Több fájl logika (csak akkor engedélyezett, ha több képpel dolgozik)
imageToPDF.selectText.4=Egyesítse egyetlen PDF-fé
imageToPDF.selectText.5=Átalakítás különálló PDF-fé
#pdfToImage
pdfToImage.title=PDF képpé alakítása
pdfToImage.header=PDF képpé alakítása
pdfToImage.selectText=Képformátum
pdfToImage.singleOrMultiple=Oldal kép típusa
pdfToImage.single=Egyetlen nagy kép az összes oldallal
pdfToImage.multi=Több kép, egy kép oldalanként
pdfToImage.colorType=Szín típusa
pdfToImage.color=színes
pdfToImage.grey=szürkeárnyalatos
pdfToImage.blackwhite=fekete-fehér (adatvesztéssel járhat!)
pdfToImage.submit=Átalakítás
#addPassword
addPassword.title=Jelszó hozzáadása
addPassword.header=Jelszó hozzáadása (Titkosítás)
addPassword.selectText.1=Válassza ki a titkosítandó PDF-t
addPassword.selectText.2=Felhasználói jelszó
addPassword.selectText.3=Titkosítási kulcs hossza
addPassword.selectText.4=A magasabb értékek erősebbek, de az alacsonyabb értékek jobb kompatibilitást biztosítanak.
addPassword.selectText.5=Beállítandó engedélyek (Ajánlott a Tulajdonos jelszóval együtt használni)
addPassword.selectText.6=Más dokumentummal történő egyesítés megakadályozása
addPassword.selectText.7=Tartalomkivonás megakadályozása
addPassword.selectText.8=Elérhetőség kivonásának megakadályozása
addPassword.selectText.9=Űrlap kitöltésének megakadályozása
addPassword.selectText.10=Módosítás megakadályozása
addPassword.selectText.11=Jegyzet módosításának megakadályozása
addPassword.selectText.12=Nyomtatás megakadályozása
addPassword.selectText.13=Többféle formátumú nyomtatás megakadályozása
addPassword.selectText.14=Tulajdonos jelszó
addPassword.selectText.15=Korlátozza, hogy mi végezhető el a dokumentum megnyitása után (Nem minden olvasó támogatja)
addPassword.selectText.16=Korlátozza a dokumentum megnyithatságát
addPassword.submit=Titkosítás
#watermark
watermark.title=Vízjel hozzáadása
watermark.header=Vízjel hozzáadása
watermark.selectText.1=Válassza ki a PDF-t, amelyhez vízjelet kíván hozzáadni:
watermark.selectText.2=Vízjel szövege:
watermark.selectText.3=Betűméret:
watermark.selectText.4=Forgatás (0-360):
watermark.selectText.5=widthSpacer (Hely a vízjelek között vízszintesen):
watermark.selectText.6=heightSpacer (Hely a vízjelek között függőlegesen):
watermark.selectText.7=Átlátszóság (0% - 100%):
watermark.selectText.8=Vízjel típusa:
watermark.selectText.9=Vízjel képe:
watermark.submit=Vízjel hozzáadása
#Change permissions
permissions.title=Jogosultságok módosítása
permissions.header=Jogosultságok módosítása
permissions.warning=Figyelem: Ahhoz, hogy ezek a jogosultságok ne legyenek később módosíthatók, javasolt a dokumentumhoz jelszót beállítani a Jelszó hozzáadása funkcióval.
permissions.selectText.1=Válassza ki a PDF-fájlt a jogosultságok módosításához
permissions.selectText.2=Beállítandó jogosultságok
permissions.selectText.3=Más dokumentummal történő egyesítés megakadályozása
permissions.selectText.4=Tartalom kivonásának megakadályozása
permissions.selectText.5=Elérhetőség kivonásának megakadályozása
permissions.selectText.6=Űrlap kitöltésének megakadályozása
permissions.selectText.7=Módosítás megakadályozása
permissions.selectText.8=Jegyzet módosításának megakadályozása
permissions.selectText.9=Nyomtatás megakadályozása
permissions.selectText.10=Többféle formátumú nyomtatás megakadályozása
permissions.submit=Módosítás
#remove password
removePassword.title=Jelszó eltávolítása
removePassword.header=Jelszó eltávolítása (dekódolás)
removePassword.selectText.1=Válassza ki a PDF-fájlt a dekódoláshoz
removePassword.selectText.2=Jelszó
removePassword.submit=Eltávolítás
#changeMetadata
changeMetadata.title=Metaadatok módosítása
changeMetadata.header=Metaadatok módosítása
changeMetadata.selectText.1=Kérjük, szerkessze azokat a változókat, amelyeket módosítani szeretne
changeMetadata.selectText.2=Minden metaadat törlése
changeMetadata.selectText.3=Egyedi metaadatok megjelenítése:
changeMetadata.author=Szerző:
changeMetadata.creationDate=Létrehozás dátuma (éééé/hh/nn ÓÓ:PP:MM):
changeMetadata.creator=Létrehozó:
changeMetadata.keywords=Kulcsszavak:
changeMetadata.modDate=Módosítás dátuma (éééé/hh/nn ÓÓ:PP:MM):
changeMetadata.producer=Készítő:
changeMetadata.subject=Tárgy:
changeMetadata.title=Cím:
changeMetadata.trapped=Trapped:
changeMetadata.selectText.4=Egyéb metaadatok:
changeMetadata.selectText.5=Egyedi metaadatbejegyzés hozzáadása
changeMetadata.submit=Módosítás
#pdfToPDFA
pdfToPDFA.title=PDF >> PDF/A
pdfToPDFA.header=PDF >> PDF/A
pdfToPDFA.credit=Ez a szolgáltatás az OCRmyPDF-t használja a PDF/A konverzióhoz
pdfToPDFA.submit=Konvertálás
#PDFToWord
PDFToWord.title=PDF >> Word
PDFToWord.header=PDF >> Word
PDFToWord.selectText.1=Kimeneti fájlformátum
PDFToWord.credit=Ez a szolgáltatás a LibreOffice-t használja a fájlkonverzióhoz.
PDFToWord.submit=Konvertálás
#PDFToPresentation
PDFToPresentation.title=PDF >> prezentáció
PDFToPresentation.header=PDF >> prezentáció
PDFToPresentation.selectText.1=Kimeneti fájlformátum
PDFToPresentation.credit=Ez a szolgáltatás a LibreOffice-t használja a fájlkonverzióhoz.
PDFToPresentation.submit=Konvertálás
#PDFToText
PDFToText.title=PDF >> RTF (szöveg)
PDFToText.header=PDF >> RTF (szöveg)
PDFToText.selectText.1=Kimeneti fájlformátum
PDFToText.credit=Ez a szolgáltatás a LibreOffice-t használja a fájlkonverzióhoz.
PDFToText.submit=Konvertálás
#PDFToHTML
PDFToHTML.title=PDF >> HTML
PDFToHTML.header=PDF >> HTML
PDFToHTML.credit=Ez a szolgáltatás a LibreOffice-t használja a fájlkonverzióhoz.
PDFToHTML.submit=Konvertálás
#PDFToXML
PDFToXML.title=PDF >> XML
PDFToXML.header=PDF >> XML
PDFToXML.credit=Ez a szolgáltatás a LibreOffice-t használja a fájlkonverzióhoz.
PDFToXML.submit=Konvertálás
#PDFToCSV
PDFToCSV.title=PDF >> CSV
PDFToCSV.header=PDF >> CSV
PDFToCSV.prompt=Válassza ki az oldalt a táblázat kinyeréséhez
PDFToCSV.submit=Kinyerés
#split-by-size-or-count
split-by-size-or-count.header=PDF felosztása méret vagy oldalszám alapján
split-by-size-or-count.type.label=Válassza ki a felosztás típusát
split-by-size-or-count.type.size=Méret alapján
split-by-size-or-count.type.pageCount=Oldalszám alapján
split-by-size-or-count.type.docCount=Dokumentumok száma alapján
split-by-size-or-count.value.label=Adja meg az értéket
split-by-size-or-count.value.placeholder=Adja meg a méretet (pl. 2 MB vagy 3 KB) vagy az oldalszámot (pl. 5)
split-by-size-or-count.submit=Elküld
#overlay-pdfs
overlay-pdfs.header=PDF fájlok átfedése
overlay-pdfs.baseFile.label=Válassza ki az alap PDF fájlt
overlay-pdfs.overlayFiles.label=Válassza ki az átfedő PDF fájlokat
overlay-pdfs.mode.label=Válassza ki az átfedés módját
overlay-pdfs.mode.sequential=Soros átfedés
overlay-pdfs.mode.interleaved=Váltott átfedés
overlay-pdfs.mode.fixedRepeat=Rögzített ismétlődő átfedés
overlay-pdfs.counts.label=Átfedések száma (rögzített ismétlődő mód esetén)
overlay-pdfs.counts.placeholder=Adja meg a vesszővel elválasztott számokat (pl. 2,3,1)
overlay-pdfs.position.label=Válassza ki az átfedés pozícióját
overlay-pdfs.position.foreground=Előtér
overlay-pdfs.position.background=Háttér
overlay-pdfs.submit=Elküld
#split-by-sections
split-by-sections.title=PDF szakaszokra osztása
split-by-sections.header=PDF szakaszokra osztása
split-by-sections.horizontal.label=Függőleges szakaszok
split-by-sections.vertical.label=Vízszintes szakaszok
split-by-sections.horizontal.placeholder=Adja meg a vízszintes szakaszok számát
split-by-sections.vertical.placeholder=Adja meg a függőleges szakaszok számát
split-by-sections.submit=Felosztás

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-hu" viewBox="0 0 640 480">
<path fill="#339933" d="M0 320h640v160H0z"/>
<path fill="#cc0033" d="M0 0h640v160H0z"/>
<path fill="#ffffff" d="M0 160h640v160H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 228 B

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg width="16" height="16" fill="currentColor" class="bi bi-chat-left-text" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<path d="M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4.414A2 2 0 0 0 3 11.586l-2 2V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12.793a.5.5 0 0 0 .854.353l2.853-2.853A1 1 0 0 1 4.414 12H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z" style="fill: rgb(0, 0, 0);"/>
<path d="M3 3.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5M3 6a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9A.5.5 0 0 1 3 6m0 2.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5" style="fill: rgb(0, 0, 0);"/>
<path d="M 0.125 0.178 C 0.312 -0.024 0.636 -0.043 0.831 0.152 L 15.771 15.1 C 16.242 15.571 15.561 16.304 15.09 15.832 L 0.151 0.885 C -0.045 0.69 -0.063 0.381 0.125 0.178 Z" id="path937" style="fill: rgb(0, 0, 0);"/>
</svg>

After

Width:  |  Height:  |  Size: 853 B

View file

@ -26,14 +26,13 @@
<option value="gif">GIF</option> <option value="gif">GIF</option>
<option value="tiff">TIFF</option> <option value="tiff">TIFF</option>
<option value="bmp">BMP</option> <option value="bmp">BMP</option>
<option value="wbmp">WBMP</option>
</select> </select>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label th:text="#{pdfToImage.singleOrMultiple}"></label> <label th:text="#{pdfToImage.singleOrMultiple}"></label>
<select class="form-control" name="singleOrMultiple"> <select class="form-control" name="singleOrMultiple">
<option value="single" th:text="#{pdfToImage.single}"></option>
<option value="multiple" th:text="#{pdfToImage.multi}"></option> <option value="multiple" th:text="#{pdfToImage.multi}"></option>
<option value="single" th:text="#{pdfToImage.single}"></option>
</select> </select>
</div> </div>
<div class="mb-3"> <div class="mb-3">

View file

@ -36,6 +36,9 @@
<script src="js/thirdParty/bootstrap.min.js"></script> <script src="js/thirdParty/bootstrap.min.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="css/bootstrap.min.css">
<!-- Bootstrap Icons -->
<link rel="stylesheet" href="css/bootstrap-icons.min.css">
<!-- PDF.js --> <!-- PDF.js -->
<script src="pdfjs/pdf.js"></script> <script src="pdfjs/pdf.js"></script>

View file

@ -1,8 +1,8 @@
<th:block th:fragment="langs"> <th:block th:fragment="langs">
<a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="bg_BG"> <a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="bg_BG">
<img src="images/flags/bg.svg" alt="icon" width="20" height="15"> Български <img src="images/flags/bg.svg" alt="icon" width="20" height="15"> Български
</a> </a>
<a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="ar_AR"> <a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="ar_AR">
<img src="images/flags/sa.svg" alt="icon" width="20" height="15"> العربية <img src="images/flags/sa.svg" alt="icon" width="20" height="15"> العربية
</a> </a>
<a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="ca_CA"> <a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="ca_CA">
@ -62,4 +62,7 @@
<a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="el_GR"> <a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="el_GR">
<img src="images/flags/gr.svg" alt="icon" width="20" height="15"> Ελληνικά <img src="images/flags/gr.svg" alt="icon" width="20" height="15"> Ελληνικά
</a> </a>
<a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="hu_HU">
<img src="images/flags/hu.svg" alt="icon" width="20" height="15"> Hungarian
</a>
</th:block> </th:block>

View file

@ -107,7 +107,7 @@
</li> </li>
<li class="nav-item nav-item-separator"></li> <li class="nav-item nav-item-separator"></li>
<li class="nav-item dropdown" th:classappend="${currentPage}=='sign' OR ${currentPage}=='repair' OR ${currentPage}=='compare' OR ${currentPage}=='show-javascript' OR ${currentPage}=='flatten' OR ${currentPage}=='remove-blanks' OR ${currentPage}=='extract-image-scans' OR ${currentPage}=='change-metadata' OR ${currentPage}=='add-image' OR ${currentPage}=='ocr-pdf' OR ${currentPage}=='change-permissions' OR ${currentPage}=='extract-images' OR ${currentPage}=='compress-pdf' OR ${currentPage}=='add-page-numbers' OR ${currentPage}=='auto-rename' OR ${currentPage}=='get-info-on-pdf' ? 'active' : ''"> <li class="nav-item dropdown" th:classappend="${currentPage}=='sign' OR ${currentPage}=='repair' OR ${currentPage}=='compare' OR ${currentPage}=='show-javascript' OR ${currentPage}=='flatten' OR ${currentPage}=='remove-blanks' OR ${currentPage}=='remove-annotations' OR ${currentPage}=='extract-image-scans' OR ${currentPage}=='change-metadata' OR ${currentPage}=='add-image' OR ${currentPage}=='ocr-pdf' OR ${currentPage}=='change-permissions' OR ${currentPage}=='extract-images' OR ${currentPage}=='compress-pdf' OR ${currentPage}=='add-page-numbers' OR ${currentPage}=='auto-rename' OR ${currentPage}=='get-info-on-pdf' ? 'active' : ''">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img class="icon" src="images/card-list.svg" alt="icon" style="width: 16px; height: 16px; vertical-align: middle;"> <img class="icon" src="images/card-list.svg" alt="icon" style="width: 16px; height: 16px; vertical-align: middle;">
<span class="icon-text" th:text="#{navbar.other}"></span> <span class="icon-text" th:text="#{navbar.other}"></span>
@ -125,6 +125,7 @@
<div th:replace="~{fragments/navbarEntry :: navbarEntry ('flatten', 'images/flatten.svg', 'home.flatten.title', 'home.flatten.desc', 'flatten.tags')}"></div> <div th:replace="~{fragments/navbarEntry :: navbarEntry ('flatten', 'images/flatten.svg', 'home.flatten.title', 'home.flatten.desc', 'flatten.tags')}"></div>
<div th:replace="~{fragments/navbarEntry :: navbarEntry ('repair', 'images/wrench.svg', 'home.repair.title', 'home.repair.desc', 'repair.tags')}"></div> <div th:replace="~{fragments/navbarEntry :: navbarEntry ('repair', 'images/wrench.svg', 'home.repair.title', 'home.repair.desc', 'repair.tags')}"></div>
<div th:replace="~{fragments/navbarEntry :: navbarEntry ('remove-blanks', 'images/blank-file.svg', 'home.removeBlanks.title', 'home.removeBlanks.desc', 'removeBlanks.tags')}"></div> <div th:replace="~{fragments/navbarEntry :: navbarEntry ('remove-blanks', 'images/blank-file.svg', 'home.removeBlanks.title', 'home.removeBlanks.desc', 'removeBlanks.tags')}"></div>
<div th:replace="~{fragments/navbarEntry :: navbarEntry ('remove-annotations', 'images/no-chat.svg', 'home.removeAnnotations.title', 'home.removeAnnotations.desc', 'removeAnnotations.tags')}"></div>
<div th:replace="~{fragments/navbarEntry :: navbarEntry ('compare', 'images/scales.svg', 'home.compare.title', 'home.compare.desc', 'compare.tags')}"></div> <div th:replace="~{fragments/navbarEntry :: navbarEntry ('compare', 'images/scales.svg', 'home.compare.title', 'home.compare.desc', 'compare.tags')}"></div>
<div th:replace="~{fragments/navbarEntry :: navbarEntry ('add-page-numbers', 'images/add-page-numbers.svg', 'home.add-page-numbers.title', 'home.add-page-numbers.desc', 'add-page-numbers.tags')}"></div> <div th:replace="~{fragments/navbarEntry :: navbarEntry ('add-page-numbers', 'images/add-page-numbers.svg', 'home.add-page-numbers.title', 'home.add-page-numbers.desc', 'add-page-numbers.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 ('auto-rename', 'images/fonts.svg', 'home.auto-rename.title', 'home.auto-rename.desc', 'auto-rename.tags')}"></div>

View file

@ -73,6 +73,7 @@
<div th:replace="~{fragments/card :: card(id='repair', cardTitle=#{home.repair.title}, cardText=#{home.repair.desc}, cardLink='repair', svgPath='images/wrench.svg')}"></div> <div th:replace="~{fragments/card :: card(id='repair', cardTitle=#{home.repair.title}, cardText=#{home.repair.desc}, cardLink='repair', svgPath='images/wrench.svg')}"></div>
<div th:replace="~{fragments/card :: card(id='remove-blanks', cardTitle=#{home.removeBlanks.title}, cardText=#{home.removeBlanks.desc}, cardLink='remove-blanks', svgPath='images/blank-file.svg')}"></div> <div th:replace="~{fragments/card :: card(id='remove-blanks', cardTitle=#{home.removeBlanks.title}, cardText=#{home.removeBlanks.desc}, cardLink='remove-blanks', svgPath='images/blank-file.svg')}"></div>
<div th:replace="~{fragments/card :: card(id='remove-annotations', cardTitle=#{home.removeAnnotations.title}, cardText=#{home.removeAnnotations.desc}, cardLink='remove-annotations', svgPath='images/no-chat.svg')}"></div>
<div th:replace="~{fragments/card :: card(id='compare', cardTitle=#{home.compare.title}, cardText=#{home.compare.desc}, cardLink='compare', svgPath='images/scales.svg')}"></div> <div th:replace="~{fragments/card :: card(id='compare', cardTitle=#{home.compare.title}, cardText=#{home.compare.desc}, cardLink='compare', svgPath='images/scales.svg')}"></div>
<div th:replace="~{fragments/card :: card(id='cert-sign', cardTitle=#{home.certSign.title}, cardText=#{home.certSign.desc}, cardLink='cert-sign', svgPath='images/award.svg')}"></div> <div th:replace="~{fragments/card :: card(id='cert-sign', cardTitle=#{home.certSign.title}, cardText=#{home.certSign.desc}, cardLink='cert-sign', svgPath='images/award.svg')}"></div>

View file

@ -0,0 +1,64 @@
<!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=#{removeAnnotations.title})}"></th:block>
<body>
<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="#{removeAnnotations.header}"></h2>
<form id="pdfForm" class="mb-3">
<div class="custom-file">
<div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, accept='application/pdf', remoteCall='false')}"></div>
</div>
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{removeAnnotations.submit}"></button>
</form>
</div>
</div>
</div>
</div>
<div th:insert="~{fragments/footer.html :: footer}"></div>
</div>
<script src="js/local-pdf-input-download.js"></script>
<script>
document.getElementById('pdfForm').addEventListener('submit', async (e) => {
e.preventDefault();
const { PDFDocument } = PDFLib;
const processFile = async (file) => {
const origFileUrl = URL.createObjectURL(file);
const formPdfBytes = await fetch(origFileUrl).then(res => res.arrayBuffer());
const pdfDoc = await PDFDocument.load(formPdfBytes, { ignoreEncryption: true });
const pages = pdfDoc.getPages();
for (let i = 0; i < pages.length; ++i) {
const page = pages[i];
const annotations = page.node.Annots();
if (!annotations) continue;
const ctx = annotations.context;
for (let j = 0; j < annotations.size(); ++j) {
const annotation = annotations.get(j);
ctx.delete(annotation);
}
}
const pdfBytes = await pdfDoc.save();
const pdfBlob = new Blob([pdfBytes], { type: 'application/pdf' });
const fileName = (file.name ? file.name.replace('.pdf', '') : 'pdf') + '_removed_annotations.pdf';
return { processedData: pdfBlob, fileName };
};
await downloadFilesWithCallback(processFile);
});
</script>
</body>
</html>