7

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

编辑:

我尝试使用 PDF-Forms。我定义了几个文本框并用 iTextSharp 填充它们。它一直工作到我不得不打印它们,这真的很难,因为你必须直接使用阅读器可执行文件。

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

4

6 回答 6

5

使用 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();
    }
}
于 2013-07-22T15:36:51.070 回答
4

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

.Net 接口非常易于使用。

获得 HTML 后,您可以使用 WebBrowser 控件(屏幕外)进行打印。

于 2013-07-31T19:26:58.640 回答
1

有多种方式;

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

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

创建一个带有内置字段的 PDF 文件并将其替换为适当的值。保存/打印这个。

和更多...

于 2013-07-22T13:59:39.567 回答
1

只是为了一个想法,如果你还没有看到这个,你可以打印 HTML DIV

如何在 JavaScript 中打印呈现的 HTML 页面的一部分?

于 2013-07-29T12:15:48.670 回答
1

你可以试试 ActiveReports

链接到 ComponentOne

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

于 2013-09-25T07:36:10.763 回答
-1

我们最终使用 EPSON TM-Intelligent 系列的格式。

于 2013-07-31T12:12:23.347 回答