单击一次即可打印一系列纸张,每个纸张都有细微的更改
本文关键字:一次 单击 一系列 打印 | 更新日期: 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类对其调用"打印"命令。
我想我发布的代码是完成任务的可行方法。