【问题标题】:Edit form controls with GemBox.Document使用 GemBox.Document 编辑表单控件
【发布时间】:2017-08-03 02:59:38
【问题描述】:

我们如何使用 GemBox.Document 在 Word 文档中编写或修改表单控件的现有值?
我找到了creatingreading 的示例,但我就是找不到可以写的……

我试过用这个:

// Input file from 'reading' example.
DocumentModel document = DocumentModel.Load("FormFilled.docx");
FormFieldDataCollection formData = document.Content.FormFieldsData;

FormFieldData fullNameData = formData.First(ffd => ffd.Name == "FullName");

// I cannot do this, FormFieldData.Value is read only!
fullNameData.Value = "My Name";

但是FormFieldData.Value只有get,这可能吗?

【问题讨论】:

    标签: c# docx form-fields gembox-document


    【解决方案1】:

    是的,这是可能的,试试这个:

    DocumentModel document = DocumentModel.Load("FormFilled.docx");
    // Get a snapshot of all form fields in the document.
    FormFieldDataCollection formData = document.Content.FormFieldsData;
    
    // Edit "FullName" text box field.
    FormTextData fullNameData = (FormTextData)formData["FullName"];
    fullNameData.Field.ResultInlines.Content.LoadText("Jane Doe");
    
    // Edit "BirthDate" text box field.
    FormTextData birthDateData = (FormTextData)formData["BirthDate"];
    birthDateData.Field.ResultInlines.Content.LoadText(
        new DateTime(2000, 1, 1).ToString(birthDateData.ValueFormat));
    
    // Edit "Salary" text box field.
    FormTextData salaryData = (FormTextData)formData["Salary"];
    salaryData.Field.ResultInlines.Content.LoadText(
        5432.1.ToString(salaryData.ValueFormat));
    
    // Uncheck "Married" check box field.
    FormCheckBoxData marriedData = (FormCheckBoxData)formData["Married"];
    marriedData.Value = false;
    
    // Select "Female" from drop down field, note that "genderData.Items
    // contains a list of drop down field's items that you can select.
    FormDropDownData genderData = (FormDropDownData)formData["Gender"];
    genderData.SelectedItemIndex = 2;
    
    document.Save("FormFilledOutput.docx");
    

    我希望这会有所帮助。

    更新:

    在较新的 GemBox.Document 的错误修复版本之一中,FormTextData.Value 属性同时具有 getter 和 setter,因此可以通过以下方式简化上述内容:

    // Edit "FullName" text box field.
    FormTextData fullNameData = (FormTextData)formData["FullName"];
    fullNameData.Value = "Jane Doe";
    
    // Edit "BirthDate" text box field.
    FormTextData birthDateData = (FormTextData)formData["BirthDate"];
    birthDateData.Value = new DateTime(2000, 1, 1);
    
    // Edit "Salary" text box field.
    FormTextData salaryData = (FormTextData)formData["Salary"];
    salaryData.Value = 5432.1;
    

    也可以参考this example

    【讨论】:

    • 谢谢马里奥,它有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多