Avatar billede bjarkebundgaard Nybegynder
09. august 2006 - 18:17 Der er 7 kommentarer

Printe RTF.

Hejsa eksperter.

Jeg har en lille applikation, der fra en RTF box gemmer dokumentet i en sql database så det kan hentes igen. Det virker fint, men når jeg vil printe RTF dokumentet, så kommer formateringen ud på printet og ikke selve teksten (giver det mening for jer?).

Hvordan kommer jeg over den hurdle?

PFT
Bjarke
Avatar billede bjarkebundgaard Nybegynder
09. august 2006 - 18:37 #1
Og her koden for knappen samt print funktionen:

protected void buttonPrint_Click(object sender, EventArgs e)
        {
            printDialog1.Document = printDocument1;
            string strText = this.richTextBox1.Rtf;
            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();
        }
Avatar billede mcgoat Nybegynder
10. august 2006 - 10:26 #2
hvad mener du med formateringen og ikke teksten kommer ud? Mener du at hvis du har en tekst der er fed så bliver den skrevet ud i fed, men du vil bare have alt skrevet ud normalt?
Avatar billede bjarkebundgaard Nybegynder
10. august 2006 - 14:18 #3
Hehe. Ja var lidt i tvivl om jeg fik mig forklaret ordenltligt. Det der sker når jeg printer RTF inholdet fra tekstboksen ud er, at der kommer "RTF kode", altså kommer der ikke en linje med fed skrift ud, men en masse garbage. Hvad jeg egentlig gerne vil have er vel en WYSIWYG udskrift af min RTF tekstbox.

Jeg gemmer indholdet af tekstboksen som et objekt i min SQL DB, og formateringen kommer fint med, når jeg henter det igen. Det er simpelthen i udskriften fra printeren det går galt.
Avatar billede bjarkebundgaard Nybegynder
10. august 2006 - 16:06 #4
Fanndt dette link: http://www.developerfusion.co.uk/show/244/

Det giver vist eksemplet i visual basic, men jeg er simpelthen ikke kompetent nok til at kunne gennemskue at få det lavet i C#.

Ved ikke om det kan hjælpe nogen med at hjælpe mig :o)

Pft.
Bjarke
Avatar billede wisen Nybegynder
16. august 2006 - 09:01 #5
Avatar billede bjarkebundgaard Nybegynder
16. august 2006 - 11:31 #6
Hold op hvor har jeg meget at lærer! Vil det sige at med denne klaase i sit program så skal man bruge den "nye" RichtextboxEx istedet for en almindelig richtextbox?
Avatar billede wisen Nybegynder
21. august 2006 - 10:57 #7
Ja, det er det nemmeste :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester