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 merged images.
@Test
public void mergeFieldImageDimension() throws Exception {
    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[]
                    {
                            getImageDir() + "Aspose.Words.gif",
                            getImageDir() + "Watermark.png",
                            getImageDir() + "dotnet-logo.png"
                    });

    doc.getMailMerge().setFieldMergingCallback(new MergedImageResizer(450.0, 200.0, MergeFieldImageDimensionUnit.POINT));
    doc.getMailMerge().execute(dataTable);

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

/// <summary>
/// Creates a data table with a single column
/// </summary>
private DataTable createDataTable(final String tableName, final String columnName, final String[] columnContents) {
    DataTable dataTable = new DataTable(tableName);
    dataTable.getColumns().add(new DataColumn(columnName));

    for (String s : columnContents) {
        DataRow dataRow = dataTable.newRow();
        dataRow.set(0, s);
        dataTable.getRows().add(dataRow);
    }

    return dataTable;
}

/// <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 double mImageWidth;
    private double mImageHeight;
    private 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.