单击一次即可打印一系列纸张,每个纸张都有细微的更改

本文关键字:一次 单击 一系列 打印 | 更新日期: 2023-09-27 17:50:30


我应该打印一系列发票给我们的客户。有一个模板发票。我必须更改每个客户的姓名、地址和金额,然后打印出来
我在网上搜索了很多时间,但没有任何解决方案可以谈论这种事情
模板非常简单:收件人,
$customer_name,
$cutumer_address
您已收到本月$bill_amount的账单
非常感谢。CAT团队。

以下是在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);
        }

但这里的问题是,我在打印之前创建临时文件。有更好的方法吗?

非常感谢您的帮助。

单击一次即可打印一系列纸张,每个纸张都有细微的更改

如果发票模板是Word文档-您可以使用字符串替换并循环打印精确的发票。

例如:在模板中,您可以设置##名称##、##地址##、##金额##等……然后在循环中用实际值替换它们。文档准备好后,您可以使用PrintDocument类对其调用"打印"命令。

我想我发布的代码是完成任务的可行方法。