com.aspose.words

Class MergeFieldImageDimensionUnit

  • java.lang.Object
    • com.aspose.words.MergeFieldImageDimensionUnit
public class MergeFieldImageDimensionUnit 
extends java.lang.Object

Utility class containing constants. Specifies an unit of an image dimension (i.e. the width or the height) used across a mail merge process.

Example:

Shows how to set the dimensions of images as MERGEFIELDS accepts them during a mail merge.
public void mergeFieldImageDimension() throws Exception {
    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.assertEquals("Image:ImageColumn", field.getFieldName());

    // Create a suitable data source.
    DataTable dataTable = new DataTable("Images");
    dataTable.getColumns().add(new DataColumn("ImageColumn"));
    dataTable.getRows().add(getImageDir() + "Logo.jpg");
    dataTable.getRows().add(getImageDir() + "Transparent background logo.png");
    dataTable.getRows().add(getImageDir() + "Enhanced Windows MetaFile.emf");

    // Configure a callback to modify the sizes of images at merge time, then execute the mail merge.
    doc.getMailMerge().setFieldMergingCallback(new MergedImageResizer(200.0, 200.0, MergeFieldImageDimensionUnit.POINT));
    doc.getMailMerge().execute(dataTable);

    doc.updateFields();
    doc.save(getArtifactsDir() + "Field.MERGEFIELD.ImageDimension.docx");
}

/// <summary>
/// Sets the size of all mail merged images to one defined width and height.
/// </summary>
private static class MergedImageResizer implements IFieldMergingCallback {
    public MergedImageResizer(final double imageWidth, final double imageHeight, final int unit) {
        mImageWidth = imageWidth;
        mImageHeight = imageHeight;
        mUnit = unit;
    }

    public void fieldMerging(final FieldMergingArgs args) {
        throw new UnsupportedOperationException();
    }

    public void imageFieldMerging(final ImageFieldMergingArgs args) {
        args.setImageFileName(args.getFieldValue().toString());
        args.setImageWidth(new MergeFieldImageDimension(mImageWidth, mUnit));
        args.setImageHeight(new MergeFieldImageDimension(mImageHeight, mUnit));

        Assert.assertEquals(mImageWidth, args.getImageWidth().getValue());
        Assert.assertEquals(mUnit, args.getImageWidth().getUnit());
        Assert.assertEquals(mImageHeight, args.getImageHeight().getValue());
        Assert.assertEquals(mUnit, args.getImageHeight().getUnit());
    }

    private final double mImageWidth;
    private final double mImageHeight;
    private final int mUnit;
}

Field Summary
static final intPOINT = 0
The point (i.e. 1/72 inch).
static final intPERCENT = 1
The percent of the original image dimension value.
 

    • Field Detail

      • POINT = 0

        public static final int POINT
        The point (i.e. 1/72 inch).
      • PERCENT = 1

        public static final int PERCENT
        The percent of the original image dimension value.