Seitenanzahl für Ausdruck berechnen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Byte
User
Beiträge: 63
Registriert: Dienstag 26. September 2006, 07:04

Hallo,

stehe vor dem Problem, die Seitenanzahl für den Ausdruck zu berechnen. Das braucht man ja scheinbar für die HasPage und GetPageInfo Funktionen des wx.Printout Objekt.

Ich stehe auch noch am Anfang, und frage mich wie ich beginne. Im Endeffekt soll das ganze ein Rechnung drucken können.

Ok, das mit der Adresse, Rechnungsnummer, usw. bekomme ich hin, dafür kann man eine festen Platz vorsehen. Aber der Ausdruck der Positionen ist schon nicht mehr so klar, die können mal länger mal kürzer sein, es soll ein Seitenweiser Übertrag gebildet werden usw.

Wenn jemand Beispiele zum Thema wx.Printout auf Lager hat, würde mir das sicher sehr helfen.

Frage mich gerade noch ob man das irgendwie so basteln könnte dass es möglichst Flexibel für alles mögliche hernehmen kann.

Gruß Christian
Byte
User
Beiträge: 63
Registriert: Dienstag 26. September 2006, 07:04

Hallo,

wie soll man Daten an die printout Klasse übergeben?

1. Die Daten schon so aufbereiten, dass die Printoutklasse den Ausdruck nur noch berechnen braucht. Welches Format wählt man da?

2. Für jede Art Ausdruck eine eigene Printoutklasse, die sozusagen die Vorlage für den Ausdruck ist.

Gibt es hierzu brauchbare Literatur?

Gruß Christian
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Byte hat geschrieben:Hallo,

wie soll man Daten an die printout Klasse übergeben?

1. Die Daten schon so aufbereiten, dass die Printoutklasse den Ausdruck nur noch berechnen braucht. Welches Format wählt man da?

2. Für jede Art Ausdruck eine eigene Printoutklasse, die sozusagen die Vorlage für den Ausdruck ist.

Gibt es hierzu brauchbare Literatur?

Gruß Christian
Hallo Christian, leider kann ich dir da auch keine große Hilfe sein.

Hast du dir im wxPython Demo die Beispiele angesehen?
Nachdem ich ein file suchen gestart habe, verwenden folgende demos wx.Printout

\demo\Calendar.py
\demo\PrintFramework.py

Dann gibt es noch den Source Code vom Buch.

\wxPython\samples\wxPIA_book\Chapter-17\printing.py
Da wird numPages so ermittelt:

Code: Alles auswählen

    def OnPreparePrinting(self):
        # calculate the number of pages
        dc = self.GetDC()
        self.CalculateScale(dc)
        self.CalculateLayout(dc)
        self.numPages = len(self.lines) / self.linesPerPage
        if len(self.lines) % self.linesPerPage != 0:
            self.numPages += 1
Byte
User
Beiträge: 63
Registriert: Dienstag 26. September 2006, 07:04

Hi,

das calendar.py script muss ich mir noch genauer anschauen, die zwei anderen Beispiele habe ich gesehen.

Mein Problem ist hauptsächlich organisatorischer Natur. In onPreparePrinting, könnte ich alle Zeilen durchlaufen, und schauen wann ein Seitenwechsel nötig wird. Gegebenfalls könnten dort auch weitere Elemente, wie Übertrag usw., eingefügt werden. Bei OnPrintPage, braucht man dann aber eigentlich nur die Daten der zu druckenden Seite.

Dazu könnte man wieder die kompletten Daten durchlaufen um an die der aktuellen Seite zu kommen. Andere Möglichkeit wäre evtl. die Daten in onPreparePrinting, Seite für Seite irgendwo zu speichern. Da würden mir wieder ein File oder als Objekt im Speicher einfallen.

Wie gesagt ich habe keine Ahnung, wie man sowas macht, ich kann mich nur langsam herantasten. Es ist auch schwer über diese Thema was genaues zu lesen, weil ich nicht richtig weiß wonach ich suchen soll.

Vielleicht hat ja doch schon mal jemand sowas gemacht, und kann mir einen Tipp geben.

Gruß Christian
Antworten