ImageFieldMergingArgsImageHeight Property
Specifies the image height for the image to insert into the document.

Namespace: Aspose.Words.MailMerging
Assembly: Aspose.Words (in Aspose.Words.dll) Version: 20.1
Syntax
public MergeFieldImageDimension ImageHeight { get; set; }

Property Value

Type: MergeFieldImageDimension
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 height 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 merged images.
public void MergeFieldImageDimension()
{
    Document doc = new Document();

    // Insert a merge field where images will be placed during the mail merge
    DocumentBuilder builder = new DocumentBuilder(doc);
    builder.InsertField("MERGEFIELD Image:ImageColumn");

    // Create a data table for the mail merge
    // The name of the column that contains our image filenames needs to match the name of our merge field
    DataTable dataTable = CreateDataTable("Images", "ImageColumn",
        new string[]
        {
            ImageDir + "Aspose.Words.gif",
            ImageDir + "Watermark.png",
            ImageDir + "dotnet-logo.png"
        });

    doc.MailMerge.FieldMergingCallback = new MergedImageResizer(450, 200, MergeFieldImageDimensionUnit.Point);
    doc.MailMerge.Execute(dataTable);

    doc.UpdateFields();
    doc.Save(ArtifactsDir + "Field.MergeFieldImageDimension.docx");
}

/// <summary>
/// Creates a data table with a single column.
/// </summary>
private static DataTable CreateDataTable(string tableName, string columnName, string[] columnContents)
{
    DataTable dataTable = new DataTable(tableName);
    dataTable.Columns.Add(new DataColumn(columnName));

    foreach (string s in columnContents)
    {
        DataRow dataRow = dataTable.NewRow();
        dataRow[0] = s;
        dataTable.Rows.Add(dataRow);
    }

    return dataTable;
}

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