Распечатать массив документов с незначительными изменениями в каждом в 1 клик - PullRequest
0 голосов
/ 18 апреля 2011


Я должен распечатать массив счетов для наших клиентов. Существует шаблон счета. Я должен изменить имя, адрес и сумму на нем для каждого клиента и распечатать их.
Я искал много времени в сети, но нет решения, которое бы говорило о подобных вещах.
Шаблон довольно прост: К
$ Customer_name,
$ Cutomer_address
Вам выставлен счет на сумму $ bill_amount за этот месяц.
Спасибо, CAT Team.

Ниже приведен код, который печатает массив файлов в 1 клик

private void btnPrintInvoiceLetters_Click(object sender, EventArgs e)
        {
            //Create temp working directory and in it the files to be printed
            string tempDir = SetupFiles();

            string[] filePaths = Directory.GetFiles(tempDir, "*.txt", SearchOption.TopDirectoryOnly);

            foreach (string path in filePaths)
            {
                reader = new StreamReader(path);

                //Create a Verdana font with size 10
                verdana10Font = new Font("Verdana", 10);
                //Create a PrintDocument object
                PrintDocument pd = new PrintDocument();
                //Add PrintPage event handler
                pd.PrintPage += new PrintPageEventHandler(this.PrintTextFileHandler);
                //Call Print Method
                pd.DefaultPageSettings.PaperSize = new PaperSize("PaperA5", 582, 826);
                pd.PrinterSettings.DefaultPageSettings.Color = false;
                pd.Print();
                //Close the reader
                if (reader != null)
                {
                    reader.Close();
                    File.Delete(path);
                }
            }

            Directory.Delete(tempDir);
        }

Но загвоздка в том, что я создаю временные файлы перед их печатью. Есть ли лучший подход?

Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2011

Полагаю, код, который я разместил, является реальным способом выполнения моей задачи.

0 голосов
/ 18 апреля 2011

Если шаблон счета-фактуры является документом Word - вы можете использовать String Replacement и выполнить циклический просмотр для печати точных счетов-фактур.

Например: в шаблоне вы можете установить ## NAME ##, ## ADDRESS##, ## AMOUNT ## и т. Д., А затем в цикле замените их фактическими значениями.Как только документ готов, вы можете вызвать команду Print с помощью класса PrintDocument.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...