Shape
Contenuti
[
Nascondere
]ImageFieldMergingArgs.Shape property
Specifica la forma che il motore di stampa unione deve inserire nel documento.
public Shape Shape { get; set; }
Osservazioni
Quando questa proprietà è specificata, il motore di stampa unione ignora tutte le altre proprietà comeImageFileName
OImageStream
e inserisce semplicemente la forma nel documento.
Utilizzare questa proprietà per controllare completamente il processo di unione di un campo di unione di immagini. Ad esempio, è possibile specificareWrapType
qualsiasi altra proprietà della forma per perfezionare il nodo risultante. Tuttavia, tieni presente che sei responsabile della fornitura del contenuto della forma.
Esempi
Mostra come impostare le dimensioni delle immagini così come vengono accettate da MERGEFIELDS durante una stampa unione.
public void MergeFieldImageDimension()
{
Document doc = new Document();
// Inserisci un MERGEFIELD che accetterà immagini da una sorgente durante una stampa unione. Utilizza il codice di campo per fare riferimento
// una colonna nell'origine dati contenente i nomi dei file di sistema locali delle immagini che desideriamo utilizzare nella stampa unione.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldMergeField field = (FieldMergeField)builder.InsertField("MERGEFIELD Image:ImageColumn");
// L'origine dati dovrebbe avere una colonna denominata "ImageColumn".
Assert.AreEqual("Image:ImageColumn", field.FieldName);
// Creare una fonte dati adatta.
DataTable dataTable = new DataTable("Images");
dataTable.Columns.Add(new DataColumn("ImageColumn"));
dataTable.Rows.Add(ImageDir + "Logo.jpg");
dataTable.Rows.Add(ImageDir + "Transparent background logo.png");
dataTable.Rows.Add(ImageDir + "Enhanced Windows MetaFile.emf");
// Configura un callback per modificare le dimensioni delle immagini al momento dell'unione, quindi esegui la stampa unione.
doc.MailMerge.FieldMergingCallback = new MergedImageResizer(200, 200, MergeFieldImageDimensionUnit.Point);
doc.MailMerge.Execute(dataTable);
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.MERGEFIELD.ImageDimension.docx");
}
/// <summary>
/// Imposta la dimensione di tutte le immagini unite su una larghezza e un'altezza definite.
/// </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);
Assert.Null(args.Shape);
}
private readonly double mImageWidth;
private readonly double mImageHeight;
private readonly MergeFieldImageDimensionUnit mUnit;
}
Guarda anche
- class Shape
- class ImageFieldMergingArgs
- spazio dei nomi Aspose.Words.MailMerging
- assemblea Aspose.Words