Modificando AcroForm
Contents
[
Hide
]
El mantenimiento de Form a menudo implica tanto ediciones a nivel de campo como la limpieza de recursos de página relacionados con Form.
Eliminar texto en recursos de form incrustados
Utilice este ejemplo cuando el contenido de form Typewriter deba vaciarse sin eliminar los objetos de form en sí.
- Abra el PDF de origen
Document. - Itere a través de los recursos de formulario de la página y localice formularios Typewriter.
- Eliminar los fragmentos de texto absorbidos y guarde el documento.
public static void clearTextInForm(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
for (XForm form : document.getPages().get_Item(1).getResources().getForms()) {
if ("Typewriter".equals(form.getIT()) && "Form".equals(form.getSubtype())) {
TextFragmentAbsorber absorber = new TextFragmentAbsorber();
absorber.visit(form);
for (TextFragment fragment : absorber.getTextFragments()) {
fragment.setText("");
}
}
}
document.save(outputFile.toString());
}
}
Establecer un límite de longitud para el campo de texto
Utilice este ejemplo cuando un campo de texto debe aceptar solo un número limitado de caracteres.
- Cree una fachada
FormEditory vincule el PDF de origen. - Establezca la longitud máxima para el campo de destino.
- Guarde el documento actualizado.
public static void setFieldLimit(Path inputFile, Path outputFile) {
FormEditor form = new FormEditor();
form.bindPdf(inputFile.toString());
try {
form.setFieldLimit("First Name", 15);
form.save(outputFile.toString());
} finally {
form.close();
}
}
Obtener un límite de longitud para un campo de texto
Utilice este ejemplo cuando necesite inspeccionar la longitud máxima actual de un campo de texto.
- Abra el PDF de origen
Document. - Acceda al campo objetivo de la colección de formularios.
- Lea el límite desde el
TextBoxFieldy genérelo.
public static void getFieldLimit(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
Field field = document.getForm().getFields()[0];
if (field instanceof TextBoxField textBoxField) {
System.out.println("Limit: " + textBoxField.getMaxLen());
}
}
}
Cambiar la fuente de un campo de formulario
Utilice este ejemplo cuando un campo de texto existente deba usar una fuente o apariencia diferente.
- Abra el PDF de origen
Document. - Acceda al objetivo
TextBoxFieldy establezca una nueva apariencia predeterminada. - Guarde el PDF actualizado.
public static void setFormFieldFont(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
Field field = document.getForm().getFields()[0];
if (field instanceof TextBoxField textBoxField) {
textBoxField.setDefaultAppearance(new DefaultAppearance(
FontRepository.findFont("Calibri"), 10, com.aspose.pdf.Color.getBlack().toRgb()));
}
document.save(outputFile.toString());
}
}
Eliminar un campo de formulario por nombre
Utilice este ejemplo cuando se deba eliminar un campo específico del AcroForm.
- Abra el PDF de origen
Document. - Elimine el campo objetivo del formulario por su nombre.
- Guarde el documento actualizado.
public static void deleteFormField(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.getForm().delete("First Name");
document.save(outputFile.toString());
}
}