Formular feed in c# drucken
Ich versuche ein form feed & skip 1 Seite während des Druckens, jedoch mit den folgenden Zeilen code, ich bin nicht in der Lage, machen ein form feed.
private void InserPageBreak(System.Drawing.Printing.PrintPageEventArgs e)
{
Font sFont = new Font("Arial", 10);
Brush sBrush = Brushes.White;
e.Graphics.DrawString("\f", sFont, sBrush, 0, 0);
}
Benutze ich PrintDialog drucken der Inhalt einer Seite. Ich bin mit "\f" C#'s form-feed-Zeichen.
Irgendwelche Gedanken darüber, wie zu implementieren, der/die diese form feed zu arbeiten ?
PS: ich habe sogar versucht, dieses:
//ASCII-code 12 - Druckers (form feed steuerzeichen.
string test = char.ConvertFromUtf32(12);
e.Graphics.DrawString(test, sFont, sBrush, 0, 0);
intern c# konvertiert, die auf "\f", aber nicht form-feed, wer das umgesetzt hat, "\f", bitte teilen Sie Ihre Gedanken.
- Nur aus Neugier haben Sie versucht, ändern Sie den Pinsel auf Schwarz?
- Nein, ich habe versucht mit dem Schwarzen zu, hat nicht funktioniert.
- Siehe PrintDocument.PrintPage-Ereignis von Form feed nutzen?.
- Danke, ich habe die gleiche Art von Konzept, leider, dass die URL in diesem link von der microsoft site nicht öffnen.
- Nehmen Sie sich die raw-links: msdn.microsoft.com/en-us/library/... oder msdn.microsoft.com/en-us/library/cwbe712d.aspx arbeiten?
- Der erste link, jetzt öffnet es, Dank, aber auch das ist nicht genügend Informationen füttern.
- Es gibt kein Konzept von "form feed" in Windows zu drucken, eine Seite ist die Grundeinheit der print-Ausgabe. Ich schrieb ein PrintDocument-Ersatz emuliert, FormFeed(), finden Sie den code hier: social.msdn.microsoft.com/Forums/en/winforms/thread/...
- Vielen Dank, sorry, dass ich nicht verwenden können, Ihre Steuern in diesem Projekt,obwohl ich Schätze Ihre Hilfe, auch wenn Sie sich blogs.msdn.com/b/csharpfaq/archive/2004/03/12/... erklärt, es ist \f für Seitenvorschub.
- Irgendwelche Gedanken/paar Antworten, bitte?
- Die post, die Sie link-Staaten "Der, \a, \f, \v, \x und \U selten benutzt in meiner Erfahrung." finden Sie unter Seitenwechsel, die Staaten "Form feed) wird selten verwendet, bei der Programmierung mit modernen Druckern in modernen Betriebssystemen wie Windows... Stattdessen form-feeds werden generiert, indem das Programm zum drucken Aufruf einer form-feed-API-Funktion... wenn das drucken über den .NET Framework, die PrintPageEventArgs.HasMorePages-Eigenschaft wird verwendet, um anzuzeigen, dass ein form-feed erwünscht ist."
\f
zu tun, ein form feed funktioniert nur, wenn Sie schreiben, um einen text-stream (d.h. Sie öffnete den Drucker mit einemStreamWriter
oder ähnliches). Wenn Sie den Druck auf eine Leinwand,\f
gerendert wird als ein Zeichen und verwenden Sie den Drucker-Treiber-Schnittstelle (wiePrintPageEventArgs.HasMorePages
) zur Steuerung des paging und so.- Haben Sie links, die ich überprüfen kann, für die \f mit streamwriter zu tun, ein form-feed? Ich habe versucht, aber nicht in der Lage, erfolgreich zu sein. Erstellen Sie eine Datei, write("Page1" , "\f", "Page2") via stream writer, erstellen printdocument drucken Sie die Seite aus, jedoch glaube ich nicht finden \f geschieht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In .NET, die PrintPageEventArgs.HasMorePage Eigenschaft sollte verwendet werden, um das senden eines seitenvorschubs an den Drucker. Durch aufrufen von e.Grafik.DrawString("\f", sFont, sBrush, 0, 0), Sie sind einfach Rendern von text auf das Dokument gedruckt werden soll, die niemals interpretiert werden, indem der Drucker einen Seitenvorschub.
Da Sie wissen, wo Sie wollen, um zu brechen der Seite, sondern nannte Ihre InserPageBreak-Methode, stellen Sie PrintPageEventArgs.HasMorePages = true in Ihrem PrintPage-Ereignisprozedur. Das senden eines seitenvorschubs an den Drucker und Ihren PrintPage-Ereignis wird weiterhin ausgelöst, bis Sie eingestellt HasMorePages = false.
Ich hoffe, das hilft. Es kann nützlich sein, um zu sehen, wie Sie implementiert haben Ihre PrintPage-Ereignisprozedur.
Beispiel:
Verwenden Sie die BeginPrint-handler zu initialisieren, die Daten vor dem drucken
In der PrintPage-handler, drucken Sie eine einzelne Seite in einer Zeit, und legen Sie HasMorePages, um anzugeben, ob oder nicht es ist eine weitere Seite zu drucken. In diesem Beispiel werden drei Seiten gedruckt, eine Schnur auf jeder Seite. Nach der 3. Seite, _pageEnumerator.MoveNext() false zurückgeben und beenden den Druckauftrag.