Is it possible to create programmatically image merge field like this:
- Code: Select all
{IF {INCLUDEPICTURE {IF TRUE "{MERGEFIELD Picture}"} \d} {INCLUDEPICTURE {IF TRUE "{MERGEFIELD Picture}"} \d}}
Regards
{IF {INCLUDEPICTURE {IF TRUE "{MERGEFIELD Picture}"} \d} {INCLUDEPICTURE {IF TRUE "{MERGEFIELD Picture}"} \d}}
Document newDoc = new Document();
Section section = newDoc.AddSection();
Paragraph paragraph = section.AddParagraph();
//The first IF field
IfField ifField = new IfField(newDoc);
ifField.Type = FieldType.FieldIf;
ifField.Code = "IF ";
paragraph.ChildObjects.Add(ifField);
//Picture Field
Field PicField = new Field(newDoc);
PicField.Type = FieldType.FieldIncludePicture;
PicField.Code = "INCLUDEPICTURE";
paragraph.ChildObjects.Add(PicField);
//The embedded IF field
IfField ifField2 = new IfField(newDoc);
ifField2.Type = FieldType.FieldIf;
ifField2.Code = "IF TRUE \"";
paragraph.ChildObjects.Add(ifField2);
//the merge field
MergeField mergeField = new MergeField(newDoc);
mergeField.Type = FieldType.FieldMergeField;
mergeField.Code = "MERGEFIELD Picture";
mergeField.FieldText = "Picture";
paragraph.ChildObjects.Add(mergeField);
TextRange textRange2 = new TextRange(newDoc);
textRange2.Text = "\" ";
paragraph.ChildObjects.Add(textRange2);
FieldMark ifField2Mark = new FieldMark(newDoc, FieldMarkType.FieldEnd);
ifField2.End = ifField2Mark;
paragraph.ChildObjects.Add(ifField2Mark);
TextRange textRange = new TextRange(newDoc);
textRange.Text = " \\d ";
paragraph.ChildObjects.Add(textRange);
FieldMark picFieldMark = new FieldMark(newDoc, FieldMarkType.FieldEnd);
PicField.End = picFieldMark;
paragraph.ChildObjects.Add(picFieldMark);
//Picture Field2
Field PicField2 = new Field(newDoc);
PicField2.Type = FieldType.FieldIncludePicture;
PicField2.Code = "INCLUDEPICTURE";
paragraph.ChildObjects.Add(PicField2);
//The embedded IF field
IfField ifField3 = new IfField(newDoc);
ifField3.Type = FieldType.FieldIf;
ifField3.Code = "IF TRUE \"";
paragraph.ChildObjects.Add(ifField3);
//the merge field
MergeField mergeField2 = new MergeField(newDoc);
mergeField2.Type = FieldType.FieldMergeField;
mergeField2.Code = "MERGEFIELD Picture";
mergeField2.FieldText = "Picture";
paragraph.ChildObjects.Add(mergeField2);
TextRange textRange3 = new TextRange(newDoc);
textRange3.Text = "\" ";
paragraph.ChildObjects.Add(textRange3);
FieldMark ifField3Mark = new FieldMark(newDoc, FieldMarkType.FieldEnd);
ifField3.End = ifField3Mark;
paragraph.ChildObjects.Add(ifField3Mark);
TextRange textRange4 = new TextRange(newDoc);
textRange4.Text = " \\d ";
paragraph.ChildObjects.Add(textRange4);
FieldMark picField2Mark = new FieldMark(newDoc, FieldMarkType.FieldEnd);
PicField2.End = picField2Mark;
paragraph.ChildObjects.Add(picField2Mark);
FieldMark ifFieldMark = new FieldMark(newDoc, FieldMarkType.FieldEnd);
ifField.End = ifFieldMark;
paragraph.ChildObjects.Add(ifFieldMark);
string result = "output.docx";
newDoc.SaveToFile(result, FileFormat.Docx2013);