2013-07-22 4 views
6

Для простой системы reciept мне нужно как-то определить шаблонный документ с простым форматированием, заполнить его данными и распечатать его на стандартном Windows-принтере. Он должен работать на службе Windows. Какую технологию мне лучше всего использовать?Печать с использованием шаблона

EDIT:

Я попытался с помощью PDF-форм. Я определил пару текстовых полей и заполнил их iTextSharp. Он работал до того момента, когда я должен был их распечатать, что очень сложно, так как вы должны напрямую использовать программу для чтения.

Альтернативой, которая, кажется, лучше интегрирована в .NET, кажется, является использование XPS. Имеет ли XPS аналогичную функциональность?

+3

Печать из службы - это действительно плохая идея. Драйверы принтера были созданы для настольных приложений. Они скажут вам, что картридж с тонером наполовину пуст и где заказать другой. Если это произойдет в сервисе, тогда он просто не будет печатать, и вы не знаете, почему. Шаблон может быть любым, растровое изображение будет делать.Множество и множество программ генератора отчетов с заполненными пробелами функциями, вам нужно будет совершать покупки для них самостоятельно. –

+0

Я пишу драйверы принтеров для жизни, и я должен согласиться с Хансом Пассантом. Печать из службы Windows почти никогда не является хорошей идеей. – Jon

ответ

-1

Мы используем формат серии EPSON TM-Intelligent.

1

Существуют различные способы;

Создайте текстовый файл и выполните поиск и замените ключевые слова соответствующими значениями. Сохранить/Распечатать.

Создайте html-файл и выполните поиск и замените ключевые слова соответствующими значениями. Сохранить/Распечатать.

Создайте файл PDF со встроенными полями и замените их соответствующими значениями. Сохранить/Распечатать.

И еще ...

3

Создайте свой собственный шаблон квитанции с использованием 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(); 
    } 
} 
+0

Ну, я действительно не хочу писать этот материал сам. Также как я буду печатать это после? Есть ли способ использовать что-то вроде Razor, а затем распечатать его? – Philippe

+0

См. Edit. Теперь метод будет использовать template.html для создания нового файла с именем receipt.html с любыми параметрами, переданными ему. Я не знаком с Razor. –

1

Вы можете попробовать ActiveReports

Link to ComponentOne

Это не бесплатно .. но это работает для печати вещи, как вы хотите. Просто создайте Шаблоны и вставьте их в свой код.

Смежные вопросы