使用模板打印

时间:2013-07-22 13:55:27

标签: c# .net printing

对于一个简单的收集系统,我需要以某种方式定义一个简单格式的模板文档,用数据填充它并在标准的Windows打印机上打印。它必须在Windows服务上工作。我最好用什么技术?

编辑:

我尝试使用PDF表格。我定义了几个文本框并用iTextSharp填充它们。它一直工作到我必须打印它们,这非常困难,因为你必须直接使用读者可执行文件。

似乎更好地集成到.NET中的替代方案似乎是使用XPS。 XPS是否提供类似的功能?

6 个答案:

答案 0 :(得分:4)

使用html或纯文本创建自己的收据模板。

使用html的示例:

<强> HTML

<html>
  <head>
    <title>Receipt</title>
  </head>
  <body>
    <div>The price: <%Price%></div>
    <div>The time: <%Time%></div>
    <div>Payment Method: <%PaymentMethod%></div>
  </body>
</html>

<强> C#

    static void Main(string[] args)
    {
        CreateReceipt("€1.50", "09.30", "Cash");
    }

    private static void CreateReceipt(string price, string time, string paymentMethod)
    {
        string bodyFile;
        string template = System.IO.Directory.GetCurrentDirectory() + "\\template.html";
        using (StreamReader reader = new StreamReader(template))
        {
            bodyFile = reader.ReadToEnd();
            bodyFile = bodyFile.Replace("<%Price%>", price);
            bodyFile = bodyFile.Replace("<%Time%>", time);
            bodyFile = bodyFile.Replace("<%PaymentMethod%>", paymentMethod);
        }
        FileStream fs = File.OpenWrite(System.IO.Directory.GetCurrentDirectory() + "\\receipt.html");
        StreamWriter writer = new StreamWriter(fs, Encoding.UTF8);
        writer.Write(bodyFile);
        writer.Close();
    }
}

答案 1 :(得分:3)

使用Mustache创建HTML模板并填充它们。

.Net interfaces非常易于使用。

获得HTML后,you can use a WebBrowser control - 屏幕外 - 即可打印。

答案 2 :(得分:1)

有各种方式;

创建一个文本文件,并使用适当的值搜索和替换关键字。保存/打印此内容。

创建一个html文件,并使用适当的值搜索和替换关键字。保存/打印此内容。

创建包含内置字段的PDF文件,并将其替换为适当的值。保存/打印此内容。

还有更多......

答案 3 :(得分:1)

如果您还没有看过这个想法,可以打印HTML DIV

How do I print part of a rendered HTML page in JavaScript?

答案 4 :(得分:1)

您可以尝试使用ActiveReports

Link to ComponentOne

它不是免费的..但它可以根据您的意愿打印东西。 只需创建模板并将其嵌入代码中即可。

答案 5 :(得分:-1)

我们努力使用EPSON TM-Intelligent系列的格式。