2017-03-13 2 views
2

Comment écrire ou modifier des valeurs existantes de contrôles de formulaire dans des documents Word en utilisant GemBox.Document?
Je trouve les exemples pour creating et reading, mais je ne peux pas trouver un pour l'écriture ...Modifier les contrôles de formulaire avec GemBox.Document

J'ai essayé d'utiliser ceci:

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

Mais FormFieldData.Value a seulement get, donc est-ce possible ou non ?

Répondre

1

Oui cela est possible, essayez ceci:

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

J'espère que cela aide.

MISE À JOUR:

Dans l'une des une des versions plus récentes de correction de bug de GemBox.Document la propriété FormTextData.Value a à la fois getter et setter, de sorte que le ci-dessus peut être simplifiée avec les éléments suivants:

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

également vous pouvez vous référer au this example.

+0

Merci Mario, ça aide! – Kipper