-
Total de itens
3 -
Registro em
-
Última visita
Posts postados por Milena Adão
-
-
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á impressoprintDialog1.Document = printDocument1;//Se clicar no botão printif( printDialog1.ShowDialog()==DialogResult.OK ){//Imprimimi o que está no documento. Esse documento será preenchido na função PrintDocument1_PrintPage.printDocument1.Print();}#region desenharQuadradoRedondo 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 entradaR = double.Parse(txtrzao.Text);//dado digitado pelo usuarioxx = double.Parse(txtx.Text);//dado digitado pelo usuarioyy = double.Parse(txty.Text);//dado digitado pelo usuarioaltura_peca = double.Parse(txtaltura.Text);//dado digitado pelo usuarioespessura = double.Parse(txt_espessura.Text);//dado digitado pelo usuariodivisoes = int.Parse(combodivisoes.Text);//fimdouble[] alturas = new double[divisoes + 1];//calcular alturasalturas = quadrado_redondo.Calculo_Alturas(R, xx, yy, altura_peca, espessura, divisoes);//fimdouble 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 alturamaior = cv.Calcular_Maior(alturas, divisoes * 2);//fim//desenho inicioe.Graphics.PageUnit = GraphicsUnit.Millimeter;// quadrado_redondo.Desenho(e.Graphics, alturas, alturas, espacototal, divisoes, maior, espacototal, "1:1", yy, R, xx, altura_peca, espessura);#region desenhox=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 Retasdouble 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;#endregionfor (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 vesticaise.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 vesticaise.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 vesticaispointF7 = 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 vesticaisesp += espaco;}}} -
Boa tarde!
Estou desenvolvendo um sistema que desenha peças de caldeiraria, estou utilizando Graphics.
Neste sistema depois que o usuário envia as medidas e recebe o desenho na tela ele tem opção de imprimir a imagem da peça gerada em uma folha A4 ou em tamanho original. Este tamanho original, na maioria das vezes, precisa ser impresso em mais de uma folha A4, pois o mesmo não cabe em uma folha apenas. alguém sabe um código que faça imprimir pedaços do desenho em cada folha? Obrigada.
Graphics c#
em .NET
Postado
<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>
Oi! Eu não consegui fazer isso no meu código, pois só consigo saber o ponto inicial e final de cada linha que desenho no meu Graphics. Quer um exemplo seu sim, vai me ajuda bastante!