Pesquisar na Comunidade
Mostrando resultados para as tags ''Graphics c#''.
Encontrado 1 registro
-
Boa tarde!! Desenvolvi um sistema em C# (WINDOWS FORMS) que cria alguns desenho em graphics de acordo com algumas medidas enviadas pelo usuário. Neste mesmo sistema o usuário tem a opção de imprimir a imagem em escala real ou em tamanho A4 e esta escala real muitas vezes é maior que uma folha A4 e precisa ser impressa em mais de uma folha, mas não estou conseguindo fazer isso, está imprimindo apenas a primeira folha. Preciso de algo parecido com o paint, que imprime em várias paginas, alguém me ajuda?? egue meu código: private void button3_Click(object sender, EventArgs e) { //Documento que será impresso printDialog1.Document = printDocument1; //Se clicar no botão print if( printDialog1.ShowDialog()==DialogResult.OK ) { //Imprimimi o que está no documento. Esse documento será preenchido na função PrintDocument1_PrintPage. printDocument1.Print(); } #region desenhar QuadradoRedondo quadred = new QuadradoRedondo(); quadrado_redondo quadrado_redondo = new quadrado_redondo(); Titulo tituilo = new Titulo(); quadred.Controls.Clear(); cgomo_real cv = new cgomo_real(); Graphics graphics = this.CreateGraphics(); graphics.Clear(Color.Black); double R, x, altura, altura_peca, espessura, rzao, espaco, maior, dif, dif_prox2, xx, yy, reta_ab, reta_aa, reta_b4; string text; int divisoes; //dados de entrada R = double.Parse(txtrzao.Text);//dado digitado pelo usuario xx = double.Parse(txtx.Text);//dado digitado pelo usuario yy = double.Parse(txty.Text);//dado digitado pelo usuario altura_peca = double.Parse(txtaltura.Text);//dado digitado pelo usuario espessura = double.Parse(txt_espessura.Text);//dado digitado pelo usuario divisoes = int.Parse(combodivisoes.Text); //fim double[] alturas = new double[divisoes + 1]; //calcular alturas alturas = quadrado_redondo.Calculo_Alturas(R, xx, yy, altura_peca, espessura, divisoes); //fim double z = yy - (R / 2); reta_b4 = Math.Sqrt((altura_peca * altura_peca) + (z * z)); reta_aa = yy - (espessura * 2); reta_ab = (xx - (espessura * 2)); double espacototal = 2 * Math.PI * ((R / 2) - espessura); if (espacototal < 0) { espacototal = espacototal * -1; } espacototal = Math.Round(espacototal, 2); espaco = espacototal / 12; espaco = Math.Round(espaco, 2); label6.Text = espaco.ToString(); rzao = R / 2; x = 250; //calcular maior altura maior = cv.Calcular_Maior(alturas, divisoes * 2); //fim //desenho inicio e.Graphics.PageUnit = GraphicsUnit.Millimeter; // quadrado_redondo.Desenho(e.Graphics, alturas, alturas, espacototal, divisoes, maior, espacototal, "1:1", yy, R, xx, altura_peca, espessura); #region desenho x=0; double esp = 0, diag, x1, x2, y1, y2, diag2, x12, x22, y12, y22; espaco = espacototal / (divisoes); espaco = Math.Round(espaco, 2); Pen Azul = new Pen(Color.LightBlue, Convert.ToInt32(0.5)); Pen Amarelo = new Pen(Color.Yellow, Convert.ToInt32(0.5)); Pen Branco = new Pen(Color.Black, Convert.ToInt32(0.5)); Pen vermelho = new Pen(Color.Red, Convert.ToInt32(0.5)); Pen verde = new Pen(Color.Green, Convert.ToInt32(0.5)); string myText; PointF pointF7 = new PointF(); SolidBrush solidBrushAzul = new SolidBrush(Color.LightBlue); SolidBrush solidBrushAmarelo = new SolidBrush(Color.Yellow); SolidBrush solidBrushBranxo = new SolidBrush(Color.White); SolidBrush solidBrushvermelho = new SolidBrush(Color.Red); FontFamily fontFamily = new FontFamily("Arial"); PointF pointF = new PointF(); Font font = new Font(fontFamily, 10, FontStyle.Regular, GraphicsUnit.Point); StringFormat stringFormat = new StringFormat(); stringFormat.FormatFlags = StringFormatFlags.DirectionVertical; StringFormat stringFormat2 = new StringFormat(); stringFormat2.FormatFlags = StringFormatFlags.DirectionRightToLeft; #region Retas double reta_ab_desenho =quadrado_redondo.Retas("ab", yy, R, xx, altura_peca, espessura), diag3, x123, y123, x223, y223; double reta_aa_desenho = quadrado_redondo.Retas("aa", yy, R, xx, altura_peca, espessura); z = (xx - R); double reta_b4_desenho = quadrado_redondo.Retas("b4", yy, R, xx, altura_peca, espessura); maior = maior + 15; Azul = new Pen(Color.Black, Convert.ToInt16(0.5)); Amarelo = new Pen(Color.Black, Convert.ToInt16(0.5)); Branco = new Pen(Color.Black, Convert.ToInt16(0.5)); vermelho = new Pen(Color.Black, Convert.ToInt16(0.5)); verde = new Pen(Color.Black, Convert.ToInt16(0.5)); solidBrushAzul = new SolidBrush(Color.Black); solidBrushAmarelo = new SolidBrush(Color.Black); solidBrushBranxo = new SolidBrush(Color.Black); x = 2; #endregion for (int a = 0; a <= divisoes; a++) { x1 = (x + reta_ab_desenho + (reta_aa_desenho / 2) - esp); x2 = (x + reta_ab_desenho); y1 = maior; y2 = maior - alturas[a]; diag = (Math.Pow(x1 - x2, 2) - Math.Pow(y1 - y2, 2)); if (diag < 0) { diag = diag * -1; } diag = Math.Sqrt(diag); diag = Math.Round(diag); dif = diag - alturas[a]; dif = maior - (alturas[a] + dif); if (a != divisoes) { e.Graphics.DrawLine(Branco, Convert.ToInt32(x + reta_ab_desenho), Convert.ToInt32((maior)), Convert.ToInt32(x + reta_ab_desenho + (reta_aa_desenho / 2) - esp), Convert.ToInt32((dif)));//linhas vesticais e.Graphics.DrawLine(Branco, Convert.ToInt32(x + reta_ab_desenho + reta_aa_desenho), Convert.ToInt32(maior), Convert.ToInt32(x + reta_ab_desenho + (reta_aa_desenho / 2) + esp), Convert.ToInt32(dif));//linhas vesticais } else { e.Graphics.DrawLine(Branco, Convert.ToInt32((x + reta_ab_desenho + (reta_aa_desenho / 2) - esp)), Convert.ToInt32((dif)), Convert.ToInt32(x + reta_ab_desenho), Convert.ToInt32((maior)));//linhas vesticais e.Graphics.DrawLine(Branco, Convert.ToInt32((x + reta_ab_desenho + (reta_aa_desenho / 2) + esp)), Convert.ToInt32((dif)), Convert.ToInt32(x + reta_ab_desenho + reta_aa_desenho), Convert.ToInt32((maior)));//linhas vesticais } pointF7 = new PointF(Convert.ToInt32(x + reta_ab_desenho + (reta_aa_desenho / 2) + esp), Convert.ToInt32(dif - 12)); e.Graphics.DrawLine(verde, Convert.ToInt32((x + reta_ab_desenho + (reta_aa_desenho / 2) + esp)), Convert.ToInt32((dif)), Convert.ToInt32((x + reta_ab_desenho + (reta_aa_desenho / 2) + esp)), Convert.ToInt32(dif - 10));//linhas vesticais pointF7 = new PointF(Convert.ToInt32(x + reta_ab_desenho + (reta_aa_desenho / 2) - esp), Convert.ToInt32(dif - 12)); e.Graphics.DrawLine(verde, Convert.ToInt32((x + reta_ab_desenho + (reta_aa_desenho / 2) - esp)), Convert.ToInt32((dif)), Convert.ToInt32((x + reta_ab_desenho + (reta_aa_desenho / 2) - esp)), Convert.ToInt32(dif - 10));//linhas vesticais esp += espaco; } } }
- 2 respostas
-
- Graphics c#
- Print Graphics
-
(e %d mais)
Tags: