Simple Library to help you with creating receipts using simple Xaml like syntax. This library uses System.Drawing to generate and print receipts
- Generate a receipt i.e. Thermal 80mm receipt or A4 receipt
- Uses Xaml like Syntax to generate a receipt template
NuGet Package
Install-Package SemanticXamlPrint
https://nuget.org/packages/SemanticXamlPrint
class Program
{
static void Main(string[] args)
{
//Get Template Contents
byte[] xamlFileBytes = File.ReadAllBytes("custom.grid.template");
//Use SemanticXamlPrint Parser
IXamlComponent xamlComponent = DefaultXamlParser.Parse(xamlFileBytes);
PrintDocument printDocument = new PrintDocument();
printDocument.PrintPage += (obj, eventAgs) =>
{
//Use SemanticXamlPrint Draw Extension
eventAgs.DrawXamlComponent(xamlComponent);
};
printDocument.Print();
Console.ReadLine();
Environment.Exit(0);
}
}
<Template font="Calibri" FontSize="10" MaxWidth="290" MarginTop="10">
<Grid ColumnWidths="1*4*2" BorderStyle="Solid">
<GridRow>
<Data Grid.Column="0" FontStyle="Bold" Align="Center">QTY</Data>
<Data Grid.Column="1" FontStyle="Bold">ITEM DESC.</Data>
<Data Grid.Column="2" FontStyle="Bold" Align="Right">AMOUNT</Data>
</GridRow>
</Grid>
<Grid ColumnWidths="1*4*2">
<GridRow>
<Data Grid.Column="0" Align="Center">1</Data>
<Data Grid.Column="1" TextWrap ="True">Chips with Vegetable Salad at a Discounted Price</Data>
<Data Grid.Column="2" Align="Right">250.00</Data>
</GridRow>
<GridRow>
<Data Grid.Column="0" Align="Center">1</Data>
<Data Grid.Column="1" TextWrap ="True">HEINKEN</Data>
<Data Grid.Column="2" Align="Right">300.00</Data>
</GridRow>
<GridRow>
<Data Grid.Column="0" Align="Center">1</Data>
<Data Grid.Column="1" TextWrap ="True">PILSNER</Data>
<Data Grid.Column="2" Align="Right">250.00</Data>
</GridRow>
</Grid>
</Template>
<Template font="Calibri" FontSize="10" MaxWidth="290" MarginTop="10">
<!--Other Components Here-->
</Template>
<Data FontStyle="Bold" FontSize="11" TextWrap ="True" Align="Center">I like to Text Wrap</Data>
<Image Source="logo.png" Width="100" Height="100" />
<Grid ColumnWidths="1*4*2" BorderStyle="Solid">
<GridRow>
<Data Grid.Column="0" FontStyle="Bold">Column 1</Data>
<Data Grid.Column="1" FontStyle="Bold">Column 2</Data>
<Data Grid.Column="2" FontStyle="Bold" Align="Right">Column 3</Data>
</GridRow>
</Grid>
<DataRow>
<DataRowCell FontStyle="Bold" X="0">ITEM DESC.</DataRowCell>
<DataRowCell FontStyle="Bold" X="120">RATE</DataRowCell>
<DataRowCell FontStyle="Bold" X="170">QTY</DataRowCell>
<DataRowCell FontStyle="Bold" X="220">AMOUNT</DataRowCell>
</DataRow>
<Line Style="Dash" />
<LineBreak/>