2014-11-15 2 views
3

Я делаю программу Wordpad. Я делаю эту функцию, в которой вы нажимаете эту кнопку, и печатает на свой принтер по умолчанию. Я сделал некоторые исследования, и я нашел функциональный код, который печатает на мой принтер:Как печатать с полями

private void buttonPrint_Click(object sender, EventArgs e) 
    { 
     string print = "" + textBody.Text; 

     PrintDocument p = new PrintDocument(); 
     p.PrintPage += delegate(object sender1, PrintPageEventArgs e1) 
     { 
      e1.Graphics.DrawString(print, new Font("Times New Roman", 12), new  SolidBrush(Color.Black), new RectangleF(0, 0, p.DefaultPageSettings.PrintableArea.Width, p.DefaultPageSettings.PrintableArea.Height)); 
     }; 
     try 
     { 
      p.Print(); 
     } 
     catch (Exception ex) 
     { 
      throw new Exception("Exception Occured While Printing", ex); 
     } 
    } 

Это работает в настоящее время, но мне было интересно, смогу ли я сделать это с полями, которые не имеют в настоящее время. Все, что он делает, это:

<Top of Page> 
<Message> 

На верхней части, боках (влево, вправо) и снизу нет полей. Как я могу изменить свой код, чтобы иметь поля?

+1

Wordpad использует RichTextBox, (почти) тот же, у вас есть на панели инструментов. Печать его содержимого, чтобы текст отображался точно на бумаге, немного связан, но очень хорошо освещен в этой статье [MSDN] (http://msdn.microsoft.com/en-us/library/ms996492.aspx). –

ответ

1

На PrintDocument вы можете установить Margins на DefaultPageSettings объекта:

Margins margins = new Margins(100,100,100,100); 
p.DefaultPageSettings.Margins = margins; 
+1

Спасибо, это очень помогло! –

Смежные вопросы