2013-07-22 6 views
6

Aby uzyskać prosty system do odbioru, muszę jakoś zdefiniować dokument szablonu z prostym formatowaniem, wypełnić go danymi i wydrukować na standardowej drukarce Windows. Musi pracować z usługą Windows. Jakiej technologii najlepiej użyć?Drukowanie przy użyciu szablonu

EDYTOWANIE:

Próbowałem używać formularzy PDF. Zdefiniowałem kilka pól tekstowych i wypełniłem je iTextSharp. To działało aż do momentu, w którym musiałem je wydrukować, co jest naprawdę trudne, ponieważ musisz bezpośrednio użyć pliku wykonywalnego czytnika.

Alternatywą, która wydaje się być lepiej zintegrowana z .NET, wydaje się być użycie XPS. Czy XPS zapewnia podobną funkcjonalność?

+3

Drukowanie z usługi to naprawdę zły pomysł. Sterowniki drukarki zostały stworzone dla aplikacji komputerowych. Powiedzą ci, że kaseta z tonerem jest w połowie opróżniona i gdzie zamówić kolejną. Jeśli tak się stanie w usłudze, to po prostu się nie wydrukuje i nie masz pojęcia, dlaczego. Szablon może być wszystkim, co zrobi mapa bitowa.Wiele programów generujących raporty z opcjami wypełniaczy jest już dostępne, musisz sam je kupić. –

+0

Piszę sterowniki drukarek na życie i muszę się zgodzić z Hansem Passantem. Drukowanie z usługi Windows prawie nigdy nie jest dobrym pomysłem. – Jon

Odpowiedz

-1

Kończymy korzystanie z formatu EPSON TM-Intelligent series.

1

Istnieje wiele sposobów;

Utwórz plik tekstowy i wyszukaj i zastąp słowa kluczowe odpowiednimi wartościami. Zapisz/wydrukuj to.

Utwórz plik html i wyszukaj i zastąp słowa kluczowe odpowiednimi wartościami. Zapisz/wydrukuj to.

Utwórz plik PDF z wbudowanymi polami i zastąp je odpowiednimi wartościami. Zapisz/wydrukuj to.

I więcej ...

3

Tworzenie własnego szablonu odbioru za pomocą HTML lub zwykły tekst.

Przykład wykorzystania 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

Cóż, naprawdę nie chcę sam tego pisać. W jaki sposób wydrukuję to później? Czy istnieje sposób użycia czegoś takiego jak Razor, a następnie wydrukowania? – Philippe

+0

Zobacz edytuj. Metoda użyje teraz szablonu template.html do utworzenia nowego pliku o nazwie receipt.html z dowolnymi parametrami, które są do niego przekazywane. Nie znam Brzytwy. –

1

Można spróbować ActiveReports

Link to ComponentOne

To nie jest za darmo .. ale działa do drukowania rzeczy, jak chcesz. Po prostu utwórz szablony i umieść je w swoim kodzie.