Плиззз. подскажите,вот так делаю пичать конверта: | Код | int mintCurrent = 0;
bool ForcePageSize(System.Drawing.Printing.PrintDocument printDocument1, System.Drawing.Printing.PaperKind MyPaperKind) { for (int i = 0; i < printDocument1.PrinterSettings.PaperSizes.Count; ++i) { if (printDocument1.PrinterSettings.PaperSizes[i].Kind == MyPaperKind) { printDocument1.DefaultPageSettings.PaperSize = printDocument1.PrinterSettings.PaperSizes[i]; return true; } } return false; } private void btn_PrintPreviewEnvelope_Click(object sender, EventArgs e) { mintCurrent = 0;
printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D; printPreviewDialog1.SetBounds(20, 20, this.Width, this.Height); printDocument1.DefaultPageSettings.Landscape = true;
ForcePageSize(this.printDocument1, System.Drawing.Printing.PaperKind.Number10Envelope);
printPreviewDialog1.Document = printDocument1; printPreviewDialog1.ShowDialog(); } private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { ///This options for Print collections line's from DataGridView Font font1 = new Font("Microsoft Sans Serif", 13); txt_File.Font = new Font(txt_File.Font, FontStyle.Regular);
bool blnHasMorePage = false; string strText = string.Empty; int intCur = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++) { if (!dataGridView1.Rows[i].IsNewRow) { bool blnCheck = false; bool.TryParse(Convert.ToString(dataGridView1.Rows[i].Cells["Status"].Value.ToString()), out blnCheck);
if (blnCheck) { if (intCur == mintCurrent) { //Получение вашего текста из грида, вместо текстбоксов. if (!string.IsNullOrEmpty(strText)) { strText = strText + Environment.NewLine; }
strText = strText + string.Format(" TO : {0} \n\n {1} \n {2} \n {3}", Convert.ToString(dataGridView1.Rows[i].Cells["ClientName"].Value), Convert.ToString(dataGridView1.Rows[i].Cells["Address"].Value), Convert.ToString(dataGridView1.Rows[i].Cells["City"].Value), Convert.ToString(dataGridView1.Rows[i].Cells["PostalCode"].Value)); } else if (intCur > mintCurrent) { blnHasMorePage = true; break; }
intCur = intCur + 1; } } }
this.txt_File.Text = strText;
int intPrintAreaHeight; int intPrintAreaWidth; int marginLeft; int marginTop;
e.Graphics.DrawImage(this.pictureBox12.Image, 15, 15, this.pictureBox12.Size.Width, this.pictureBox12.Size.Height); e.Graphics.DrawImage(this.pictureBox11.Image, 440, 305, this.pictureBox11.Size.Width, this.pictureBox11.Size.Height);
intPrintAreaHeight = printDocument.DefaultPageSettings.PaperSize.Height - printDocument.DefaultPageSettings.Margins.Top - printDocument.DefaultPageSettings.Margins.Bottom; intPrintAreaWidth = printDocument.DefaultPageSettings.PaperSize.Width - printDocument.DefaultPageSettings.Margins.Left - printDocument.DefaultPageSettings.Margins.Right; printDocument.DefaultPageSettings.Margins.Bottom = 0; // 0,5 inches printDocument.DefaultPageSettings.Margins.Top = 170; // 0,5 inches printDocument.DefaultPageSettings.Margins.Left = 300; // 0,5 inches printDocument.DefaultPageSettings.Margins.Right = 0;
marginLeft = printDocument.DefaultPageSettings.Margins.Left; // X coordinate marginTop = printDocument.DefaultPageSettings.Margins.Top; // Y coordinate
int intLineCount = (int)(intPrintAreaHeight / font1.Height); RectangleF rectPrintingArea = new RectangleF(marginLeft, marginTop, intPrintAreaWidth, intPrintAreaHeight); StringFormat fmt = new StringFormat(StringFormatFlags.LineLimit);
int intLinesFilled; int intCharsFitted;
e.Graphics.MeasureString(txt_File.Text.Substring(intCurrentChar), font1, new SizeF(intPrintAreaWidth, intPrintAreaHeight), fmt, out intCharsFitted, out intLinesFilled);
// Print the text to the page.
e.Graphics.DrawString(txt_File.Text.Substring(intCurrentChar), font1, Brushes.Black, rectPrintingArea, fmt);
intCurrentChar += intCharsFitted;
// HasMorePages tells the printing module whether another PrintPage event // should be fired.
if (intCurrentChar < (txt_File.Text.Length - 1)) { e.HasMorePages = true; } else { mintCurrent = mintCurrent + 1;
e.HasMorePages = blnHasMorePage; intCurrentChar = 0; }
}
|
на printpreview все вижу как надо,конверт с картинками и с информацией из datagridview,а когда распечатываю выходит пустой конверт( т.е картинки есть,а информации нет) ??? Подскажите где ошибка. Зарание большое спасибо.
|