2011-04-18 48 views
0


我應該向我們的客戶打印發票數組。有一個模板發票。我必須更改每個客戶的名稱,地址和金額並打印出來。
我在網上搜索了很多時間,但沒有解決方案來談論這種事情。
模板很簡單: 要,
$ CUSTOMER_NAME,
$ cutomer_address
您所需支付的費用$ bill_amount本月。
謝謝, CAT團隊。打印陣列文件與未成年人變化在每個1點擊

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

但這裏的漁獲物我創建的臨時文件在打印之前打印的數組文件的代碼。有更好的方法嗎?

任何幫助,非常感謝。

+1

到目前爲止你有什麼? – 2011-04-18 07:01:11

回答

0

我猜我發佈的代碼是一個可行的方式來完成我的任務。

0

如果發票模板是Word文檔 - 您可以使用字符串替換並循環顯示確切的發票。

例如:在模板中,您可以設置## NAME ##,## ADDRESS ##,## AMOUNT ##等等,然後在您的循環中用實際值替換它們。文檔準備就緒後,您可以使用PrintDocument類調用Print命令。