Rechnungsdruck, Papierquelle

Hallo NG,

Ich stehe gerade am Anfang eines Rechnungsdruckprojektes, dass mit LL umgesetzt werden soll. Programmiersprache ist C#. Es sollen Postscript-Files erstellt werden, die anschließend für den Druck und die Kuvertierung an ein Druckcenter gesendet werden.
Im einfachsten Fall sind die Rechnungen so aufgebaut: Deckblatt, Detailbereich (1-n Seiten), Zahlschein(e).
Für jeden Bereich wird ein eigener Papierschacht verwendet.

Meine Frage an alle, die Erfahrung mit ähnlichen Projekten haben:

  • Wie löst ihr die Sache mit der Druckerschachtsteuerung? Die LL-Standardfunktionalitäten sind ja scheinbar nicht flexibel genug, um 3-4 verschiedene Schächte innerhalb eines Dokuments zu verwenden.

Einen möglichen Lösungsweg hab ich ausprobiert:
1, Erstellen einer Vorschaudatei (LL)
2, Seite für Seite durchloopen und mit Hilfe der .NET-Klassen „System.Drawing.Graphics“ und „System.Drawing.Printing.PrintDocument” seitenweise auf den Drucker schicken. Dabei kann man auch auf jeder Seite die „PaperSource“ setzen.

Funktioniert zwar, wäre aber trotzdem für weitere Ideen/Anregungen dankbar!

Grüße,
Markus

Hallo Markus,

ein ListLabelDocument entspricht einem PrintDocument aus .NET. Du kannst daher das QueryPageSettings-Ereignis behandeln:

(VB.NET)
Public Sub Print()
Dim myListLabelDocument As ListLabelDocument
myListLabelDocument.PreviewFile = myPreviewFile
myListLabelDocument.PrintController = New Printing.StandardPrintController
myListLabelDocument.PrinterSettings.PrinterName = myPrinterName

myListLabelDocument.Print() 'das Dokument wird in einem Rutsch gedruckt

End Sub

Private Sub myListLabelDocument_QueryPageSettings(ByVal sender As Object, ByVal e As QueryPageSettingsEventArgs) Handles myListLabelDocument.QueryPageSettings
'Hier kann man für jede Seite einen anderen Schacht einstellen
'-> Seiten selber zählen bzw. Bedingungen auswerten
e.PageSettings.PaperSource = e.PageSettings.PrinterSettings.PaperSources(myPaperSource)
End Sub

Viele Grüße,
Micha

Hallo NG,

Ich stehe gerade am Anfang eines Rechnungsdruckprojektes, dass mit LL umgesetzt werden soll. Programmiersprache ist C#. Es sollen Postscript-Files erstellt werden, die anschließend für den Druck und die Kuvertierung an ein Druckcenter gesendet werden.
Im einfachsten Fall sind die Rechnungen so aufgebaut: Deckblatt, Detailbereich (1-n Seiten), Zahlschein(e).
Für jeden Bereich wird ein eigener Papierschacht verwendet.

Meine Frage an alle, die Erfahrung mit ähnlichen Projekten haben:

  • Wie löst ihr die Sache mit der Druckerschachtsteuerung? Die LL-Standardfunktionalitäten sind ja scheinbar nicht flexibel genug, um 3-4 verschiedene Schächte innerhalb eines Dokuments zu verwenden.

Einen möglichen Lösungsweg hab ich ausprobiert:
1, Erstellen einer Vorschaudatei (LL)
2, Seite für Seite durchloopen und mit Hilfe der .NET-Klassen „System.Drawing.Graphics“ und „System.Drawing.Printing.PrintDocument” seitenweise auf den Drucker schicken. Dabei kann man auch auf jeder Seite die „PaperSource“ setzen.

Funktioniert zwar, wäre aber trotzdem für weitere Ideen/Anregungen dankbar!

Grüße,
Markus

Hallo Micha,

Deine Lösung ist ja um einiges eleganter!

Vielen Dank,
Markus

Hallo Markus,

ein ListLabelDocument entspricht einem PrintDocument aus .NET. Du kannst daher das QueryPageSettings-Ereignis behandeln:

(VB.NET)
Public Sub Print()
Dim myListLabelDocument As ListLabelDocument
myListLabelDocument.PreviewFile = myPreviewFile
myListLabelDocument.PrintController = New Printing.StandardPrintController
myListLabelDocument.PrinterSettings.PrinterName = myPrinterName

myListLabelDocument.Print() 'das Dokument wird in einem Rutsch gedruckt

End Sub

Private Sub myListLabelDocument_QueryPageSettings(ByVal sender As Object, ByVal e As QueryPageSettingsEventArgs) Handles myListLabelDocument.QueryPageSettings
'Hier kann man für jede Seite einen anderen Schacht einstellen
'-> Seiten selber zählen bzw. Bedingungen auswerten
e.PageSettings.PaperSource = e.PageSettings.PrinterSettings.PaperSources(myPaperSource)
End Sub

Viele Grüße,
Micha

Hallo NG,

Ich stehe gerade am Anfang eines Rechnungsdruckprojektes, dass mit LL umgesetzt werden soll. Programmiersprache ist C#. Es sollen Postscript-Files erstellt werden, die anschließend für den Druck und die Kuvertierung an ein Druckcenter gesendet werden.
Im einfachsten Fall sind die Rechnungen so aufgebaut: Deckblatt, Detailbereich (1-n Seiten), Zahlschein(e).
Für jeden Bereich wird ein eigener Papierschacht verwendet.

Meine Frage an alle, die Erfahrung mit ähnlichen Projekten haben:

  • Wie löst ihr die Sache mit der Druckerschachtsteuerung? Die LL-Standardfunktionalitäten sind ja scheinbar nicht flexibel genug, um 3-4 verschiedene Schächte innerhalb eines Dokuments zu verwenden.

Einen möglichen Lösungsweg hab ich ausprobiert:
1, Erstellen einer Vorschaudatei (LL)
2, Seite für Seite durchloopen und mit Hilfe der .NET-Klassen „System.Drawing.Graphics“ und „System.Drawing.Printing.PrintDocument” seitenweise auf den Drucker schicken. Dabei kann man auch auf jeder Seite die „PaperSource“ setzen.

Funktioniert zwar, wäre aber trotzdem für weitere Ideen/Anregungen dankbar!

Grüße,
Markus