Jump to content
Sign in to follow this  
joaocarlos07

Ajuda em Variavel de Impressão

Recommended Posts

joaocarlos07

Bom dia , estou a tentar que a o meu form imprima os dados que tenho dentro da richtextbox , em vi o seguinte codigo na net :

http://www.c-sharpcorner.com/UploadFile/mgold/PritinginCSharp11222005040630AM/PritinginCSharp.aspx

So que tenho um problema ele não me conhece o "myReader" ele não declarou a variavel em nenhum lado , tentei resolver o problema e declarei eu a variavel assim, resolve o problema mas quando imprimo o documento sai em branco :

  StringReader myReader = new StringReader(strText);

Se alguem me poder ajudar , Agradeço alguma duvida digam


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

Ja resolvi esse problema fiz o download do programa dele e ele tinha declarado a variavel em cima :

private StringReader myReader;

Mas agora ao fazer o print aparece-me na mesma em branco em vez de aparecer o que tenho dentro da richtextbox :x


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

 private void button10_Click(object sender, EventArgs e)
        {
            //Form2 frm = new Form2();        
            //frm.Show();

            printDialog1.Document = printDocument1;
            string strText = this.richTextBox1.Text;
            myReader = new StringReader(strText);
            if (printDialog1.ShowDialog() == DialogResult.OK)
            {
                this.printDocument1.Print();
            }

            

        }

        protected void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs ev)
        {
            float linesPerPage = 0;
            float yPosition = 0;
            int count = 0;
            float leftMargin = ev.MarginBounds.Left;
            float topMargin = ev.MarginBounds.Top;
            string line = null;
            Font printFont = this.richTextBox1.Font;
            SolidBrush myBrush = new SolidBrush(Color.Black);
            // Work out the number of lines per page, using the MarginBounds.
            linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics);
            // Iterate over the string using the StringReader, printing each line.
            while (count < linesPerPage && ((line = myReader.ReadLine()) != null))
            {
                
                // calculate the next line position based on the height of the font according to the printing device
                yPosition = topMargin + (count * printFont.GetHeight(ev.Graphics));
                // draw the next line in the rich edit control
                ev.Graphics.DrawString(line, printFont, myBrush, leftMargin, yPosition, new StringFormat());
                count++;
            }
            // If there are more lines, print another page.
            if (line != null)
                ev.HasMorePages = true;
            else
                ev.HasMorePages = false;
            myBrush.Dispose();
        }

Este é o codigo que eu tenho


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

Estive a fazer uns testes e por exemplo , se eu escrever alguma coisa na Richtextbox se escrever la directamente depois na impressão aparece não me aparece é as label, textbox e a listview é normal ?

Não da para fazer impressão de label e dos outros componentes ?


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.