ImageWidth
Contents
[
Hide
]ImageFieldMergingArgs.ImageWidth property
Specifies the image width for the image to insert into the document.
public MergeFieldImageDimension ImageWidth { get; set; }
Remarks
The value of this property initially comes from the corresponding MERGEFIELD’s code, contained in the template document. To override the initial value, you should assign an instance of MergeFieldImageDimension
class to this property or set the properties for the instance of MergeFieldImageDimension
class, returned by this property.
To indicate that the original value of the image width should be applied, you should assign the null
value to this property or set the Value
property for the instance of MergeFieldImageDimension
class, returned by this property, to a negative value.
Examples
Shows how to set the dimensions of images as MERGEFIELDS accepts them during a mail merge.
public void MergeFieldImageDimension()
{
Document doc = new Document();
// Insert a MERGEFIELD that will accept images from a source during a mail merge. Use the field code to reference
// a column in the data source containing local system filenames of images we wish to use in the mail merge.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldMergeField field = (FieldMergeField)builder.InsertField("MERGEFIELD Image:ImageColumn");
// The data source should have such a column named "ImageColumn".
Assert.AreEqual("Image:ImageColumn", field.FieldName);
// Create a suitable data source.
DataTable dataTable = new DataTable("Images");
dataTable.Columns.Add(new DataColumn("ImageColumn"));
dataTable.Rows.Add(ImageDir + "Logo.jpg");
dataTable.Rows.Add(ImageDir + "Transparent background logo.png");
dataTable.Rows.Add(ImageDir + "Enhanced Windows MetaFile.emf");
// Configure a callback to modify the sizes of images at merge time, then execute the mail merge.
doc.MailMerge.FieldMergingCallback = new MergedImageResizer(200, 200, MergeFieldImageDimensionUnit.Point);
doc.MailMerge.Execute(dataTable);
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.MERGEFIELD.ImageDimension.docx");
}
/// <summary>
/// Sets the size of all mail merged images to one defined width and height.
/// </summary>
private class MergedImageResizer : IFieldMergingCallback
{
public MergedImageResizer(double imageWidth, double imageHeight, MergeFieldImageDimensionUnit unit)
{
mImageWidth = imageWidth;
mImageHeight = imageHeight;
mUnit = unit;
}
public void FieldMerging(FieldMergingArgs e)
{
throw new NotImplementedException();
}
public void ImageFieldMerging(ImageFieldMergingArgs args)
{
args.ImageFileName = args.FieldValue.ToString();
args.ImageWidth = new MergeFieldImageDimension(mImageWidth, mUnit);
args.ImageHeight = new MergeFieldImageDimension(mImageHeight, mUnit);
Assert.AreEqual(mImageWidth, args.ImageWidth.Value);
Assert.AreEqual(mUnit, args.ImageWidth.Unit);
Assert.AreEqual(mImageHeight, args.ImageHeight.Value);
Assert.AreEqual(mUnit, args.ImageHeight.Unit);
}
private readonly double mImageWidth;
private readonly double mImageHeight;
private readonly MergeFieldImageDimensionUnit mUnit;
}
See Also
- class MergeFieldImageDimension
- class ImageFieldMergingArgs
- namespace Aspose.Words.MailMerging
- assembly Aspose.Words