problem
when draw image on print document it return system.Byte[] and not return image .
when draw image on print document it return system.Byte[] and not return image .
sql field is MemberImage with datataype varbinarymax .
on datatable of print document i defined image as
- DataTable table = new DataTable();
- table.Columns.Add("MemberCode", typeof(string));
- table.Columns.Add("MemberImage", typeof(Byte[]));
- if (dtDisplayDataPayment.Rows[i]["MemberImage"] != System.DBNull.Value)
- {
- byte[] photo_aray = (byte[])dtDisplayDataPayment.Rows[i]["MemberImage"];
- System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
- Image img = (Image)converter.ConvertFrom(photo_aray);
- newRow["MemberImage"] = imageToByteArray(img);
- }
- on print _document event i do as following
- foreach (DataColumn column in dtGetChecked.Columns)
- {
- g.DrawRectangle(pen, x, y, width, height);
- SizeF size = g.MeasureString(column.ColumnName, fonte);
- float xPadding = (width - size.Width) / 2;
- g.DrawString(column.ColumnName, fonte, brush, x + xPadding, y + 5);
- x += width;
- }
- x = 0;
- y += 30;
- int columnCount = dtGetChecked.Columns.Count;
- foreach (DataRow row in dtGetChecked.Rows)
- {
- for (int i = 0; i < columnCount; i++)
- {
- g.DrawRectangle(pen, x, y, width, height);
- SizeF size = g.MeasureString(row[i].ToString(), font);
- float xPadding = (width - size.Width) / 2;
- g.DrawString(row[i].ToString(), font, brush, x + xPadding, y + 5);
- x += width;
- }
- x = 0;
- y += 30;
- }
- under button print private void button1_Click(object sender, EventArgs e)
- {
- //for datatable
- PrintDocument document = new PrintDocument();
- document.PrintPage += new PrintPageEventHandler(document_PrintPage);
- PrintPreviewDialog ppDialog = new PrintPreviewDialog();
- ppDialog.Document = document;
- ((ToolStripButton)((ToolStrip)ppDialog.Controls[1]).Items[0]).Enabled = false;
- ppDialog.Show();
but image not display it display as system.Byte[]
so that how to solve this problem please
Salman BegPosted Jan 31, 2019, 9:22 PM