mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-05-11 16:55:54 +00:00
Remove read only from forms (#3423)
# Description of Changes Create new tool to remove read-only properties of form fields. - Added new html file to provide a page for the tool (misc/unlock-pdf-forms.html), as well as new endpoint (/unlock-pdf-forms) under config/EndpointConfiguration.java - Added the tool to the list of "view & edit" tools under the home page in home-legacy.html and navElements.html - Mapped the frontend in controller/web/OtherWebController.java - Created a new controller (controller/api/misc/UnlockPDFFormsController.java) to handle AcroForm /Ff flags, /Lock tags and XFA Forms, removing the read-only properties of all form fields of a PDF document. - Added language entries to all the language files, to correctly display the tool's title, header,description, etc. Closes #2965 --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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 - [x] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR)    ### Testing (if applicable) - [x] 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. --------- Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
This commit is contained in:
parent
9635e573d8
commit
715445a8dd
@ -164,6 +164,7 @@ public class EndpointConfiguration {
|
||||
addEndpointToGroup("Other", "sign");
|
||||
addEndpointToGroup("Other", "flatten");
|
||||
addEndpointToGroup("Other", "repair");
|
||||
addEndpointToGroup("Other", "unlock-pdf-forms");
|
||||
addEndpointToGroup("Other", REMOVE_BLANKS);
|
||||
addEndpointToGroup("Other", "remove-annotations");
|
||||
addEndpointToGroup("Other", "compare");
|
||||
|
@ -0,0 +1,124 @@
|
||||
package stirling.software.SPDF.controller.api.misc;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import org.apache.pdfbox.cos.*;
|
||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||
import org.apache.pdfbox.pdmodel.common.PDStream;
|
||||
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
|
||||
import org.apache.pdfbox.pdmodel.interactive.form.PDField;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import io.github.pixee.security.Filenames;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import stirling.software.SPDF.model.api.PDFFile;
|
||||
import stirling.software.SPDF.service.CustomPDFDocumentFactory;
|
||||
import stirling.software.SPDF.utils.WebResponseUtils;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/misc")
|
||||
@Slf4j
|
||||
@Tag(name = "Misc", description = "Miscellaneous APIs")
|
||||
public class UnlockPDFFormsController {
|
||||
private final CustomPDFDocumentFactory pdfDocumentFactory;
|
||||
|
||||
@Autowired
|
||||
public UnlockPDFFormsController(CustomPDFDocumentFactory pdfDocumentFactory) {
|
||||
this.pdfDocumentFactory = pdfDocumentFactory;
|
||||
}
|
||||
|
||||
@PostMapping(consumes = "multipart/form-data", value = "/unlock-pdf-forms")
|
||||
@Operation(
|
||||
summary = "Remove read-only property from form fields",
|
||||
description =
|
||||
"Removing read-only property from form fields making them fillable"
|
||||
+ "Input:PDF, Output:PDF. Type:SISO")
|
||||
public ResponseEntity<byte[]> unlockPDFForms(@ModelAttribute PDFFile file) {
|
||||
try (PDDocument document = pdfDocumentFactory.load(file)) {
|
||||
PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();
|
||||
|
||||
if (acroForm != null) {
|
||||
acroForm.setNeedAppearances(true);
|
||||
|
||||
for (PDField field : acroForm.getFieldTree()) {
|
||||
COSDictionary dict = field.getCOSObject();
|
||||
if (dict.containsKey(COSName.getPDFName("Lock"))) {
|
||||
dict.removeItem(COSName.getPDFName("Lock"));
|
||||
}
|
||||
int currentFlags = field.getFieldFlags();
|
||||
if ((currentFlags & 1) == 1) {
|
||||
int newFlags = currentFlags & ~1;
|
||||
field.setFieldFlags(newFlags);
|
||||
}
|
||||
}
|
||||
|
||||
COSBase xfaBase = acroForm.getCOSObject().getDictionaryObject(COSName.XFA);
|
||||
if (xfaBase != null) {
|
||||
try {
|
||||
if (xfaBase instanceof COSStream xfaStream) {
|
||||
InputStream is = xfaStream.createInputStream();
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
is.transferTo(baos);
|
||||
String xml = baos.toString(StandardCharsets.UTF_8);
|
||||
|
||||
xml = xml.replaceAll("access\\s*=\\s*\"readOnly\"", "access=\"open\"");
|
||||
|
||||
PDStream newStream =
|
||||
new PDStream(
|
||||
document,
|
||||
new ByteArrayInputStream(
|
||||
xml.getBytes(StandardCharsets.UTF_8)));
|
||||
acroForm.getCOSObject().setItem(COSName.XFA, newStream.getCOSObject());
|
||||
} else if (xfaBase instanceof COSArray xfaArray) {
|
||||
for (int i = 0; i < xfaArray.size(); i += 2) {
|
||||
COSBase namePart = xfaArray.getObject(i);
|
||||
COSBase streamPart = xfaArray.getObject(i + 1);
|
||||
if (namePart instanceof COSString
|
||||
&& streamPart instanceof COSStream stream) {
|
||||
InputStream is = stream.createInputStream();
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
is.transferTo(baos);
|
||||
String xml = baos.toString(StandardCharsets.UTF_8);
|
||||
|
||||
xml =
|
||||
xml.replaceAll(
|
||||
"access\\s*=\\s*\"readOnly\"",
|
||||
"access=\"open\"");
|
||||
|
||||
PDStream newStream =
|
||||
new PDStream(
|
||||
document,
|
||||
new ByteArrayInputStream(
|
||||
xml.getBytes(StandardCharsets.UTF_8)));
|
||||
xfaArray.set(i + 1, newStream.getCOSObject());
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("exception", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
String mergedFileName =
|
||||
file.getFileInput().getOriginalFilename().replaceFirst("[.][^.]+$", "")
|
||||
+ "_unlocked_forms.pdf";
|
||||
return WebResponseUtils.pdfDocToWebResponse(
|
||||
document, Filenames.toSimpleFileName(mergedFileName));
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -98,6 +98,13 @@ public class OtherWebController {
|
||||
return "misc/change-metadata";
|
||||
}
|
||||
|
||||
@GetMapping("/unlock-pdf-forms")
|
||||
@Hidden
|
||||
public String unlockPDFForms(Model model) {
|
||||
model.addAttribute("currentPage", "unlock-pdf-forms");
|
||||
return "misc/unlock-pdf-forms";
|
||||
}
|
||||
|
||||
@GetMapping("/compare")
|
||||
@Hidden
|
||||
public String compareForm(Model model) {
|
||||
|
@ -1,32 +1,34 @@
|
||||
package stirling.software.SPDF.controller.web;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import stirling.software.SPDF.model.ApplicationProperties;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
import stirling.software.SPDF.model.ApplicationProperties;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class UploadLimitService {
|
||||
|
||||
@Autowired
|
||||
private ApplicationProperties applicationProperties;
|
||||
@Autowired private ApplicationProperties applicationProperties;
|
||||
|
||||
public long getUploadLimit() {
|
||||
String maxUploadSize =
|
||||
applicationProperties.getSystem().getFileUploadLimit() != null
|
||||
? applicationProperties.getSystem().getFileUploadLimit()
|
||||
: "";
|
||||
applicationProperties.getSystem().getFileUploadLimit() != null
|
||||
? applicationProperties.getSystem().getFileUploadLimit()
|
||||
: "";
|
||||
|
||||
if (maxUploadSize.isEmpty()) {
|
||||
return 0;
|
||||
} else if (!Pattern.compile("^[1-9][0-9]{0,2}[KMGkmg][Bb]$").matcher(maxUploadSize).matches()) {
|
||||
} else if (!Pattern.compile("^[1-9][0-9]{0,2}[KMGkmg][Bb]$")
|
||||
.matcher(maxUploadSize)
|
||||
.matches()) {
|
||||
log.error(
|
||||
"Invalid maxUploadSize format. Expected format: [1-9][0-9]{0,2}[KMGkmg][Bb], but got: {}",
|
||||
maxUploadSize);
|
||||
"Invalid maxUploadSize format. Expected format: [1-9][0-9]{0,2}[KMGkmg][Bb], but got: {}",
|
||||
maxUploadSize);
|
||||
return 0;
|
||||
} else {
|
||||
String unit = maxUploadSize.replaceAll("[1-9][0-9]{0,2}", "").toUpperCase();
|
||||
@ -41,7 +43,7 @@ public class UploadLimitService {
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: why do this server side not client?
|
||||
// TODO: why do this server side not client?
|
||||
public String getReadableUploadLimit() {
|
||||
return humanReadableByteCount(getUploadLimit());
|
||||
}
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=Diese Cookies sind für das
|
||||
cookieBanner.preferencesModal.analytics.title=Analyse
|
||||
cookieBanner.preferencesModal.analytics.description=Diese Cookies helfen uns zu verstehen, wie unsere Tools genutzt werden, damit wir uns darauf konzentrieren können, die Funktionen zu entwickeln, die unserer Community am meisten am Herzen liegen. Seien Sie beruhigt – Stirling PDF kann und wird niemals den Inhalt der Dokumente verfolgen, mit denen Sie arbeiten.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -364,6 +364,9 @@ home.compressPdfs.title=Compress
|
||||
home.compressPdfs.desc=Compress PDFs to reduce their file size.
|
||||
compressPdfs.tags=squish,small,tiny
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
|
||||
home.changeMetadata.title=Change Metadata
|
||||
home.changeMetadata.desc=Change/Remove/Add metadata from a PDF document
|
||||
@ -377,7 +380,6 @@ home.ocr.title=OCR / Cleanup scans
|
||||
home.ocr.desc=Cleanup scans and detects text from images within a PDF and re-adds it as text.
|
||||
ocr.tags=recognition,text,image,scan,read,identify,detection,editable
|
||||
|
||||
|
||||
home.extractImages.title=Extract Images
|
||||
home.extractImages.desc=Extracts all images from a PDF and saves them to zip
|
||||
extractImages.tags=picture,photo,save,archive,zip,capture,grab
|
||||
@ -1193,6 +1195,10 @@ changeMetadata.selectText.4=Other Metadata:
|
||||
changeMetadata.selectText.5=Add Custom Metadata Entry
|
||||
changeMetadata.submit=Change
|
||||
|
||||
#unlockPDFForms
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
||||
#pdfToPDFA
|
||||
pdfToPDFA.title=PDF To PDF/A
|
||||
|
@ -364,6 +364,9 @@ home.compressPdfs.title=Compress
|
||||
home.compressPdfs.desc=Compress PDFs to reduce their file size.
|
||||
compressPdfs.tags=squish,small,tiny
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
|
||||
home.changeMetadata.title=Change Metadata
|
||||
home.changeMetadata.desc=Change/Remove/Add metadata from a PDF document
|
||||
@ -377,7 +380,6 @@ home.ocr.title=OCR / Cleanup scans
|
||||
home.ocr.desc=Cleanup scans and detects text from images within a PDF and re-adds it as text.
|
||||
ocr.tags=recognition,text,image,scan,read,identify,detection,editable
|
||||
|
||||
|
||||
home.extractImages.title=Extract Images
|
||||
home.extractImages.desc=Extracts all images from a PDF and saves them to zip
|
||||
extractImages.tags=picture,photo,save,archive,zip,capture,grab
|
||||
@ -1193,6 +1195,10 @@ changeMetadata.selectText.4=Other Metadata:
|
||||
changeMetadata.selectText.5=Add Custom Metadata Entry
|
||||
changeMetadata.submit=Change
|
||||
|
||||
#unlockPDFForms
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
||||
#pdfToPDFA
|
||||
pdfToPDFA.title=PDF To PDF/A
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=Estas cookies son esenciales
|
||||
cookieBanner.preferencesModal.analytics.title=Análisis
|
||||
cookieBanner.preferencesModal.analytics.description=Estas cookies nos ayudan a entender cómo se están utilizando nuestras herramientas, para que podamos centrarnos en desarrollar las funciones que nuestra comunidad valora más. Tenga la seguridad de que Stirling PDF no puede y nunca podrá rastrear el contenido de los documentos con los que trabaja.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=Questi cookie sono essenzial
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=Questi cookie ci aiutano a capire come vengono utilizzati i nostri strumenti, così possiamo concentrarci sullo sviluppo delle funzionalità che la nostra community apprezza di più. Non preoccuparti: Stirling PDF non può e non traccerà mai il contenuto dei documenti con cui lavori.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=これらのCookieはウェ
|
||||
cookieBanner.preferencesModal.analytics.title=分析
|
||||
cookieBanner.preferencesModal.analytics.description=これらのCookieはツールがどのように使用されているかを把握するのに役立ちます。これによりコミュニティが最も重視する機能の開発に集中することができます。ご安心ください。Stirling PDFはお客様が操作するドキュメントの内容を追跡することは決してありません。
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=Estes cookies são essenciai
|
||||
cookieBanner.preferencesModal.analytics.title=Cookies Analíticos
|
||||
cookieBanner.preferencesModal.analytics.description=Estes cookies nos ajudam a entender como nossas ferramentas estão sendo utilizadas, para que possamos nos concentrar na construção dos recursos que nossa comunidade mais valoriza. Fique tranquilo: o Stirling PDF não pode e nunca rastreará o conteúdo dos documentos com os quais você manipula.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -364,6 +364,9 @@ home.compressPdfs.title=Comprimir
|
||||
home.compressPdfs.desc=Comprimir PDFs para reduzir o seu tamanho.
|
||||
compressPdfs.tags=comprimir,pequeno,minúsculo
|
||||
|
||||
home.unlockPDFForms.title=Desbloquear Formulários do PDF
|
||||
home.unlockPDFForms.desc=Remover propriedades de apenas leitura dos formulários de um PDF
|
||||
unlockPDFForms.tags=remover,apagar,formulário,campo,apenas leitura
|
||||
|
||||
home.changeMetadata.title=Alterar Metadados
|
||||
home.changeMetadata.desc=Alterar/Remover/Adicionar metadados de um documento PDF
|
||||
@ -1193,6 +1196,10 @@ changeMetadata.selectText.4=Outros Metadados:
|
||||
changeMetadata.selectText.5=Adicionar Entrada de Metadados Personalizada
|
||||
changeMetadata.submit=Alterar
|
||||
|
||||
#unlockPDFForms
|
||||
unlockPDFForms.title=Desbloquear Formulários do PDF
|
||||
unlockPDFForms.header=Desbloquear Formulários do PDF
|
||||
unlockPDFForms.submit=Remover
|
||||
|
||||
#pdfToPDFA
|
||||
pdfToPDFA.title=PDF Para PDF/A
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=Bu çerezler, web sitesinin
|
||||
cookieBanner.preferencesModal.analytics.title=Analitik
|
||||
cookieBanner.preferencesModal.analytics.description=Bu çerezler, araçlarımızın nasıl kullanıldığını anlamamıza yardımcı olur, böylece topluluğumuzun en çok değer verdiği özellikleri geliştirmeye odaklanabiliriz. İçiniz rahat olsun — Stirling PDF, belgelerinizin içeriğini asla takip etmez ve etmeyecektir.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential
|
||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -1430,3 +1430,9 @@ cookieBanner.preferencesModal.necessary.description=這些 Cookies 對網站正
|
||||
cookieBanner.preferencesModal.analytics.title=分析 Cookies
|
||||
cookieBanner.preferencesModal.analytics.description=這些 Cookies 幫助我們分析您如何使用我們的工具,好讓我們能專注在構建社群最重視的功能。儘管放心—— Stirling PDF 不會且永不追蹤您的文件
|
||||
|
||||
home.unlockPDFForms.title=Unlock PDF Forms
|
||||
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document.
|
||||
unlockPDFForms.tags=remove,delete,form,field,readonly
|
||||
unlockPDFForms.title=Remove Read-Only from Form Fields
|
||||
unlockPDFForms.header=Unlock PDF Forms
|
||||
unlockPDFForms.submit=Remove
|
||||
|
@ -231,6 +231,9 @@
|
||||
<div
|
||||
th:replace="~{fragments/navbarEntry :: navbarEntry('replace-and-invert-color-pdf', 'format_color_fill', 'home.replaceColorPdf.title', 'home.replaceColorPdf.desc', 'replaceColorPdf.tags', 'other')}">
|
||||
</div>
|
||||
<div
|
||||
th:replace="~{fragments/navbarEntry :: navbarEntry('unlock-pdf-forms', 'preview_off', 'home.unlockPDFForms.title', 'home.unlockPDFForms.desc', 'unlockPDFForms.tags', 'other')}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="groupAdvanced" class="feature-group">
|
||||
|
@ -287,6 +287,9 @@
|
||||
<div
|
||||
th:replace="~{fragments/card :: card(id='replace-and-invert-color-pdf', cardTitle=#{home.replaceColorPdf.title}, cardText=#{home.replaceColorPdf.desc}, cardLink='replace-and-invert-color-pdf', toolIcon='format_color_fill', tags=#{replaceColorPdf.tags}, toolGroup='other')}">
|
||||
</div>
|
||||
<div
|
||||
th:replace="~{fragments/card :: card(id='unlock-pdf-forms', cardTitle=#{home.unlockPDFForms.title}, cardText=#{home.unlockPDFForms.desc}, cardLink='unlock-pdf-forms', toolIcon='preview_off', tags=#{unlockPDFForms.tags}, toolGroup='other')}">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
34
src/main/resources/templates/misc/unlock-pdf-forms.html
Normal file
34
src/main/resources/templates/misc/unlock-pdf-forms.html
Normal file
@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html th:lang="${#locale.language}" th:dir="#{language.direction}" th:data-language="${#locale.toString()}" xmlns:th="https://www.thymeleaf.org">
|
||||
<head>
|
||||
<th:block th:insert="~{fragments/common :: head(title=#{unlockPDFForms.title}, header=#{unlockPDFForms.header})}"></th:block>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="page-container">
|
||||
<div id="content-wrap">
|
||||
<th:block th:insert="~{fragments/navbar.html :: navbar}"></th:block>
|
||||
<br><br>
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
|
||||
<div class="col-md-6 bg-card">
|
||||
<div class="tool-header">
|
||||
<span class="material-symbols-rounded tool-header-icon other">preview_off</span>
|
||||
<span class="tool-header-text" th:text="#{unlockPDFForms.header}"></span>
|
||||
</div>
|
||||
<form method="post" enctype="multipart/form-data" th:action="@{'/api/v1/misc/unlock-pdf-forms'}" id="pdfForm" class="mb-3">
|
||||
<div class="custom-file">
|
||||
<div th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf')}"></div>
|
||||
</div>
|
||||
<br>
|
||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{unlockPDFForms.submit}"></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<th:block th:insert="~{fragments/footer.html :: footer}"></th:block>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
x
Reference in New Issue
Block a user