Merge branch 'main' of git@github.com:Frooodle/Stirling-PDF.git into

main
This commit is contained in:
Anthony Stirling 2023-06-07 14:47:06 +01:00
commit ecba6461df
6 changed files with 113 additions and 106 deletions

View file

@ -21,7 +21,7 @@ Feel free to request any features or bug fixes either in github issues or our [D
![stirling-home](images/stirling-home.png) ![stirling-home](images/stirling-home.png)
## Features ## Features
- Full intractable GUI for merging/splitting/rotating/moving PDFs and their pages. - Full interactive GUI for merging/splitting/rotating/moving PDFs and their pages.
- Split PDFs into multiple files at specified page numbers or extract all pages as individual files. - Split PDFs into multiple files at specified page numbers or extract all pages as individual files.
- Merge multiple PDFs together into a single resultant file - Merge multiple PDFs together into a single resultant file
- Convert PDFs to and from images - Convert PDFs to and from images

View file

@ -5,6 +5,8 @@ merge-pdfs | X | | | | | |
split-pdfs | X | | | | | | | | | X | split-pdfs | X | | | | | | | | | X |
pdf-organizer | X | | | | | | | | | X | X pdf-organizer | X | | | | | | | | | X | X
rotate-pdf | X | | | | | | | | | X | rotate-pdf | X | | | | | | | | | X |
multi-page-layout | X | | | | | | | | | X |
scale-pages | X | | | | | | | | | X |
pdf-to-img | | X | | | | | | | | X | pdf-to-img | | X | | | | | | | | X |
img-to-pdf | | X | | | | | | | | X | img-to-pdf | | X | | | | | | | | X |
pdf-to-pdfa | | X | | | X | | | | X | | pdf-to-pdfa | | X | | | X | | | | X | |
@ -19,6 +21,7 @@ add-password | | | X | | | |
remove-password | | | X | | | | | | | X | remove-password | | | X | | | | | | | X |
change-permissions | | | X | | | | | | | X | change-permissions | | | X | | | | | | | X |
add-watermark | | | X | | | | | | | X | add-watermark | | | X | | | | | | | X |
cert-sign | | | X | | | | | | | X |
ocr-pdf | | | | X | X | | | | X | | ocr-pdf | | | | X | X | | | | X | |
add-image | | | | X | | | | | | X | add-image | | | | X | | | | | | X |
compress-pdf | | | | X | X | | | | X compress-pdf | | | | X | X | | | | X
@ -30,3 +33,6 @@ flatten | | | | X | | |
repair | | | | X | X | | | X | | | repair | | | | X | X | | | X | | |
remove-blanks | | | | X | X | X | X | | | | remove-blanks | | | | X | X | X | X | | | |
compare | | | | X | | | | | | | X compare | | | | X | | | | | | | X

View file

@ -29,6 +29,7 @@ import org.springframework.web.multipart.MultipartFile;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import stirling.software.SPDF.utils.GeneralUtils; import stirling.software.SPDF.utils.GeneralUtils;
import stirling.software.SPDF.utils.WebResponseUtils;
@RestController @RestController
public class SplitPDFController { public class SplitPDFController {
@ -38,7 +39,7 @@ public class SplitPDFController {
@PostMapping(consumes = "multipart/form-data", value = "/split-pages") @PostMapping(consumes = "multipart/form-data", value = "/split-pages")
@Operation(summary = "Split a PDF file into separate documents", @Operation(summary = "Split a PDF file into separate documents",
description = "This endpoint splits a given PDF file into separate documents based on the specified page numbers or ranges. Users can specify pages using individual numbers, ranges, or 'all' for every page.") description = "This endpoint splits a given PDF file into separate documents based on the specified page numbers or ranges. Users can specify pages using individual numbers, ranges, or 'all' for every page.")
public ResponseEntity<Resource> splitPdf( public ResponseEntity<byte[]> splitPdf(
@RequestPart(required = true, value = "fileInput") @RequestPart(required = true, value = "fileInput")
@Parameter(description = "The input PDF file to be split") @Parameter(description = "The input PDF file to be split")
MultipartFile file, MultipartFile file,
@ -97,10 +98,11 @@ public class SplitPDFController {
Path zipFile = Files.createTempFile("split_documents", ".zip"); Path zipFile = Files.createTempFile("split_documents", ".zip");
String filename = file.getOriginalFilename().replaceFirst("[.][^.]+$", "");
try (ZipOutputStream zipOut = new ZipOutputStream(Files.newOutputStream(zipFile))) { try (ZipOutputStream zipOut = new ZipOutputStream(Files.newOutputStream(zipFile))) {
// loop through the split documents and write them to the zip file // loop through the split documents and write them to the zip file
for (int i = 0; i < splitDocumentsBoas.size(); i++) { for (int i = 0; i < splitDocumentsBoas.size(); i++) {
String fileName = "split_document_" + (i + 1) + ".pdf"; String fileName = filename + "_" + (i + 1) + ".pdf";
ByteArrayOutputStream baos = splitDocumentsBoas.get(i); ByteArrayOutputStream baos = splitDocumentsBoas.get(i);
byte[] pdf = baos.toByteArray(); byte[] pdf = baos.toByteArray();
@ -119,12 +121,11 @@ public class SplitPDFController {
logger.info("Successfully created zip file with split documents: {}", zipFile.toString()); logger.info("Successfully created zip file with split documents: {}", zipFile.toString());
byte[] data = Files.readAllBytes(zipFile); byte[] data = Files.readAllBytes(zipFile);
ByteArrayResource resource = new ByteArrayResource(data);
Files.delete(zipFile); Files.delete(zipFile);
// return the Resource in the response // return the Resource in the response
return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + file.getOriginalFilename().replaceFirst("[.][^.]+$", "") + "_split.zip") return WebResponseUtils.bytesToWebResponse(data, filename + ".zip", MediaType.APPLICATION_OCTET_STREAM);
.contentType(MediaType.APPLICATION_OCTET_STREAM).contentLength(resource.contentLength()).body(resource);
} }
} }

View file

@ -99,7 +99,7 @@ public class ConvertImgPDFController {
boolean autoRotate) throws IOException { boolean autoRotate) throws IOException {
// Convert the file to PDF and get the resulting bytes // Convert the file to PDF and get the resulting bytes
byte[] bytes = PdfUtils.imageToPdf(file, stretchToFit, autoRotate, colorType); byte[] bytes = PdfUtils.imageToPdf(file, stretchToFit, autoRotate, colorType);
return WebResponseUtils.bytesToWebResponse(bytes, file[0].getOriginalFilename().replaceFirst("[.][^.]+$", "") + "_coverted.pdf"); return WebResponseUtils.bytesToWebResponse(bytes, file[0].getOriginalFilename().replaceFirst("[.][^.]+$", "") + "_converted.pdf");
} }
private String getMediaType(String imageFormat) { private String getMediaType(String imageFormat) {

View file

@ -11,7 +11,7 @@ imgPrompt=Seleccionar Imagen(es)
genericSubmit=Enviar genericSubmit=Enviar
processTimeWarning=Advertencia: este proceso puede tardar hasta un minuto dependiendo del tamaño del archivo processTimeWarning=Advertencia: este proceso puede tardar hasta un minuto dependiendo del tamaño del archivo
pageOrderPrompt=Orden de páginas (Introduzca una lista de números de página separados por coma): pageOrderPrompt=Orden de páginas (Introduzca una lista de números de página separados por coma):
goToPage=Ir goToPage=Ir a
true=Verdadero true=Verdadero
false=Falso false=Falso
unknown=Desconocido unknown=Desconocido
@ -23,7 +23,7 @@ bored=¿Aburrido de esperar?
############# #############
# HOME-PAGE # # HOME-PAGE #
############# #############
home.desc=Tu autohospedada ventanilla única para todas tus necesidades PDF. home.desc=Tu ventanilla única autohospedada para todas tus necesidades PDF
navbar.convert=Convertir navbar.convert=Convertir
navbar.security=Seguridad navbar.security=Seguridad
@ -35,19 +35,19 @@ home.multiTool.title=Multi-herramienta PDF
home.multiTool.desc=Combinar, rotar, reorganizar y eliminar páginas home.multiTool.desc=Combinar, rotar, reorganizar y eliminar páginas
home.merge.title=Unir home.merge.title=Unir
home.merge.desc=Unir fácilmente múltiples PDFs en uno. home.merge.desc=Unir fácilmente múltiples PDFs en uno
home.split.title=Dividir home.split.title=Dividir
home.split.desc=Dividir PDFs en múltiples documentos home.split.desc=Dividir PDFs en múltiples documentos
home.rotate.title=Rotar home.rotate.title=Rotar
home.rotate.desc=Rotar fácilmente tus PDFs. home.rotate.desc=Rotar fácilmente tus PDFs
home.imageToPdf.title=Imagen a PDF home.imageToPdf.title=Imagen a PDF
home.imageToPdf.desc=Convertir una imagen (PNG, JPEG, GIF) a PDF. home.imageToPdf.desc=Convertir una imagen (PNG, JPEG, GIF) a PDF
home.pdfToImage.title=PDF a Imagen home.pdfToImage.title=PDF a Imagen
home.pdfToImage.desc=Convertir un PDF a una imagen. (PNG, JPEG, GIF) home.pdfToImage.desc=Convertir un PDF a una imagen (PNG, JPEG, GIF)
home.pdfOrganiser.title=Organizador home.pdfOrganiser.title=Organizador
home.pdfOrganiser.desc=Eliminar/Reorganizar páginas en cualquier orden home.pdfOrganiser.desc=Eliminar/Reorganizar páginas en cualquier orden
@ -56,37 +56,37 @@ home.addImage.title=Agregar imagen al PDF
home.addImage.desc=Agregar una imagen en una ubicación establecida en el PDF (trabajo en progreso) home.addImage.desc=Agregar una imagen en una ubicación establecida en el PDF (trabajo en progreso)
home.watermark.title=Añadir marca de agua home.watermark.title=Añadir marca de agua
home.watermark.desc=Añadir una marca de agua predefinida a tu documento PDF. home.watermark.desc=Añadir una marca de agua predefinida al documento PDF
home.remove-watermark.title=Eliminar marca de agua home.remove-watermark.title=Eliminar marca de agua
home.remove-watermark.desc=Eliminar marcas de agua de tu documento PDF. home.remove-watermark.desc=Eliminar marca de agua de tu documento PDF
home.permissions.title=Cambiar Permisos home.permissions.title=Cambiar permisos
home.permissions.desc=Cambiar los permisos de tu documento PDF home.permissions.desc=Cambiar los permisos del documento PDF
home.removePages.title=Eliminar home.removePages.title=Eliminar
home.removePages.desc=Eliminar páginas no deseadas de tu documento PDF. home.removePages.desc=Eliminar páginas no deseadas del documento PDF
home.addPassword.title=Añadir Contraseña home.addPassword.title=Añadir contraseña
home.addPassword.desc=Encriptar el documento PDF con una contraseña. home.addPassword.desc=Encriptar el documento PDF con una contraseña
home.removePassword.title=Eliminar Contraseña home.removePassword.title=Eliminar contraseña
home.removePassword.desc=Eliminar la contraseña del documento PDF. home.removePassword.desc=Eliminar la contraseña del documento PDF
home.compressPdfs.title=Comprimir home.compressPdfs.title=Comprimir
home.compressPdfs.desc=Comprimir PDFs para reducir el tamaño del fichero. home.compressPdfs.desc=Comprimir PDFs para reducir el tamaño del fichero
home.changeMetadata.title=Cambiar Metadatos home.changeMetadata.title=Cambiar metadatos
home.changeMetadata.desc=Cambiar/Eliminar/Añadir metadatos al documento PDF. home.changeMetadata.desc=Cambiar/Eliminar/Añadir metadatos al documento PDF
home.fileToPDF.title=Convertir fichero a PDF home.fileToPDF.title=Convertir fichero a PDF
home.fileToPDF.desc=Convertir casi cualquier archivo a PDF (DOCX, PNG, XLS, PPT, TXT y más) home.fileToPDF.desc=Convertir casi cualquier archivo a PDF (DOCX, PNG, XLS, PPT, TXT y más)
home.ocr.title=Ejecutar OCR en PDF y/o escaneos de limpieza home.ocr.title=Ejecutar OCR en PDF y/o escaneos de limpieza
home.ocr.desc=Escaneos de limpieza y detecta texto de imágenes dentro de un PDF y lo vuelve a agregar como texto. home.ocr.desc=Escaneos de limpieza y detectar texto de imágenes dentro de un PDF y volver a agregarlo como texto
home.extractImages.title=Extraer imágenes home.extractImages.title=Extraer imágenes
home.extractImages.desc=Extraer todas las imágenes de un PDF y guardarlas en zip home.extractImages.desc=Extraer todas las imágenes de un PDF y guardarlas en ZIP
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
@ -110,30 +110,30 @@ home.ScannerImageSplit.title=Detectar/Dividir fotos escaneadas
home.ScannerImageSplit.desc=Dividir varias fotos dentro de una foto/PDF home.ScannerImageSplit.desc=Dividir varias fotos dentro de una foto/PDF
home.sign.title=Firmar home.sign.title=Firmar
home.sign.desc=Añade firma a PDF mediante dibujo, texto o imagen home.sign.desc=Añadir firma a PDF mediante dibujo, texto o imagen
home.flatten.title=Aplanar home.flatten.title=Aplanar
home.flatten.desc=Eliminar todos los elementos y formularios interactivos de un PDF home.flatten.desc=Eliminar todos los elementos y formularios interactivos de un PDF
home.repair.title=Reparar home.repair.title=Reparar
home.repair.desc=Intenta reparar un PDF corrupto/roto home.repair.desc=Intentar reparar un PDF corrupto/roto
home.removeBlanks.title=Eliminar páginas en blanco home.removeBlanks.title=Eliminar páginas en blanco
home.removeBlanks.desc=detecta y elimina páginas en blanco de un documento home.removeBlanks.desc=Detectar y eliminar páginas en blanco de un documento
home.certSign.title=Sign with Certificate home.certSign.title=Firmar con certificado
home.certSign.desc=Signs a PDF with a Certificate/Key (PEM/P12) home.certSign.desc=Firmar un PDF con un Certificado/Clave (PEM/P12)
home.compare.title=Comparar home.compare.title=Comparar
home.compare.desc=Compara y muestra las diferencias entre 2 documentos PDF home.compare.desc=Comparar y mostrar las diferencias entre 2 documentos PDF
home.pageLayout.title=Multi-Page Layout home.pageLayout.title=Diseño de varias páginas
home.pageLayout.desc=Merge multiple pages of a PDF document into a single page home.pageLayout.desc=Unir varias páginas de un documento PDF en una sola página
home.scalePages.title=Adjust page size/scale home.scalePages.title=Escalar/ajustar tamaño de página
home.scalePages.desc=Change the size/scale of page and/or its contents. home.scalePages.desc=Escalar/cambiar el tamaño de una pagina y/o su contenido
error.pdfPassword=The PDF Document is passworded and either the password was not provided or was incorrect error.pdfPassword=El documento PDF está protegido con contraseña y no se ha proporcionado o es incorrecta
downloadPdf=Descargar PDF downloadPdf=Descargar PDF
text=Texto text=Texto
@ -141,19 +141,19 @@ font=Fuente
selectFilter=-- Seleccionar -- selectFilter=-- Seleccionar --
pageNum=Número de página pageNum=Número de página
pageLayout.title=Multi Page Layout pageLayout.title=Diseño de varias páginas
pageLayout.header=Multi Page Layout pageLayout.header=Diseño de varias páginas
pageLayout.pagesPerSheet=Pages per sheet: pageLayout.pagesPerSheet=Páginas por hoja:
pageLayout.submit=Submit pageLayout.submit=Entregar
scalePages.title=Adjust page-scale scalePages.title=Ajustar escala de la página
scalePages.header=Adjust page-scale scalePages.header=Adjustar escala de la página
scalePages.pageSize=Size of a page of the document. scalePages.pageSize=Tamaño de la página del documento
scalePages.scaleFactor=Zoom level (crop) of a page. scalePages.scaleFactor=Nivel de zoom (recorte) de la página
scalePages.submit=Submit scalePages.submit=Entregar
certSign.title=Firma de certificado certSign.title=Firma de certificado
certSign.header=Firme un PDF con su certificado (Trabajo en progreso) certSign.header=Firmar un PDF con su certificado (Trabajo en progreso)
certSign.selectPDF=Seleccione un archivo PDF para firmar: certSign.selectPDF=Seleccione un archivo PDF para firmar:
certSign.selectKey=Seleccione su archivo de clave privada (formato PKCS#8, podría ser .pem o .der): certSign.selectKey=Seleccione su archivo de clave privada (formato PKCS#8, podría ser .pem o .der):
certSign.selectCert=Seleccione su archivo de certificado (formato X.509, podría ser .pem o .der): certSign.selectCert=Seleccione su archivo de certificado (formato X.509, podría ser .pem o .der):
@ -197,13 +197,13 @@ flatten.header=Acoplar archivos PDF
flatten.submit=Aplanar flatten.submit=Aplanar
ScannerImageSplit.selectText.1=Umbral de ángulo: ScannerImageSplit.selectText.1=Umbral de ángulo:
ScannerImageSplit.selectText.2=Establece el ángulo absoluto mínimo requerido para rotar la imagen (predeterminado: 10). ScannerImageSplit.selectText.2=Establecer el ángulo absoluto mínimo requerido para rotar la imagen (predeterminado: 10).
ScannerImageSplit.selectText.3=Tolerancia: ScannerImageSplit.selectText.3=Tolerancia:
ScannerImageSplit.selectText.4=Determina el rango de variación de color alrededor del color de fondo estimado (predeterminado: 30). ScannerImageSplit.selectText.4=Determinar el rango de variación de color alrededor del color de fondo estimado (predeterminado: 30).
ScannerImageSplit.selectText.5=Área mínima: ScannerImageSplit.selectText.5=Área mínima:
ScannerImageSplit.selectText.6=Establece el umbral mínimo de área para una foto (predeterminado: 10000). ScannerImageSplit.selectText.6=Establecer el umbral mínimo de área para una foto (predeterminado: 10000).
ScannerImageSplit.selectText.7=Área de contorno mínima: ScannerImageSplit.selectText.7=Área de contorno mínima:
ScannerImageSplit.selectText.8=Establece el umbral mínimo del área de contorno para una foto ScannerImageSplit.selectText.8=Establecer el umbral mínimo del área de contorno para una foto
ScannerImageSplit.selectText.9=Tamaño del borde: ScannerImageSplit.selectText.9=Tamaño del borde:
ScannerImageSplit.selectText.10=Establece el tamaño del borde agregado y eliminado para evitar bordes blancos en la salida (predeterminado: 1). ScannerImageSplit.selectText.10=Establece el tamaño del borde agregado y eliminado para evitar bordes blancos en la salida (predeterminado: 1).
@ -211,10 +211,10 @@ navbar.settings=Ajustes
settings.title=Ajustes settings.title=Ajustes
settings.update=Actualización disponible settings.update=Actualización disponible
settings.appVersion=Versión de la aplicación: settings.appVersion=Versión de la aplicación:
settings.downloadOption.title=Elige la opción de descarga (para descargas de un solo archivo sin ZIP): settings.downloadOption.title=Elegir la opción de descarga (para descargas de un solo archivo sin ZIP):
settings.downloadOption.1=Abre en la misma ventana settings.downloadOption.1=Abrir en la misma ventana
settings.downloadOption.2=Abre en una nueva ventana settings.downloadOption.2=Abrir en una nueva ventana
settings.downloadOption.3=Descarga el fichero settings.downloadOption.3=Descargar el fichero
settings.zipThreshold=Ficheros ZIP cuando excede el número de ficheros descargados settings.zipThreshold=Ficheros ZIP cuando excede el número de ficheros descargados
@ -223,53 +223,53 @@ settings.zipThreshold=Ficheros ZIP cuando excede el número de ficheros descarga
#OCR #OCR
ocr.title=OCR / Escaneo de limpieza ocr.title=OCR / Escaneo de limpieza
ocr.header=Escaneos de limpieza / OCR (Reconocimiento óptico de caracteres) ocr.header=Escaneos de limpieza / OCR (Reconocimiento óptico de caracteres)
ocr.selectText.1=Selecciona los idiomas que se detectarán en el PDF (Los enumerados son los detectados actualmente): ocr.selectText.1=Seleccionar los idiomas que se detectarán en el PDF (Los enumerados son los detectados actualmente):
ocr.selectText.2=Produzca un archivo de texto que contenga texto OCR junto con el PDF editado con OCR ocr.selectText.2=Producir un archivo de texto que contenga texto OCR junto con el PDF editado con OCR
ocr.selectText.3=Corrija las páginas que se escanearon en un ángulo torcido girándolas nuevamente a su lugar ocr.selectText.3=Corregir las páginas que se escanearon en un ángulo torcido girándolas nuevamente a su lugar
ocr.selectText.4=Limpie la página para que sea menos probable que el OCR encuentre texto en el ruido de fondo. (Sin cambio de salida) ocr.selectText.4=Limpiar la página para que sea menos probable que el OCR encuentre texto en el ruido de fondo (Sin cambio de salida)
ocr.selectText.5=Limpie la página para que sea menos probable que el OCR encuentre texto en el ruido de fondo, mantiene la limpieza en la salida. ocr.selectText.5=Limpiar la página para que sea menos probable que el OCR encuentre texto en el ruido de fondo, mantiene la limpieza en la salida.
ocr.selectText.6=Ignora las páginas que tienen texto interactivo, solo las páginas OCR que son imágenes ocr.selectText.6=Ignorar las páginas que tienen texto interactivo, solo las páginas OCR que son imágenes
ocr.selectText.7=Fuerza OCR, OCR eliminará en cada página todo el texto original ocr.selectText.7=Forzar OCR, OCR eliminará en cada página todo el texto original
ocr.selectText.8=Normal (Se producirá un error si el PDF contiene texto) ocr.selectText.8=Normal (se producirá un error si el PDF contiene texto)
ocr.selectText.9=Ajustes Adicionales ocr.selectText.9=Ajustes adicionales
ocr.selectText.10=Modo OCR ocr.selectText.10=Modo OCR
ocr.selectText.11=Eliminar imágenes después de OCR (Elimina TODAS las imágenes, solo es útil si es parte del paso de conversión) ocr.selectText.11=Eliminar imágenes después de OCR (Elimina TODAS las imágenes, solo es útil si es parte del paso de conversión)
ocr.selectText.12=Tipo de procesamiento (avanzado) ocr.selectText.12=Tipo de procesamiento (avanzado)
ocr.help=Lea esta documentación sobre cómo usar esto para otros idiomas y/o no usarlo en docker ocr.help=Lea esta documentación sobre cómo usar esto para otros idiomas y/o no usarlo en Docker
ocr.credit=Este servicio utiliza OCRmyPDF y Tesseract para OCR. ocr.credit=Este servicio utiliza OCRmyPDF y Tesseract para OCR
ocr.submit=Procesa PDF con OCR ocr.submit=Procesar PDF con OCR
extractImages.title=Extraer imágenes extractImages.title=Extraer imágenes
extractImages.header=Extraer imágenes extractImages.header=Extraer imágenes
extractImages.selectText=Selecciona el formato de imagen para convertir las imágenes extraídas extractImages.selectText=Seleccionar el formato de imagen para convertir las imágenes extraídas
extractImages.submit=Extraer extractImages.submit=Extraer
#File to PDF #File to PDF
fileToPDF.title=Fichero a PDF fileToPDF.title=Archivo a PDF
fileToPDF.header=Convierte cualquier fichero a PDF fileToPDF.header=Convertir cualquier archivo a PDF
fileToPDF.credit=Este servicio usa LibreOffice y Unoconv para la conversión de ficheros. fileToPDF.credit=Este servicio usa LibreOffice y Unoconv para la conversión de ficheros
fileToPDF.supportedFileTypes=Los tipos de ficheros soportados deben incluir los de abajo; sin embargo para una completa y acutualizada lista de formatos soportados, por favor consulte la documentación de LibreOffice fileToPDF.supportedFileTypes=Los tipos de ficheros soportados deben incluir los de abajo; sin embargo, para una completa y acutualizada lista de formatos soportados, por favor consulte la documentación de LibreOffice
fileToPDF.submit=Convertir a PDF fileToPDF.submit=Convertir a PDF
#compress #compress
compress.title=Comprimir compress.title=Comprimir
compress.header=Comprimir PDF compress.header=Comprimir PDF
compress.credit=Este servicio utiliza Ghostscript para compresión/optimización de PDF. compress.credit=Este servicio utiliza Ghostscript para compresión/optimización de PDF
compress.selectText.1=Modo manual - De 1 a 4 compress.selectText.1=Modo manual - De 1 a 4
compress.selectText.2=Nivel de optimización: compress.selectText.2=Nivel de optimización:
compress.selectText.3=4 (Terrible para imágenes de texto) compress.selectText.3=4 (Terrible para imágenes de texto)
compress.selectText.4=Modo automático: ajusta automáticamente la calidad para que el PDF tenga el tamaño exacto compress.selectText.4=Modo automático: ajusta automáticamente la calidad para que el PDF tenga el tamaño exacto
compress.selectText.5=Tamaño de PDF esperado (por ejemplo, 25 MB, 10,8 MB, 25 KB) compress.selectText.5=Tamaño esperado del PDF (por ejemplo, 25 MB, 10.8 MB, 25 KB)
compress.submit=Comprimir compress.submit=Comprimir
#Add image #Add image
addImage.title=Añadir Imagen addImage.title=Añadir imagen
addImage.header=Añadir image de PDF addImage.header=Añadir imagen de PDF
addImage.everyPage=¿Todas las páginas? addImage.everyPage=¿Todas las páginas?
addImage.submit=Añadir imagen addImage.submit=Añadir imagen
@ -291,13 +291,13 @@ multiTool.header=Multi-herramienta PDF
#pageRemover #pageRemover
pageRemover.title=Eliminador de páginas pageRemover.title=Eliminador de páginas
pageRemover.header=Eliminador de páginas PDF pageRemover.header=Eliminador de páginas PDF
pageRemover.pagesToDelete=Páginas a eliminar (Introduzca una lista de números de página separados por coma): pageRemover.pagesToDelete=Páginas a eliminar (introducir una lista de números de página separados por coma):
pageRemover.submit=Eliminar Páginas pageRemover.submit=Eliminar Páginas
#rotate #rotate
rotate.title=Rotar PDF rotate.title=Rotar PDF
rotate.header=Rotar PDF rotate.header=Rotar PDF
rotate.SeleccionaAngle=Seleccionar ángulo de rotación (múltiple de 90 grados): rotate.SeleccionaAngle=Seleccionar ángulo de rotación (múltiplo de 90 grados):
rotate.submit=Rotar rotate.submit=Rotar
@ -306,7 +306,7 @@ rotate.submit=Rotar
#merge #merge
split.title=Dividir PDF split.title=Dividir PDF
split.header=Dividir PDF split.header=Dividir PDF
split.desc.1=Los números que selecciones son el número de página en el que desea hacer una división split.desc.1=Los números que seleccione son el número de página en el que desea hacer una división
split.desc.2=Como tal, seleccionar 1,3,7-8 dividiría un documento de 10 páginas en 6 archivos PDF separados con: split.desc.2=Como tal, seleccionar 1,3,7-8 dividiría un documento de 10 páginas en 6 archivos PDF separados con:
split.desc.3=Documento #1: Página 1 split.desc.3=Documento #1: Página 1
split.desc.4=Documento #2: Páginas 2 y 3 split.desc.4=Documento #2: Páginas 2 y 3
@ -314,7 +314,7 @@ split.desc.5=Documento #3: Páginas 4, 5 y 6
split.desc.6=Documento #4: Página 7 split.desc.6=Documento #4: Página 7
split.desc.7=Documento #5: Página 8 split.desc.7=Documento #5: Página 8
split.desc.8=Documento #6: Páginas 9 y 10 split.desc.8=Documento #6: Páginas 9 y 10
split.splitPages=Introduce las páginas para dividir: split.splitPages=Introducir las páginas para dividir:
split.submit=Dividir split.submit=Dividir
@ -324,7 +324,7 @@ imageToPDF.header=Imagen a PDF
imageToPDF.submit=Convertir imageToPDF.submit=Convertir
imageToPDF.selectText.1=Estirar para ajustar imageToPDF.selectText.1=Estirar para ajustar
imageToPDF.selectText.2=Rotación automática del PDF imageToPDF.selectText.2=Rotación automática del PDF
imageToPDF.selectText.3=Lógica de archivos múltiples (Únicamente activado si funciona con multiples imágenes) imageToPDF.selectText.3=Lógica de archivos múltiples (únicamente activado si funciona con multiples imágenes)
imageToPDF.selectText.4=Unir en un único archivo PDF imageToPDF.selectText.4=Unir en un único archivo PDF
imageToPDF.selectText.5=Convertir a PDFs separados imageToPDF.selectText.5=Convertir a PDFs separados
@ -333,21 +333,21 @@ pdfToImage.title=PDF a Imagen
pdfToImage.header=PDF a Imagen pdfToImage.header=PDF a Imagen
pdfToImage.selectText=Formato de Imagen pdfToImage.selectText=Formato de Imagen
pdfToImage.singleOrMultiple=Tipo resultante de imagen pdfToImage.singleOrMultiple=Tipo resultante de imagen
pdfToImage.single=Una Imagen Grande Única pdfToImage.single=Una única imagen grande
pdfToImage.multi=Múltiples Imágenes pdfToImage.multi=Múltiples imágenes
pdfToImage.colorType=Tipo de color pdfToImage.colorType=Tipo de color
pdfToImage.color=Color pdfToImage.color=Color
pdfToImage.grey=Escala de Grises pdfToImage.grey=Escala de grises
pdfToImage.blackwhite=Blanco y Negro (¡Puedes perder datos!) pdfToImage.blackwhite=Blanco y Negro (¡Puede perder datos!)
pdfToImage.submit=Convertir pdfToImage.submit=Convertir
#addPassword #addPassword
addPassword.title=Añadir Contraseña addPassword.title=Añadir contraseña
addPassword.header=Añadir contraseña (Encriptar) addPassword.header=Añadir contraseña (encriptar)
addPassword.selectText.1=Seleccionar PDF para encriptar addPassword.selectText.1=Seleccionar PDF para encriptar
addPassword.selectText.2=Contraseña addPassword.selectText.2=Contraseña
addPassword.selectText.3=Longitud de la clave de cifrado addPassword.selectText.3=Longitud de la clave de cifrado
addPassword.selectText.4=Valores altos son más fuertes, pero valores bajos tienen mejor compatibilidad. addPassword.selectText.4=Valores altos son más fuertes, pero valores bajos tienen mejor compatibilidad
addPassword.selectText.5=Permisos para establecer addPassword.selectText.5=Permisos para establecer
addPassword.selectText.6=Impedir el ensamblaje del documento addPassword.selectText.6=Impedir el ensamblaje del documento
addPassword.selectText.7=Impedir la extracción de contenido addPassword.selectText.7=Impedir la extracción de contenido
@ -357,9 +357,9 @@ addPassword.selectText.10=Impedir modificación
addPassword.selectText.11=Impedir modificación de anotaciones addPassword.selectText.11=Impedir modificación de anotaciones
addPassword.selectText.12=Impedir imprimir addPassword.selectText.12=Impedir imprimir
addPassword.selectText.13=Impedir imprimir diferentes formatos addPassword.selectText.13=Impedir imprimir diferentes formatos
addPassword.selectText.14=Owner Password addPassword.selectText.14=Contraseña
addPassword.selectText.15=Restricts what can be done with the document once it is opened (Not supported by all readers) addPassword.selectText.15=Restringe qué se puede hacer con el documento una vez abierto (no soportado por todos los lectores)
addPassword.selectText.16=Restricts the opening of the document itself addPassword.selectText.16=Restringe la apertura del propio documento
addPassword.submit=Encriptar addPassword.submit=Encriptar
#watermark #watermark
@ -382,8 +382,8 @@ remove-watermark.selectText.2=Texto de la marca de agua:
remove-watermark.submit=Eliminar marca de agua remove-watermark.submit=Eliminar marca de agua
#Change permissions #Change permissions
permissions.title=Cambiar Permisos permissions.title=Cambiar permisos
permissions.header=Cambiar Permisos permissions.header=Cambiar permisos
permissions.warning=Advertencia: para que estos permisos no se puedan cambiar, se recomienda configurarlos con una contraseña a través de la página de cambio de contraseña permissions.warning=Advertencia: para que estos permisos no se puedan cambiar, se recomienda configurarlos con una contraseña a través de la página de cambio de contraseña
permissions.selectText.1=Seleccionar PDF para cambiar los permisos permissions.selectText.1=Seleccionar PDF para cambiar los permisos
permissions.selectText.2=Permisos a establecer permissions.selectText.2=Permisos a establecer
@ -399,21 +399,21 @@ permissions.submit=Cambiar
#remove password #remove password
removePassword.title=Eliminar contraseña removePassword.title=Eliminar contraseña
removePassword.header=Eliminar contraseña (Desencriptar) removePassword.header=Eliminar contraseña (desencriptar)
removePassword.selectText.1=Seleccionar PDF para Desencriptar removePassword.selectText.1=Seleccionar PDF para desencriptar
removePassword.selectText.2=Contraseña removePassword.selectText.2=Contraseña
removePassword.submit=Eliminar removePassword.submit=Eliminar
changeMetadata.title=Cambiar Metadatos changeMetadata.title=Cambiar metadatos
changeMetadata.header=Cambiar Metadatos changeMetadata.header=Cambiar metadatos
changeMetadata.selectText.1=Editar las variables que desea cambiar changeMetadata.selectText.1=Editar las variables que desea cambiar
changeMetadata.selectText.2=Eliminar todos los metadatos changeMetadata.selectText.2=Eliminar todos los metadatos
changeMetadata.selectText.3=Mostrar metadatos personalizados: changeMetadata.selectText.3=Mostrar metadatos personalizados:
changeMetadata.author=Autor: changeMetadata.author=Autor:
changeMetadata.creationDate=Fecha de Creación (aaaa/MM/dd HH:mm:ss): changeMetadata.creationDate=Fecha de creación (aaaa/MM/dd HH:mm:ss):
changeMetadata.creator=Creador: changeMetadata.creator=Creador:
changeMetadata.keywords=Palabras clave: changeMetadata.keywords=Palabras clave:
changeMetadata.modDate=Fecha de Modificación (aaaa/MM/dd HH:mm:ss): changeMetadata.modDate=Fecha de modificación (aaaa/MM/dd HH:mm:ss):
changeMetadata.producer=Productor: changeMetadata.producer=Productor:
changeMetadata.subject=Asunto: changeMetadata.subject=Asunto:
changeMetadata.title=Título: changeMetadata.title=Título:
@ -440,29 +440,29 @@ pdfToPDFA.submit=Convertir
PDFToWord.title=PDF a Word PDFToWord.title=PDF a Word
PDFToWord.header=PDF a Word PDFToWord.header=PDF a Word
PDFToWord.selectText.1=Formato de archivo de salida PDFToWord.selectText.1=Formato de archivo de salida
PDFToWord.credit=Este servicio utiliza LibreOffice para la conversión de archivos. PDFToWord.credit=Este servicio utiliza LibreOffice para la conversión de archivos
PDFToWord.submit=Convertir PDFToWord.submit=Convertir
PDFToPresentation.title=PDF a presentación PDFToPresentation.title=PDF a presentación
PDFToPresentation.header=PDF a presentación PDFToPresentation.header=PDF a presentación
PDFToPresentation.selectText.1=Formato de archivo de salida PDFToPresentation.selectText.1=Formato de archivo de salida
PDFToPresentation.credit=Este servicio utiliza LibreOffice para la conversión de archivos. PDFToPresentation.credit=Este servicio utiliza LibreOffice para la conversión de archivos
PDFToPresentation.submit=Convertir PDFToPresentation.submit=Convertir
PDFToText.title=PDF a TXT/RTF PDFToText.title=PDF a TXT/RTF
PDFToText.header=PDF a TXT/RTF PDFToText.header=PDF a TXT/RTF
PDFToText.selectText.1=Formato de archivo de salida PDFToText.selectText.1=Formato de archivo de salida
PDFToText.credit=Este servicio utiliza LibreOffice para la conversión de archivos. PDFToText.credit=Este servicio utiliza LibreOffice para la conversión de archivos
PDFToText.submit=Convertir PDFToText.submit=Convertir
PDFToHTML.title=PDF a HTML PDFToHTML.title=PDF a HTML
PDFToHTML.header=PDF a HTML PDFToHTML.header=PDF a HTML
PDFToHTML.credit=Este servicio utiliza LibreOffice para la conversión de archivos. PDFToHTML.credit=Este servicio utiliza LibreOffice para la conversión de archivos
PDFToHTML.submit=Convertir PDFToHTML.submit=Convertir
PDFToXML.title=PDF a XML PDFToXML.title=PDF a XML
PDFToXML.header=PDF a XML PDFToXML.header=PDF a XML
PDFToXML.credit=Este servicio utiliza LibreOffice para la conversión de archivos. PDFToXML.credit=Este servicio utiliza LibreOffice para la conversión de archivos
PDFToXML.submit=Convertir PDFToXML.submit=Convertir

View file

@ -62,7 +62,7 @@ class PdfContainer {
const files = e.target.files; const files = e.target.files;
this.fileName = files[0].name; this.fileName = files[0].name;
for (var i=0; i < files.length; i++) { for (var i=0; i < files.length; i++) {
this.addPdfFile(files[i], nextSiblingElement); await this.addPdfFile(files[i], nextSiblingElement);
} }
document.querySelectorAll(".enable-on-file").forEach(element => { document.querySelectorAll(".enable-on-file").forEach(element => {