I have a GridControl whose datasource is a DataTable. The DataTable has two columns and one of them contains Bitmap. The RowAutoHeight property of GridView is set to true and GridControl display fine in form. But if I use ReportGenerator to generate a report of the GridView and print it, the Bitmap in cell is very small in printing result, it seems that GridView.RowAutoHeight does not work when printing. I have tried assigning the RepositoryItemPictureEdit as an editor but it did't help.
private void PrintButtonClick(object sender, EventArgs e)
{
ReportGenerationOptions options = new ReportGenerationOptions();
options.AutoFitToPageWidth = DefaultBoolean.True;
var report = ReportGenerator.GenerateReport(gridView1, options);
report.ShowPreviewDialog();
}
public BarCode CreateQrCode(String text, float sizeInMm)
{
BarCode barCode = new BarCode();
barCode.Symbology = Symbology.QRCode;
barCode.CodeText = text;
barCode.BackColor = Color.White;
barCode.ForeColor = Color.Black;
barCode.RotationAngle = 0;
barCode.CodeBinaryData = Encoding.Default.GetBytes(barCode.CodeText);
barCode.Options.QRCode.CompactionMode = QRCodeCompactionMode.Byte;
barCode.Options.QRCode.ErrorLevel = QRCodeErrorLevel.Q;
barCode.Options.QRCode.Version = QRCodeVersion.AutoVersion;
barCode.Options.QRCode.ShowCodeText = false;
var g = this.CreateGraphics();
barCode.DpiX = g.DpiX;
barCode.DpiY = g.DpiY;
barCode.Module = 1;
barCode.Unit = GraphicsUnit.Millimeter;
barCode.ImageHeight = sizeInMm;
barCode.ImageWidth = sizeInMm;
return barCode;
}
private void FormLoad(object sender, EventArgs e)
{
table.Columns.Add("Text", typeof(String));
table.Columns.Add("QR Code", typeof(Image));
gridControl1.DataSource = table;
foreach (DataColumn tableColumn in table.Columns)
{
if (tableColumn.DataType == typeof(Image))
{
RepositoryItemPictureEdit pictureEdit = gridControl1.RepositoryItems.Add("PictureEdit") as RepositoryItemPictureEdit;
pictureEdit.SizeMode = PictureSizeMode.Zoom;
pictureEdit.NullText = " ";
gridView1.Columns[tableColumn.ColumnName].ColumnEdit = pictureEdit;
gridControl1.RepositoryItems.Add(pictureEdit);
}
}
table.Rows.Add("foo", CreateQrCode("foo", 30).BarCodeImage);
table.Rows.Add("bar", CreateQrCode("bar", 30).BarCodeImage);
}