У меня есть текстовый шаблон времени выполнения в моем проекте WPF.Я попытался распечатать содержимое файла шаблона времени выполнения при нажатии кнопки WPF.Вот пример кода, который у меня есть:
**ReportTemplate.tt**
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ parameter name="Model" type="Model.TicketData"#>
<html>
<head><br/>
<style type="text/css">
body { font-family: Calibri;width:150; margin:0}
table { text-align:center; }<br/>
.container {width:300px;height:100}
</style>
</head>
<body>
<div class="container">
<header><h3 style="text-align:center"><#=Properties.Settings.Default.Logo#></h3>
</header>
<hr/>]
<h1 style="text-align:center;">Ticket #</h1>
<h1 style="text-align:center;"><#=Model.TokenNumber#></h1>
<hr/>
<table style="width:100%; margin:0">
<thead><th>Desk</th><th>Date</th><th>Time</th></thead>
<tr>
<td><#=Model.DeskName#></td>
<td><#=Model.Date#></td>
<td><#=Model.Time#></td>
</tr>
</table>
<hr/>
<div>
</body>
</html>
Это мой класс Model внутри папки с именем "Model" в моем проекте. TicketData.cs
public class TicketData
{
public string Date { get; set; }
public string Time { get; set; }
public string Agency { get; set; }
public string DeskName { get; set; }
public int TokenNumber { get; set; }
}
Это окно UserControl, в котором есть кнопка, позволяющая при нажатии кнопки печатать содержимое ReportTemplate.tt в термопринтере Real Pos.
TokenView.xaml
public partial class TokenView : UserControl
{
Button btn;
String keyword;
ReportTextTemplate rpt;
public TokenView()
{
InitializeComponent();
loadTT();
}
public void loadTT()
{
Random rnd = new Random();
int token = rnd.Next(32);
rpt = new ReportTextTemplate();
rpt.Session = new Dictionary<string, object>();
rpt.Session["Model"] = new TicketData
{
TokenNumber = token,
DeskName = "Conveyance",
Date = System.DateTime.Now.ToString("dd/MM/yy"),
Time = DateTime.Now.ToString("hh:mm tt"),
Agency = Properties.Settings.Default.Logo,
};
rpt.Initialize();
}
private void btnPrintTicket(object sender, RoutedEventArgs e)
{
btn = (Button)sender;
keyword = btn.Content.ToString();
Debug.Print(rpt.TransformText());
}
}
Пожалуйста, любая помощь будет прекрасной.Спасибо, ребята ...