mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-03 15:52:01 +00:00
Sanataize PDF improvements (#3251)
# Description of Changes Please provide a summary of the changes, including: - Make distinction between metadata removal and XMP metadata removal - Change file loaders to only edit metadata for certain ops Closes #(issue_number) --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details.
This commit is contained in:
parent
e2ba296320
commit
5ce941dda0
@ -86,7 +86,7 @@ public class MetadataController {
|
||||
allRequestParams = new java.util.HashMap<String, String>();
|
||||
}
|
||||
// Load the PDF file into a PDDocument
|
||||
PDDocument document = pdfDocumentFactory.load(pdfFile);
|
||||
PDDocument document = pdfDocumentFactory.load(pdfFile, true);
|
||||
|
||||
// Get the document information from the PDF
|
||||
PDDocumentInformation info = document.getDocumentInformation();
|
||||
|
@ -51,11 +51,12 @@ public class SanitizeController {
|
||||
MultipartFile inputFile = request.getFileInput();
|
||||
boolean removeJavaScript = request.isRemoveJavaScript();
|
||||
boolean removeEmbeddedFiles = request.isRemoveEmbeddedFiles();
|
||||
boolean removeXMPMetadata = request.isRemoveXMPMetadata();
|
||||
boolean removeMetadata = request.isRemoveMetadata();
|
||||
boolean removeLinks = request.isRemoveLinks();
|
||||
boolean removeFonts = request.isRemoveFonts();
|
||||
|
||||
PDDocument document = pdfDocumentFactory.load(inputFile);
|
||||
PDDocument document = pdfDocumentFactory.load(inputFile, true);
|
||||
if (removeJavaScript) {
|
||||
sanitizeJavaScript(document);
|
||||
}
|
||||
@ -64,10 +65,14 @@ public class SanitizeController {
|
||||
sanitizeEmbeddedFiles(document);
|
||||
}
|
||||
|
||||
if (removeMetadata) {
|
||||
sanitizeMetadata(document);
|
||||
if (removeXMPMetadata) {
|
||||
sanitizeXMPMetadata(document);
|
||||
}
|
||||
|
||||
if (removeMetadata) {
|
||||
sanitizeDocumentInfoMetadata(document);
|
||||
}
|
||||
|
||||
if (removeLinks) {
|
||||
sanitizeLinks(document);
|
||||
}
|
||||
@ -145,7 +150,7 @@ public class SanitizeController {
|
||||
}
|
||||
}
|
||||
|
||||
private void sanitizeMetadata(PDDocument document) {
|
||||
private void sanitizeXMPMetadata(PDDocument document) {
|
||||
if (document.getDocumentCatalog() != null) {
|
||||
PDMetadata metadata = document.getDocumentCatalog().getMetadata();
|
||||
if (metadata != null) {
|
||||
@ -153,6 +158,16 @@ public class SanitizeController {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void sanitizeDocumentInfoMetadata(PDDocument document) {
|
||||
PDDocumentInformation docInfo = document.getDocumentInformation();
|
||||
if (docInfo != null) {
|
||||
PDDocumentInformation newInfo = new PDDocumentInformation();
|
||||
document.setDocumentInformation(newInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void sanitizeLinks(PDDocument document) throws IOException {
|
||||
for (PDPage page : document.getPages()) {
|
||||
|
@ -17,9 +17,12 @@ public class SanitizePdfRequest extends PDFFile {
|
||||
@Schema(description = "Remove embedded files from the PDF", defaultValue = "false")
|
||||
private boolean removeEmbeddedFiles;
|
||||
|
||||
@Schema(description = "Remove metadata from the PDF", defaultValue = "false")
|
||||
private boolean removeMetadata;
|
||||
@Schema(description = "Remove XMP metadata from the PDF", defaultValue = "false")
|
||||
private boolean removeXMPMetadata;
|
||||
|
||||
@Schema(description = "Remove document info metadata from the PDF", defaultValue = "false")
|
||||
private boolean removeMetadata;
|
||||
|
||||
@Schema(description = "Remove links from the PDF", defaultValue = "false")
|
||||
private boolean removeLinks;
|
||||
|
||||
|
@ -68,10 +68,18 @@ public class CustomPDFDocumentFactory {
|
||||
}
|
||||
|
||||
/**
|
||||
* Main entry point for loading a PDF document from a file. Automatically selects the most
|
||||
* appropriate loading strategy.
|
||||
*/
|
||||
* Main entry point for loading a PDF document from a file. Automatically selects the most
|
||||
* appropriate loading strategy.
|
||||
*/
|
||||
public PDDocument load(File file) throws IOException {
|
||||
return load(file, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Main entry point for loading a PDF document from a file with read-only option.
|
||||
* Automatically selects the most appropriate loading strategy.
|
||||
*/
|
||||
public PDDocument load(File file, boolean readOnly) throws IOException {
|
||||
if (file == null) {
|
||||
throw new IllegalArgumentException("File cannot be null");
|
||||
}
|
||||
@ -79,14 +87,26 @@ public class CustomPDFDocumentFactory {
|
||||
long fileSize = file.length();
|
||||
log.debug("Loading PDF from file, size: {}MB", fileSize / (1024 * 1024));
|
||||
|
||||
return loadAdaptively(file, fileSize);
|
||||
PDDocument doc = loadAdaptively(file, fileSize);
|
||||
if (!readOnly) {
|
||||
postProcessDocument(doc);
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Main entry point for loading a PDF document from a Path. Automatically selects the most
|
||||
* appropriate loading strategy.
|
||||
*/
|
||||
* Main entry point for loading a PDF document from a Path. Automatically selects the most
|
||||
* appropriate loading strategy.
|
||||
*/
|
||||
public PDDocument load(Path path) throws IOException {
|
||||
return load(path, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Main entry point for loading a PDF document from a Path with read-only option.
|
||||
* Automatically selects the most appropriate loading strategy.
|
||||
*/
|
||||
public PDDocument load(Path path, boolean readOnly) throws IOException {
|
||||
if (path == null) {
|
||||
throw new IllegalArgumentException("File cannot be null");
|
||||
}
|
||||
@ -94,11 +114,20 @@ public class CustomPDFDocumentFactory {
|
||||
long fileSize = Files.size(path);
|
||||
log.debug("Loading PDF from file, size: {}MB", fileSize / (1024 * 1024));
|
||||
|
||||
return loadAdaptively(path.toFile(), fileSize);
|
||||
PDDocument doc = loadAdaptively(path.toFile(), fileSize);
|
||||
if (!readOnly) {
|
||||
postProcessDocument(doc);
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
/** Load a PDF from byte array with automatic optimization. */
|
||||
public PDDocument load(byte[] input) throws IOException {
|
||||
return load(input, false);
|
||||
}
|
||||
|
||||
/** Load a PDF from byte array with automatic optimization and read-only option. */
|
||||
public PDDocument load(byte[] input, boolean readOnly) throws IOException {
|
||||
if (input == null) {
|
||||
throw new IllegalArgumentException("Input bytes cannot be null");
|
||||
}
|
||||
@ -106,11 +135,20 @@ public class CustomPDFDocumentFactory {
|
||||
long dataSize = input.length;
|
||||
log.debug("Loading PDF from byte array, size: {}MB", dataSize / (1024 * 1024));
|
||||
|
||||
return loadAdaptively(input, dataSize);
|
||||
PDDocument doc = loadAdaptively(input, dataSize);
|
||||
if (!readOnly) {
|
||||
postProcessDocument(doc);
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
/** Load a PDF from InputStream with automatic optimization. */
|
||||
public PDDocument load(InputStream input) throws IOException {
|
||||
return load(input, false);
|
||||
}
|
||||
|
||||
/** Load a PDF from InputStream with automatic optimization and read-only option. */
|
||||
public PDDocument load(InputStream input, boolean readOnly) throws IOException {
|
||||
if (input == null) {
|
||||
throw new IllegalArgumentException("InputStream cannot be null");
|
||||
}
|
||||
@ -119,11 +157,20 @@ public class CustomPDFDocumentFactory {
|
||||
Path tempFile = createTempFile("pdf-stream-");
|
||||
|
||||
Files.copy(input, tempFile, StandardCopyOption.REPLACE_EXISTING);
|
||||
return loadAdaptively(tempFile.toFile(), Files.size(tempFile));
|
||||
PDDocument doc = loadAdaptively(tempFile.toFile(), Files.size(tempFile));
|
||||
if (!readOnly) {
|
||||
postProcessDocument(doc);
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
/** Load with password from InputStream */
|
||||
public PDDocument load(InputStream input, String password) throws IOException {
|
||||
return load(input, password, false);
|
||||
}
|
||||
|
||||
/** Load with password from InputStream and read-only option */
|
||||
public PDDocument load(InputStream input, String password, boolean readOnly) throws IOException {
|
||||
if (input == null) {
|
||||
throw new IllegalArgumentException("InputStream cannot be null");
|
||||
}
|
||||
@ -132,9 +179,54 @@ public class CustomPDFDocumentFactory {
|
||||
Path tempFile = createTempFile("pdf-stream-");
|
||||
|
||||
Files.copy(input, tempFile, StandardCopyOption.REPLACE_EXISTING);
|
||||
return loadAdaptivelyWithPassword(tempFile.toFile(), Files.size(tempFile), password);
|
||||
PDDocument doc = loadAdaptivelyWithPassword(tempFile.toFile(), Files.size(tempFile), password);
|
||||
if (!readOnly) {
|
||||
postProcessDocument(doc);
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
/** Load from a file path string */
|
||||
public PDDocument load(String path) throws IOException {
|
||||
return load(path, false);
|
||||
}
|
||||
|
||||
/** Load from a file path string with read-only option */
|
||||
public PDDocument load(String path, boolean readOnly) throws IOException {
|
||||
return load(new File(path), readOnly);
|
||||
}
|
||||
|
||||
/** Load from a PDFFile object */
|
||||
public PDDocument load(PDFFile pdfFile) throws IOException {
|
||||
return load(pdfFile, false);
|
||||
}
|
||||
|
||||
/** Load from a PDFFile object with read-only option */
|
||||
public PDDocument load(PDFFile pdfFile, boolean readOnly) throws IOException {
|
||||
return load(pdfFile.getFileInput(), readOnly);
|
||||
}
|
||||
|
||||
/** Load from a MultipartFile */
|
||||
public PDDocument load(MultipartFile pdfFile) throws IOException {
|
||||
return load(pdfFile, false);
|
||||
}
|
||||
|
||||
/** Load from a MultipartFile with read-only option */
|
||||
public PDDocument load(MultipartFile pdfFile, boolean readOnly) throws IOException {
|
||||
return load(pdfFile.getInputStream(), readOnly);
|
||||
|
||||
}
|
||||
|
||||
/** Load with password from MultipartFile */
|
||||
public PDDocument load(MultipartFile fileInput, String password) throws IOException {
|
||||
return load(fileInput, password, false);
|
||||
}
|
||||
|
||||
/** Load with password from MultipartFile with read-only option */
|
||||
public PDDocument load(MultipartFile fileInput, String password, boolean readOnly) throws IOException {
|
||||
return load(fileInput.getInputStream(), password, readOnly);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the appropriate caching strategy based on file size and available memory. This
|
||||
* common method is used by both password and non-password loading paths.
|
||||
@ -197,8 +289,6 @@ public class CustomPDFDocumentFactory {
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unsupported source type: " + source.getClass());
|
||||
}
|
||||
|
||||
postProcessDocument(document);
|
||||
return document;
|
||||
}
|
||||
|
||||
@ -220,8 +310,6 @@ public class CustomPDFDocumentFactory {
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unsupported source type: " + source.getClass());
|
||||
}
|
||||
|
||||
postProcessDocument(document);
|
||||
return document;
|
||||
}
|
||||
|
||||
@ -384,23 +472,4 @@ public class CustomPDFDocumentFactory {
|
||||
}
|
||||
}
|
||||
|
||||
/** Load from a file path string */
|
||||
public PDDocument load(String path) throws IOException {
|
||||
return load(new File(path));
|
||||
}
|
||||
|
||||
/** Load from a PDFFile object */
|
||||
public PDDocument load(PDFFile pdfFile) throws IOException {
|
||||
return load(pdfFile.getFileInput());
|
||||
}
|
||||
|
||||
/** Load from a MultipartFile */
|
||||
public PDDocument load(MultipartFile pdfFile) throws IOException {
|
||||
return load(pdfFile.getInputStream());
|
||||
}
|
||||
|
||||
/** Load with password from MultipartFile */
|
||||
public PDDocument load(MultipartFile fileInput, String password) throws IOException {
|
||||
return load(fileInput.getInputStream(), password);
|
||||
}
|
||||
}
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=تنظيف PDF
|
||||
sanitizePDF.header=تنظيف ملف PDF
|
||||
sanitizePDF.selectText.1=إزالة إجراءات جافا سكريبت
|
||||
sanitizePDF.selectText.2=إزالة الملفات المضمنة
|
||||
sanitizePDF.selectText.3=إزالة البيانات الوصفية
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=إزالة الروابط
|
||||
sanitizePDF.selectText.5=إزالة الخطوط
|
||||
sanitizePDF.submit=تنظيف PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF-i Təmizlə
|
||||
sanitizePDF.header=PDF Faylını Təmizlə
|
||||
sanitizePDF.selectText.1=JavaScript Fəaliyyətlərini Sil
|
||||
sanitizePDF.selectText.2=Daxil Edilmiş Faylları Sil
|
||||
sanitizePDF.selectText.3=Metadatanı Sil
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Linkləri Sil
|
||||
sanitizePDF.selectText.5=Şriftləri Sil
|
||||
sanitizePDF.submit=PDF-i Təmizlə
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Дезинфектирай PDF
|
||||
sanitizePDF.header=Дезинфектира PDF файл
|
||||
sanitizePDF.selectText.1=Премахва JavaScript действия
|
||||
sanitizePDF.selectText.2=Премахва вградени файлове
|
||||
sanitizePDF.selectText.3=Премахва метаданни
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Премахва линкове
|
||||
sanitizePDF.selectText.5=Премахва шрифтове
|
||||
sanitizePDF.submit=Дезинфектирай PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Neteja PDF
|
||||
sanitizePDF.header=Neteja un fitxer PDF
|
||||
sanitizePDF.selectText.1=Elimina accions JavaScript
|
||||
sanitizePDF.selectText.2=Elimina fitxers incrustats
|
||||
sanitizePDF.selectText.3=Elimina metadades
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Elimina enllaços
|
||||
sanitizePDF.selectText.5=Elimina fonts
|
||||
sanitizePDF.submit=Neteja PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Sanitizovat PDF
|
||||
sanitizePDF.header=Sanitizovat PDF soubor
|
||||
sanitizePDF.selectText.1=Odstranit JavaScript akce
|
||||
sanitizePDF.selectText.2=Odstranit vložené soubory
|
||||
sanitizePDF.selectText.3=Odstranit metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Odstranit odkazy
|
||||
sanitizePDF.selectText.5=Odstranit písma
|
||||
sanitizePDF.submit=Sanitizovat PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Rens PDF
|
||||
sanitizePDF.header=Rens en PDF-fil
|
||||
sanitizePDF.selectText.1=Fjern JavaScript-handlinger
|
||||
sanitizePDF.selectText.2=Fjern indlejrede filer
|
||||
sanitizePDF.selectText.3=Fjern metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Fjern links
|
||||
sanitizePDF.selectText.5=Fjern skrifttyper
|
||||
sanitizePDF.submit=Rens PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF Bereinigen
|
||||
sanitizePDF.header=PDF Bereinigen
|
||||
sanitizePDF.selectText.1=Javascript-Aktionen entfernen
|
||||
sanitizePDF.selectText.2=Eingebettete Dateien entfernen
|
||||
sanitizePDF.selectText.3=Metadaten entfernen
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Links entfernen
|
||||
sanitizePDF.selectText.5=Schriftarten entfernen
|
||||
sanitizePDF.submit=Bereinigen
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Εξυγίανση PDF
|
||||
sanitizePDF.header=Εξυγίανση αρχείου PDF
|
||||
sanitizePDF.selectText.1=Αφαίρεση ενεργειών JavaScript
|
||||
sanitizePDF.selectText.2=Αφαίρεση ενσωματωμένων αρχείων
|
||||
sanitizePDF.selectText.3=Αφαίρεση μεταδεδομένων
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Αφαίρεση συνδέσμων
|
||||
sanitizePDF.selectText.5=Αφαίρεση γραμματοσειρών
|
||||
sanitizePDF.submit=Εξυγίανση PDF
|
||||
|
@ -733,9 +733,10 @@ sanitizePDF.title=Sanitize PDF
|
||||
sanitizePDF.header=Sanitize a PDF file
|
||||
sanitizePDF.selectText.1=Remove JavaScript actions
|
||||
sanitizePDF.selectText.2=Remove embedded files
|
||||
sanitizePDF.selectText.3=Remove metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Remove links
|
||||
sanitizePDF.selectText.5=Remove fonts
|
||||
sanitizePDF.selectText.6=Remove Document Info Metadata
|
||||
sanitizePDF.submit=Sanitize PDF
|
||||
|
||||
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Sanitize PDF
|
||||
sanitizePDF.header=Sanitize a PDF file
|
||||
sanitizePDF.selectText.1=Remove JavaScript actions
|
||||
sanitizePDF.selectText.2=Remove embedded files
|
||||
sanitizePDF.selectText.3=Remove metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Remove links
|
||||
sanitizePDF.selectText.5=Remove fonts
|
||||
sanitizePDF.submit=Sanitize PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Limpiar archivo PDF
|
||||
sanitizePDF.header=Limpiar un archivo PDF
|
||||
sanitizePDF.selectText.1=Eliminar código JavaScript
|
||||
sanitizePDF.selectText.2=Eliminar archivos incrustados
|
||||
sanitizePDF.selectText.3=Eliminar metadatos
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Eliminar enlaces
|
||||
sanitizePDF.selectText.5=Eliminar fuentes
|
||||
sanitizePDF.submit=Limpiar PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF-a desinfektatu
|
||||
sanitizePDF.header=PDF fitxategi bat desinfektatu
|
||||
sanitizePDF.selectText.1=Ezabatu JavaScript akzioak
|
||||
sanitizePDF.selectText.2=Ezabatu embedded fitxategiak
|
||||
sanitizePDF.selectText.3=Ezabatu metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Ezabatu esketak
|
||||
sanitizePDF.selectText.5=Ezabatu iturri letrak
|
||||
sanitizePDF.submit=Desinfektatu PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=پاکسازی PDF
|
||||
sanitizePDF.header=پاکسازی یک فایل PDF
|
||||
sanitizePDF.selectText.1=حذف عملیات جاوااسکریپت
|
||||
sanitizePDF.selectText.2=حذف فایلهای جاسازی شده
|
||||
sanitizePDF.selectText.3=حذف متادادهها
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=حذف لینکها
|
||||
sanitizePDF.selectText.5=حذف فونتها
|
||||
sanitizePDF.submit=پاکسازی PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Assainir
|
||||
sanitizePDF.header=Assainir
|
||||
sanitizePDF.selectText.1=Supprimer les actions JavaScript
|
||||
sanitizePDF.selectText.2=Supprimer les fichiers intégrés
|
||||
sanitizePDF.selectText.3=Supprimer les métadonnées
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Supprimer les liens
|
||||
sanitizePDF.selectText.5=Supprimer les polices
|
||||
sanitizePDF.submit=Assainir
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF sláintíocht
|
||||
sanitizePDF.header=Glanadh comhad PDF
|
||||
sanitizePDF.selectText.1=Bain gníomhartha JavaScript
|
||||
sanitizePDF.selectText.2=Bain comhaid leabaithe
|
||||
sanitizePDF.selectText.3=Bain meiteashonraí
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Bain naisc
|
||||
sanitizePDF.selectText.5=Bain clónna
|
||||
sanitizePDF.submit=PDF sláintíocht
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF सैनिटाइज़ करें
|
||||
sanitizePDF.header=PDF फ़ाइल सैनिटाइज़ करें
|
||||
sanitizePDF.selectText.1=जावास्क्रिप्ट क्रियाएं हटाएं
|
||||
sanitizePDF.selectText.2=एम्बेडेड फ़ाइलें हटाएं
|
||||
sanitizePDF.selectText.3=मेटाडेटा हटाएं
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=लिंक हटाएं
|
||||
sanitizePDF.selectText.5=फ़ॉन्ट्स हटाएं
|
||||
sanitizePDF.submit=PDF सैनिटाइज़ करें
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Sanirajte PDF
|
||||
sanitizePDF.header=Sanirajte PDF datoteku
|
||||
sanitizePDF.selectText.1=Ukloni JavaScript akcije
|
||||
sanitizePDF.selectText.2=Ukloni ugrađene datoteke
|
||||
sanitizePDF.selectText.3=Ukloni metapodatke
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Ukloni poveznice
|
||||
sanitizePDF.selectText.5=Uklonite fontove
|
||||
sanitizePDF.submit=Sanirajte PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF tisztítása
|
||||
sanitizePDF.header=PDF fájl tisztí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.3=Remove XMP metadata
|
||||
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
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Bersihkan PDF
|
||||
sanitizePDF.header=Membersihkan berkas PDF
|
||||
sanitizePDF.selectText.1=Hapus tindakan JavaScript
|
||||
sanitizePDF.selectText.2=Hapus berkas yang disematkan
|
||||
sanitizePDF.selectText.3=Hapus metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Hapus tautan
|
||||
sanitizePDF.selectText.5=Hapus font
|
||||
sanitizePDF.submit=Membersihkan PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Pulire PDF
|
||||
sanitizePDF.header=Pulisci un file PDF
|
||||
sanitizePDF.selectText.1=Rimuovi le azioni JavaScript
|
||||
sanitizePDF.selectText.2=Rimuovi i file incorporati
|
||||
sanitizePDF.selectText.3=Rimuovi i metadati
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Rimuovi collegamenti
|
||||
sanitizePDF.selectText.5=Rimuovi i font
|
||||
sanitizePDF.submit=Pulisci PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDFをサニタイズ
|
||||
sanitizePDF.header=PDFファイルをサニタイズ
|
||||
sanitizePDF.selectText.1=JavaScriptアクションを削除
|
||||
sanitizePDF.selectText.2=埋め込みファイルを削除
|
||||
sanitizePDF.selectText.3=メタデータを削除
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=リンクを削除
|
||||
sanitizePDF.selectText.5=フォントを削除
|
||||
sanitizePDF.submit=PDFをサニタイズする
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF 정리
|
||||
sanitizePDF.header=PDF 파일 정리
|
||||
sanitizePDF.selectText.1=JavaScript 작업 제거
|
||||
sanitizePDF.selectText.2=임베디드 파일 제거
|
||||
sanitizePDF.selectText.3=메타데이터 제거
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=링크 제거
|
||||
sanitizePDF.selectText.5=글꼴 제거
|
||||
sanitizePDF.submit=PDF 정리
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF opschonen
|
||||
sanitizePDF.header=Een PDF-bestand opschonen
|
||||
sanitizePDF.selectText.1=Verwijder Javascript-acties
|
||||
sanitizePDF.selectText.2=Verwijder ingebedde bestanden
|
||||
sanitizePDF.selectText.3=Verwijder metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Verwijder links
|
||||
sanitizePDF.selectText.5=Verwijder lettertypen
|
||||
sanitizePDF.submit=PDF opschonen
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Rensker PDF
|
||||
sanitizePDF.header=Rensker en PDF fil
|
||||
sanitizePDF.selectText.1=Fjern JavaScript-handlinger
|
||||
sanitizePDF.selectText.2=Fjern innebygde filer
|
||||
sanitizePDF.selectText.3=Fjern metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Fjern lenker
|
||||
sanitizePDF.selectText.5=Fjern skrifter
|
||||
sanitizePDF.submit=Rensk PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Dezynfekuj PDF
|
||||
sanitizePDF.header=Dezynfekuj dokument PDF
|
||||
sanitizePDF.selectText.1=Usuń elementy JavaScript
|
||||
sanitizePDF.selectText.2=Usuń załączone pliki
|
||||
sanitizePDF.selectText.3=Usuń metadane
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Usuń linki
|
||||
sanitizePDF.selectText.5=Usuń czcionki
|
||||
sanitizePDF.submit=Dezynfekuj PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Higienizar
|
||||
sanitizePDF.header=Higienizar
|
||||
sanitizePDF.selectText.1=Remover scripts de JavaScript.
|
||||
sanitizePDF.selectText.2=Remover arquivos embutidos.
|
||||
sanitizePDF.selectText.3=Remover metadados.
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Remover links.
|
||||
sanitizePDF.selectText.5=Remover fontes.
|
||||
sanitizePDF.submit=Higienizar PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Sanitizar PDF
|
||||
sanitizePDF.header=Sanitizar um ficheiro PDF
|
||||
sanitizePDF.selectText.1=Remover ações JavaScript
|
||||
sanitizePDF.selectText.2=Remover ficheiros incorporados
|
||||
sanitizePDF.selectText.3=Remover metadados
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Remover ligações
|
||||
sanitizePDF.selectText.5=Remover tipos de letra
|
||||
sanitizePDF.submit=Sanitizar PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Igienizează PDF
|
||||
sanitizePDF.header=Igienizează un fișier PDF
|
||||
sanitizePDF.selectText.1=Elimină acțiunile JavaScript
|
||||
sanitizePDF.selectText.2=Elimină fișierele încorporate
|
||||
sanitizePDF.selectText.3=Elimină metadatele
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Elimină link-urile
|
||||
sanitizePDF.selectText.5=Elimină fonturile
|
||||
sanitizePDF.submit=Igienizează PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Очистить PDF
|
||||
sanitizePDF.header=Очистить PDF-файл
|
||||
sanitizePDF.selectText.1=Удалить JavaScript-действия
|
||||
sanitizePDF.selectText.2=Удалить встроенные файлы
|
||||
sanitizePDF.selectText.3=Удалить метаданные
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Удалить ссылки
|
||||
sanitizePDF.selectText.5=Удалить шрифты
|
||||
sanitizePDF.submit=Очистить PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Vyčistiť PDF
|
||||
sanitizePDF.header=Vyčistiť PDF súbor
|
||||
sanitizePDF.selectText.1=Odstrániť JavaScript akcie
|
||||
sanitizePDF.selectText.2=Odstrániť vložené súbory
|
||||
sanitizePDF.selectText.3=Odstrániť metadáta
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Odstrániť odkazy
|
||||
sanitizePDF.selectText.5=Odstrániť fonty
|
||||
sanitizePDF.submit=Vyčistiť PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Prečisti PDF
|
||||
sanitizePDF.header=Prečisti datoteko PDF
|
||||
sanitizePDF.selectText.1=Odstrani dejanja JavaScript
|
||||
sanitizePDF.selectText.2=Odstrani vdelane datoteke
|
||||
sanitizePDF.selectText.3=Odstrani metapodatke
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Odstrani povezave
|
||||
sanitizePDF.selectText.5=Odstrani pisave
|
||||
sanitizePDF.submit=Prečisti PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Sanitizacija PDF-a
|
||||
sanitizePDF.header=Sanitizacija PDF fajla
|
||||
sanitizePDF.selectText.1=Ukloni JavaScript akcije
|
||||
sanitizePDF.selectText.2=Ukloni ugrađene fajlove
|
||||
sanitizePDF.selectText.3=Ukloni metapodatke
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Ukloni linkove
|
||||
sanitizePDF.selectText.5=Ukloni fontove
|
||||
sanitizePDF.submit=Sanitizuj PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Sanera PDF
|
||||
sanitizePDF.header=Sanera en PDF-fil
|
||||
sanitizePDF.selectText.1=Ta bort JavaScript-åtgärder
|
||||
sanitizePDF.selectText.2=Ta bort inbäddade filer
|
||||
sanitizePDF.selectText.3=Ta bort metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Ta bort länkar
|
||||
sanitizePDF.selectText.5=Ta bort typsnitt
|
||||
sanitizePDF.submit=Sanera PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=ทำความสะอาด PDF
|
||||
sanitizePDF.header=ทำความสะอาดไฟล์ PDF
|
||||
sanitizePDF.selectText.1=ลบการกระทำ JavaScript
|
||||
sanitizePDF.selectText.2=ลบไฟล์ฝังตัว
|
||||
sanitizePDF.selectText.3=ลบข้อมูลเมตา
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=ลบลิงก์
|
||||
sanitizePDF.selectText.5=ลบฟอนต์
|
||||
sanitizePDF.submit=ทำความสะอาด PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF'i Temizle
|
||||
sanitizePDF.header=PDF dosyasını temizle
|
||||
sanitizePDF.selectText.1=JavaScript işlemlerini kaldır
|
||||
sanitizePDF.selectText.2=Gömülü dosyaları kaldır
|
||||
sanitizePDF.selectText.3=Üst veriyi kaldır
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Linkleri kaldır
|
||||
sanitizePDF.selectText.5=Fontları kaldır
|
||||
sanitizePDF.submit=PDF'i Temizle
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Дезінфекція PDF
|
||||
sanitizePDF.header=Дезінфекція PDF файлу
|
||||
sanitizePDF.selectText.1=Видалити JavaScript
|
||||
sanitizePDF.selectText.2=Видалити вбудовані файли
|
||||
sanitizePDF.selectText.3=Видалити метадані
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Видалити посилання
|
||||
sanitizePDF.selectText.5=Видалити шрифти
|
||||
sanitizePDF.submit=Дезінфекція
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=Làm sạch PDF
|
||||
sanitizePDF.header=Làm sạch tệp PDF
|
||||
sanitizePDF.selectText.1=Xóa các hành động JavaScript
|
||||
sanitizePDF.selectText.2=Xóa các tệp nhúng
|
||||
sanitizePDF.selectText.3=Xóa metadata
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=Xóa liên kết
|
||||
sanitizePDF.selectText.5=Xóa phông chữ
|
||||
sanitizePDF.submit=Làm sạch PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=PDF གཙང་སེལ།
|
||||
sanitizePDF.header=PDF ཡིག་ཆ་གཙང་སེལ།
|
||||
sanitizePDF.selectText.1=Javascript བྱ་འགུལ་སུབ་པ།
|
||||
sanitizePDF.selectText.2=ནང་འཇུག་ཡིག་ཆ་སུབ་པ།
|
||||
sanitizePDF.selectText.3=གནས་ཆ་སུབ་པ།
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=འབྲེལ་ཐག་སུབ་པ།
|
||||
sanitizePDF.selectText.5=ཡིག་གཟུགས་སུབ་པ།
|
||||
sanitizePDF.submit=PDF གཙང་སེལ།
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=清理 PDF
|
||||
sanitizePDF.header=清理 PDF 文件
|
||||
sanitizePDF.selectText.1=移除 JavaScript 操作
|
||||
sanitizePDF.selectText.2=移除嵌入的文件
|
||||
sanitizePDF.selectText.3=移除元数据
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=移除链接
|
||||
sanitizePDF.selectText.5=移除字体
|
||||
sanitizePDF.submit=清理PDF
|
||||
|
@ -733,7 +733,7 @@ sanitizePDF.title=清理 PDF
|
||||
sanitizePDF.header=清理 PDF 檔案
|
||||
sanitizePDF.selectText.1=移除 JavaScript 操作
|
||||
sanitizePDF.selectText.2=移除內嵌文件
|
||||
sanitizePDF.selectText.3=移除中繼資料
|
||||
sanitizePDF.selectText.3=Remove XMP metadata
|
||||
sanitizePDF.selectText.4=移除連結
|
||||
sanitizePDF.selectText.5=移除字型
|
||||
sanitizePDF.submit=清理 PDF
|
||||
|
@ -29,8 +29,12 @@
|
||||
<label for="removeEmbeddedFiles" th:text="#{sanitizePDF.selectText.2}"></label>
|
||||
</div>
|
||||
<div class="form-check ms-3">
|
||||
<input type="checkbox" id="removeMetadata" name="removeMetadata" checked>
|
||||
<label for="removeMetadata" th:text="#{sanitizePDF.selectText.3}"></label>
|
||||
<input type="checkbox" id="removeXMPMetadata" name="removeXMPMetadata">
|
||||
<label for="removeXMPMetadata" th:text="#{sanitizePDF.selectText.3}"></label>
|
||||
</div>
|
||||
<div class="form-check ms-3">
|
||||
<input type="checkbox" id="removeMetadata" name="removeMetadata">
|
||||
<label for="removeMetadata" th:text="#{sanitizePDF.selectText.6}"></label>
|
||||
</div>
|
||||
<div class="form-check ms-3">
|
||||
<input type="checkbox" id="removeLinks" name="removeLinks">
|
||||
|
Loading…
x
Reference in New Issue
Block a user