друкувати багатофункціональне текстове поле на певній вкладці з кількома сторінками C #

Я роблю веб-браузер з декількома вкладками, і кожна вкладка, ймовірно, буде мати новий сайт відрізняється від інших вкладок. тепер, що я намагаюся зробити, це друкувати сторінку на певній вкладці, і сторінка може складатися з декількох сторінок, коли я намагаюся друкувати. це мій код, і проблема з кодом полягає в тому, що він друкує тільки одну сторінку, а на останньому вкладці було відкрито. будь-які пропозиції:

  //this is the printDocemnt from the toolbox
  private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        Font font1 = new Font("Arial", 16, FontStyle.Regular);
        e.Graphics.DrawString(rtb.Text, font1, Brushes.Black, 100, 100);//rtb.Text is a richtextbox object that i initialize in the beginning of the form

    }

    //this is the printbutton just a normal button
    private void PrintButton_Click(object sender, EventArgs e)
    {
        printDialog1.ShowDialog();
        printDocument1.Print();
    }
0
Як можна мати один RichTextBox для програми, яка підтримує кілька екземплярів веб-переглядача? Як RTB навіть пов'язаний з браузерами?
додано Автор Hans Passant, джерело
Якщо ви використовуєте стандартний об'єкт типу браузера, він повинен мати власні методи друку.
додано Автор Kell, джерело
Я надсилаю запит http і отримую дані як html-код, я не використовую інструмент візуалізації чи веб-перегляду, а на кожній новій вкладці створюється розширене текстове поле
додано Автор dori naji, джерело

1 Відповіді

Так я зробив це: документ друку містить цей код:

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        Font font1 = new Font("Arial", 10, FontStyle.Regular);
        //e.Graphics.DrawString(tabsProperties[tabsProperties.IndexOf(new TabProperties(this.tabControl1.SelectedIndex))].TabHtml, font1, Brushes.Black, 100, 100);



        int charactersOnPage = 0;
        int linesPerPage = 0;

       //Sets the value of charactersOnPage to the number of characters 
       //of stringToPrint that will fit within the bounds of the page.
        e.Graphics.MeasureString(stringToPrint, font1,
            e.MarginBounds.Size, StringFormat.GenericTypographic,
            out charactersOnPage, out linesPerPage);

       //Draws the string within the bounds of the page
        e.Graphics.DrawString(stringToPrint, font1, Brushes.Black,
            e.MarginBounds, StringFormat.GenericTypographic);

       //Remove the portion of the string that has been printed.
        stringToPrint = stringToPrint.Substring(charactersOnPage);

       //Check to see if more pages are to be printed.
        e.HasMorePages = (stringToPrint.Length > 0);

    }

це кнопка друку:

   private void PrintButton_Click(object sender, EventArgs e)
    {
        stringToPrint = tabsProperties[tabsProperties.IndexOf(new TabProperties(this.tabControl1.SelectedIndex))].TabHtml;

        printDialog1.ShowDialog();
        printDocument1.Print();

    }
0
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug