MergeFieldImageDimensionUnit Property |
Namespace: Aspose.Words.Fields
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 + "Logo.jpg", ImageDir + "Transparent background logo.png", ImageDir + "Enhanced Windows MetaFile.emf" }); doc.MailMerge.FieldMergingCallback = new MergedImageResizer(200, 200, MergeFieldImageDimensionUnit.Point); doc.MailMerge.Execute(dataTable); doc.UpdateFields(); doc.Save(ArtifactsDir + "Field.MERGEFIELD.ImageDimension.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; }