2017-03-13 66 views
2

如何使用GemBox.Document編寫或修改Word文檔中表單控件的現有值?
我發現的例子爲creatingreading,但我無法找到一個用於寫...使用GemBox.Document編輯表單控件

我嘗試使用這樣的:

// 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.Valueget,所以這可能還是不?

回答

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"); 

我希望這有助於。

UPDATE:

在一個較新的GemBox.Document的錯誤修正版本的FormTextData.Value屬性都有獲取和設置的一個,因此,上述可與被簡化以下:

// 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

+0

感謝馬里奧,它有幫助! – Kipper