Замена текста и печать в C#

170
07 мая 2018, 21:39

У меня вопрос. Как мне с помощью C# создать к примеру текстовый документ по определенному шаблону, и отправить его на печать, заменяя переменные в тексте. К примеру:

            Поставка груза:
Название: textbox1.Text .
Ответственный: Combobox1.Text .

Чтобы в итоге было:

            Поставка груза:
Название: Андромеда.
Ответственный: Андрей Васильевич Прага.
Answer 1

Возьмем для примера самый элементарный вариант.

Создадим проект Windows Forms с такой формой

Добавим на форму PrintDocument и PrintPreviewDialog и свяжем их так

Код будет таким

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
    }
    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        e.Graphics.DrawString("Поставка груза",
                                new Font("Times New Romans", 16, FontStyle.Bold),
                                Brushes.Black,
                                new PointF(220, 100));
        e.Graphics.DrawString(label1.Text,
                                new Font("Times New Romans", 14, FontStyle.Regular),
                                Brushes.Black,
                                new PointF(100, 150));
        e.Graphics.DrawString(textBoxName.Text + ".",
                                new Font("Times New Romans", 14, FontStyle.Regular),
                                Brushes.Black,
                                new PointF(260, 150));
        e.Graphics.DrawString(label2.Text,
                                new Font("Times New Romans", 14, FontStyle.Regular),
                                Brushes.Black,
                                new PointF(100, 185));
        e.Graphics.DrawString(comboBoxFirm.Text + ".",
                                new Font("Times New Romans", 14, FontStyle.Regular),
                                Brushes.Black,
                                new PointF(260, 185));
    }
    private void buttonPrint_Click(object sender, EventArgs e)
    {
        if (printPreviewDialog1.ShowDialog() == DialogResult.OK)
        {
            //размер бумаги
            PrinterSettings settings = new PrinterSettings();
            printDocument1.PrinterSettings = settings;
            var a4 = settings.PaperSizes
                                        .Cast<PaperSize>()
                                        .First(size => size.Kind == PaperKind.A4);
            printDocument1.DefaultPageSettings.PaperSize = a4;
            printDocument1.Print();
        }
    }
}

Получается так

READ ALSO
Шифрование ECDSA с кривой brainpoolP160r1

Шифрование ECDSA с кривой brainpoolP160r1

Никак не могу реализовать или найти реализованный алгоритм шифрования ECDSA с параметрами кривой brainpoolP160r1

128
Access и символ новой строки

Access и символ новой строки

Делаю вставку изNET в MS Access

134
медиа запросы вопрос

медиа запросы вопрос

Подскажите пожалуйста ребятаВопрос такой,есть 2 картинки, однa должна отображаться при разрешении экрана 768px, a когда экран становится 320px,...

181