Java Erstellen Sie ein ausfüllbares Formular in Word

2023-11-06 09:41:51 zaki zou

Mit Maven installieren

<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.doc</artifactId>
    <version>12.2.2</version>
</dependency>
    

verwandte Links

Mit Word können Sie Formulare erstellen, mit denen andere Personen Informationen eingeben können. Ausfüllbare Formulare werden für verschiedene Zwecke verwendet. Die Personalabteilung verwendet Formulare, um Mitarbeiter- und Beraterinformationen zu sammeln. Marketingabteilungen nutzen Formulare, um die Kundenzufriedenheit mit ihren Produkten und Dienstleistungen zu erheben. Organisationen verwenden Formulare, um Mitglieder, Studenten oder Kunden zu registrieren. Zu den Tools, die Sie beim Erstellen eines Formulars verwenden, gehören:

  • Inhaltssteuerelemente: Die Bereiche, in denen Benutzer Informationen in ein Formular eingeben.
  • Tabellen: Tabellen werden in Formularen verwendet, um Text und Formularfelder auszurichten sowie Rahmen und Felder zu erstellen.
  • Schutz: Ermöglicht Benutzern das Ausfüllen von Feldern, jedoch keine Änderungen am Rest des Dokuments.

Inhaltssteuerelemente in Word sind Container für Inhalte, mit denen Benutzer strukturierte Dokumenteerstellen können. Ein strukturiertes Dokument steuert, wo Inhalte im Dokument angezeigt werden. Grundsätzlich stehen in Word 2013 zehn Arten von Inhaltssteuerelementen zur Verfügung. Dieser Artikel konzentriert sich auf die Vorgehensweise Erstellen Sie ein ausfüllbares Formular in Word bestehend aus den folgenden sieben allgemeinen Inhaltssteuerelementen unter Verwendung von Spire.Doc for Java.

Inhaltskontrolle Beschreibung
Klartext Ein Textfeld, das auf reinen Text beschränkt ist und daher keine Formatierung enthalten kann.
Rich-Text Ein Textfeld, das formatierten Text oder andere Elemente wie Tabellen, Bilder oder andere Inhaltssteuerelemente enthalten kann.
Bild Akzeptiert ein einzelnes Bild.
Dropdown-Liste Eine Dropdown-Liste zeigt eine vordefinierte Liste von Elementen an, aus denen der Benutzer auswählen kann.
Kombinationsfeld Über ein Kombinationsfeld können Benutzer einen vordefinierten Wert aus einer Liste auswählen oder einen eigenen Wert in das Textfeld des Steuerelements eingeben.
Kontrollkästchen Ein Kontrollkästchen stellt ein grafisches Widget bereit, mit dem der Benutzer eine binäre Auswahl treffen kann: Ja (aktiviert) oder Nein (nicht aktiviert).
Datumsauswahl Enthält ein Kalendersteuerelement, aus dem der Benutzer ein Datum auswählen kann.

Installieren Sie Spire.Doc for Java

Zunächst müssen Sie die Datei Spire.Doc.jar als Abhängigkeit zu Ihrem Java-Programm hinzufügen. Die JAR-Datei kann über diesen Link heruntergeladen werden. Wenn Sie Maven verwenden, können Sie die JAR-Datei einfach in Ihre Anwendung importieren, indem Sie den folgenden Code zur pom.xml-Datei Ihres Projekts hinzufügen.

<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>14.1.0</version>
    </dependency>
</dependencies>

Erstellen Sie ein ausfüllbares Formular in Word in Java

Die von Spire.Doc for Java bereitgestellte StructureDocumentTagInline-Klasse wird zum Erstellen strukturierter Dokument-Tags für Strukturen auf Inline-Ebene (DrawingML-Objekt, Felder usw.) in einem Absatz verwendet. Die SDTProperties-Eigenschaft und die SDTContent-Eigenschaft dieser Klasse werden verwendet, um die Eigenschaften und den Inhalt des aktuellen strukturierten Dokument-Tags anzugeben. Im Folgenden finden Sie die detaillierten Schritte zum Erstellen eines ausfüllbaren Formulars mit Inhaltssteuerelementen in Word.

  • Erstellen Sie ein Document-Objekt.
  • Fügen Sie einen Abschnitt mit der Methode Document.addSection() hinzu.
  • Fügen Sie eine Tabelle mit der Methode Section.addTable() hinzu.
  • Fügen Sie mit der Methode TableCell.addParagraph() einen Absatz zu einer bestimmten Tabellenzelle hinzu.
  • Erstellen Sie eine Instanz der StructureDocumentTagInline-Klasse und fügen Sie sie mit der Methode Paragraph.getChildObjects().add() als untergeordnetes Objekt zum Absatz hinzu.
  • Geben Sie die Eigenschaften und den Inhalt des strukturierten Dokumenttags mithilfe der Methoden unter der SDTProperties-Eigenschaft und der SDTContent-Eigenschaft des StructureDocumentTagInline-Objekts an. Der Typ des strukturierten Dokument-Tags wird über die Methode SDTProperties.setSDTType() festgelegt.
  • Verhindern Sie, dass Benutzer Inhalte außerhalb von Formularfeldern bearbeiten, indem Sie die Methode Document.protect() verwenden.
  • Speichern Sie das Dokument mit der Methode 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);
        }
    }

Java: Create a Fillable Form in Word

Beantragen Sie eine temporäre Lizenz

Wenn Sie die Bewertungsmeldung aus den generierten Dokumenten entfernen oder die Funktionseinschränkungen beseitigen möchten, wenden Sie sich bitte an uns Fordern Sie eine 30-Tage-Testlizenz an für sich selbst.

Siehe auch

Coupon Code Copied!

Christmas Sale

Celebrate the season with exclusive savings

Save 10% Sitewide

Use Code:

View Campaign Details