public class MergeFieldImageDimension
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 double mImageWidth; private double mImageHeight; private int mUnit; }
Constructor Summary |
---|
MergeFieldImageDimension(doublevalue)
Creates an image dimension instance with the given value in points. |
MergeFieldImageDimension(doublevalue, intunit)
Creates an image dimension instance with the given value and the given unit. |
Property Getters/Setters Summary | ||
---|---|---|
int | getUnit() | |
void | setUnit(intvalue) | |
The unit. The value of the property is MergeFieldImageDimensionUnit integer constant. | ||
double | getValue() | |
void | setValue(doublevalue) | |
The value. |
public MergeFieldImageDimension(double value)
value
- The value.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 double mImageWidth; private double mImageHeight; private int mUnit; }
public MergeFieldImageDimension(double value, int unit)
value
- The value.unit
- A 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 double mImageWidth; private double mImageHeight; private int mUnit; }
public int getUnit() / public void setUnit(int value)
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 double mImageWidth; private double mImageHeight; private int mUnit; }
public double getValue() / public void setValue(double value)
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 double mImageWidth; private double mImageHeight; private int mUnit; }