Tabla de contenido
Instalar con Maven
<dependency> <groupId>e-iceblue</groupId> <artifactId>spire.doc</artifactId> <version>12.2.2</version> </dependency>
enlaces relacionados
Word le permite crear formularios que otras personas pueden usar para ingresar información. Los formularios rellenables se utilizan para diversos fines. Recursos humanos utiliza formularios para recopilar información de empleados y consultores. Los departamentos de marketing utilizan formularios para encuestar la satisfacción del cliente con sus productos y servicios. Las organizaciones utilizan formularios para registrar miembros, estudiantes o clientes. Algunas de las herramientas que utilizará al crear un formulario incluyen:
- Controles de contenido:las áreas donde los usuarios ingresan información en un formulario.
- Tablas: las tablas se utilizan en formularios para alinear texto y campos de formulario, y para crear bordes y cuadros.
- Protección: permite a los usuarios completar campos pero no realizar cambios en el resto del documento.
Los controles de contenido en Word son contenedores de contenido que permiten a los usuarios crear documentos estructurados.Un documento estructurado controla dónde aparece el contenido dentro del documento. Básicamente, existen diez tipos de controles de contenido disponibles en Word 2013. Este artículo se centra en cómo crear un formulario rellenable en Word que consta de los siguientes siete controles de contenido comunes que utilizan Spire.Doc for Java.
Control de contenido | Descripción |
Texto sin formato | Un campo de texto limitado a texto sin formato, por lo que no se puede incluir formato. |
Texto rico | Un campo de texto que puede contener texto formateado u otros elementos, como tablas, imágenes u otros controles de contenido. |
Imagen | Acepta una sola imagen. |
La lista desplegable | Una lista desplegable muestra una lista predefinida de elementos para que el usuario elija. |
Caja combo | Un cuadro combinado permite a los usuarios seleccionar un valor predefinido en una lista o escribir su propio valor en el cuadro de texto del control. |
Casilla de verificación | Una casilla de verificación proporciona un widget gráfico que permite al usuario realizar una elección binaria: sí (marcado) o no (no marcado). |
Selector de fechas | Contiene un control de calendario desde el cual el usuario puede seleccionar una fecha. |
Instalar Spire.Doc for Java
En primer lugar, debe agregar el archivo Spire.Doc.jar como una dependencia en su programa Java. El archivo JAR se puede descargar desde este enlace.Si usa Maven, puede importar fácilmente el archivo JAR en su aplicación agregando el siguiente código al archivo pom.xml de su proyecto.
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.doc</artifactId> <version>12.11.0</version> </dependency> </dependencies>
Crear un formulario rellenable en Word en Java
La clase StructureDocumentTagInline proporcionada por Spire.Doc para Java se utiliza para crear etiquetas de documentos estructurados para estructuras de nivel en línea (objeto DrawingML, campos, etc.) en un párrafo. La propiedad SDTProperties y la propiedad SDTContent de esta clase se utilizarán para especificar las propiedades y el contenido de la etiqueta del documento estructurado actual. Los siguientes son los pasos detallados para crear un formulario rellenable con controles de contenido en Word.
- Crea un objeto de documento.
- Agregue una sección usando el método Document.addSection().
- Agregue una tabla usando el método Sección.addTable().
- Agregue un párrafo a una celda de tabla específica usando el método TableCell.addParagraph().
- Cree una instancia de la clase StructureDocumentTagInline y agréguela al párrafo como un objeto secundario utilizando el método Paragraph.getChildObjects().add().
- Especifique las propiedades y el contenido de la etiqueta del documento estructurado utilizando los métodos de la propiedad SDTProperties y la propiedad SDTContent del objeto StructureDocumentTagInline. El tipo de etiqueta de documento estructurado se establece mediante el método DTProperties.setSDTType()S.
- Evite que los usuarios editen contenido fuera de los campos del formulario utilizando el método Document.protect().
- Guarde el documento utilizando el método Document.saveToFile().
- Java
import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.DocPicture; import com.spire.doc.fields.TextRange; import java.util.Date; public class CreateFillableForm { public static void main(String[] args) { //Create a Document object Document doc = new Document(); //Add a section Section section = doc.addSection(); //add a table Table table = section.addTable(true); table.resetCells(7, 2); //Add text to the cells of the first column Paragraph paragraph = table.getRows().get(0).getCells().get(0).addParagraph(); paragraph.appendText("Plain Text Content Control"); paragraph = table.getRows().get(1).getCells().get(0).addParagraph(); paragraph.appendText("Rich Text Content Control"); paragraph = table.getRows().get(2).getCells().get(0).addParagraph(); paragraph.appendText("Picture Content Control"); paragraph = table.getRows().get(3).getCells().get(0).addParagraph(); paragraph.appendText("Drop-Down List Content Control"); paragraph = table.getRows().get(4).getCells().get(0).addParagraph(); paragraph.appendText("Check Box Content Control"); paragraph = table.getRows().get(5).getCells().get(0).addParagraph(); paragraph.appendText("Combo box Content Control"); paragraph = table.getRows().get(6).getCells().get(0).addParagraph(); paragraph.appendText("Date Picker Content Control"); //Add a plain text content control to the cell (0,1) paragraph = table.getRows().get(0).getCells().get(1).addParagraph(); StructureDocumentTagInline sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Text); sdt.getSDTProperties().setAlias("Plain Text"); sdt.getSDTProperties().setTag("Plain Text"); sdt.getSDTProperties().isShowingPlaceHolder(true); SdtText text = new SdtText(true); text.isMultiline(false); sdt.getSDTProperties().setControlProperties(text); TextRange tr = new TextRange(doc); tr.setText("Click or tap here to enter text."); sdt.getSDTContent().getChildObjects().add(tr); //Add a rich text content control to the cell (1,1) paragraph = table.getRows().get(1).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Rich_Text); sdt.getSDTProperties().setAlias("Rich Text"); sdt.getSDTProperties().setTag("Rich Text"); sdt.getSDTProperties().isShowingPlaceHolder(true); text = new SdtText(true); text.isMultiline(false); sdt.getSDTProperties().setControlProperties(text); tr = new TextRange(doc); tr.setText("Click or tap here to enter text."); sdt.getSDTContent().getChildObjects().add(tr); //Add a picture content control to the cell (2,1) paragraph = table.getRows().get(2).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Picture); sdt.getSDTProperties().setAlias("Picture"); sdt.getSDTProperties().setTag("Picture"); SdtPicture sdtPicture = new SdtPicture(); sdt.getSDTProperties().setControlProperties(sdtPicture); DocPicture pic = new DocPicture(doc); pic.loadImage("C:\\Users\\Administrator\\Desktop\\ChooseImage.png"); sdt.getSDTContent().getChildObjects().add(pic); //Add a dropdown list content control to the cell(3,1) paragraph = table.getRows().get(3).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); sdt.getSDTProperties().setSDTType(SdtType.Drop_Down_List); sdt.getSDTProperties().setAlias("Dropdown List"); sdt.getSDTProperties().setTag("Dropdown List"); paragraph.getChildObjects().add(sdt); SdtDropDownList sddl = new SdtDropDownList(); sddl.getListItems().add(new SdtListItem("Choose an item.", "1")); sddl.getListItems().add(new SdtListItem("Item 2", "2")); sddl.getListItems().add(new SdtListItem("Item 3", "3")); sddl.getListItems().add(new SdtListItem("Item 4", "4")); sdt.getSDTProperties().setControlProperties(sddl); tr = new TextRange(doc); tr.setText(sddl.getListItems().get(0).getDisplayText()); sdt.getSDTContent().getChildObjects().add(tr); //Add two check box content controls to the cell (4,1) paragraph = table.getRows().get(4).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Check_Box); SdtCheckBox scb = new SdtCheckBox(); sdt.getSDTProperties().setControlProperties(scb); tr = new TextRange(doc); sdt.getChildObjects().add(tr); scb.setChecked(false); paragraph.appendText(" Option 1"); paragraph = table.getRows().get(4).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Check_Box); scb = new SdtCheckBox(); sdt.getSDTProperties().setControlProperties(scb); tr = new TextRange(doc); sdt.getChildObjects().add(tr); scb.setChecked(false); paragraph.appendText(" Option 2"); //Add a combo box content control to the cell (5,1) paragraph = table.getRows().get(5).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Combo_Box); sdt.getSDTProperties().setAlias("Combo Box"); sdt.getSDTProperties().setTag("Combo Box"); SdtComboBox cb = new SdtComboBox(); cb.getListItems().add(new SdtListItem("Choose an item.")); cb.getListItems().add(new SdtListItem("Item 2")); cb.getListItems().add(new SdtListItem("Item 3")); sdt.getSDTProperties().setControlProperties(cb); tr = new TextRange(doc); tr.setText(cb.getListItems().get(0).getDisplayText()); sdt.getSDTContent().getChildObjects().add(tr); //Add a date picker content control to the cell (6,1) paragraph = table.getRows().get(6).getCells().get(1).addParagraph(); sdt = new StructureDocumentTagInline(doc); paragraph.getChildObjects().add(sdt); sdt.getSDTProperties().setSDTType(SdtType.Date_Picker); sdt.getSDTProperties().setAlias("Date Picker"); sdt.getSDTProperties().setTag("Date Picker"); SdtDate date = new SdtDate(); date.setCalendarType(CalendarType.Default); date.setDateFormat("yyyy.MM.dd"); date.setFullDate(new Date()); sdt.getSDTProperties().setControlProperties(date); tr = new TextRange(doc); tr.setText("Click or tap to enter a date."); sdt.getSDTContent().getChildObjects().add(tr); //Allow users to edit the form fields only doc.protect(ProtectionType.Allow_Only_Form_Fields, "permission-psd"); //Save to file doc.saveToFile("output/WordForm.docx", FileFormat.Docx_2013); } }
Solicite una licencia temporal
Si desea eliminar el mensaje de evaluación de los documentos generados o deshacerse de las limitaciones de la función, por favor solicitar una licencia de prueba de 30 días para ti.