Druckvorschau - (jahaaa - mal wieder ...)

Für Fragen von Einsteigern und Programmieranfängern...
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6858
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Druckvorschau - (jahaaa - mal wieder ...)

Beitrag von af0815 »

Ich habe mir den Source mal angesehen, nur ist mir nicht klar wo die Aufgaben erstellt werden.

Ich habe erwartet das es ein Grid oder Array gibt in dem die Aufgaben stehen und diese dann angezeigt werden sollen.

Oder wie soll das ganze genau ablaufen. Denn dein Problem ist ja 'nur' die Visualisierung. Aslo erklär mir bitte den Aufgabengenerator, dann kann ich mir auch die benötigte Visualisierung besser vorstellen.

Ich nehme an du benötigst eine Preview am PC und später dieselbe Ausgabe am Drucker.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

klaros
Beiträge: 10
Registriert: Mi 16. Jan 2013, 20:17

Re: Druckvorschau - (jahaaa - mal wieder ...)

Beitrag von klaros »

af0815 hat geschrieben:Ich habe mir den Source mal angesehen, nur ist mir nicht klar wo die Aufgaben erstellt werden.

Ich habe erwartet das es ein Grid oder Array gibt in dem die Aufgaben stehen und diese dann angezeigt werden sollen.

Oder wie soll das ganze genau ablaufen. Denn dein Problem ist ja 'nur' die Visualisierung. Aslo erklär mir bitte den Aufgabengenerator, dann kann ich mir auch die benötigte Visualisierung besser vorstellen.

Ich nehme an du benötigst eine Preview am PC und später dieselbe Ausgabe am Drucker.
Die Aufgaben werden im Beispielprgramm tatsächlich noch gar nicht erzeugt, das ich ja "nur" die Druckvorschau erst einmal in den Griff bekommen möchte.

Später wollte ich dann (sofern ich die eingangs geposteten Routinen verwenden werde) ausgabe() jeweils anpassen:
Also statt ausgabe() - GenerierePlusaufgabenBis10() oder GeneriereMinusaufgabenBis10() usw.
Wie diese Aufgaben auf den Canvas geschrieben werden, ist noch offen und wahrscheinlich variabel.
Da ich an einer Förderschule große Schrift und übersichtliche Anordnungen benötige, denke ich vorwiegend daran, die Ziffern, Rechenzeichen und Platzhalter (wenn's anschaulich / schön werden soll auch Grafiken) direkt auf dem "Blatt" anzuordnen.
(z. B.: Din A4-Blatt-füllend 3 Plusaufgaben nebeneinander, davon 5 Reihen).

Im Anhang findet ihr nun das Beispielprojekt aus dem Buch.
(Ich hatte in einer ersten Fassung den Code abgetippt um mich intensiver damit zu befassen. Beide Versionen zeigen das gleiche Problem. Also kein Tippfehlerproblem - es sei denn der Quellcode auf Papier und CD hat ne Macke.)
Dateianhänge
Vorschau_Delphi3.zip
Beispielprojekt Druckvorschau (Delphi) mit Lazarusproblemen?
(88.51 KiB) 73-mal heruntergeladen

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6858
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Druckvorschau - (jahaaa - mal wieder ...)

Beitrag von af0815 »

Im Ordner example befindet sich das Beispiel Postcript, es geht auch über Lazarus -> Werkzeuge -> Beispielprojekte -> samplepostscriptcanvas.
Das ist ähnlich dem was du willst. Es erzeugt auf einem Canvas (zB: A4) ein Postscriptfile. Mit GsView kann man es sich ansehen und drucken. Das Beispiel zeigt auch einfach wie man am Canvas arbeitet.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

klaros
Beiträge: 10
Registriert: Mi 16. Jan 2013, 20:17

Re: Druckvorschau - (jahaaa - mal wieder ...)

Beitrag von klaros »

af0815 hat geschrieben:Im Ordner example befindet sich das Beispiel Postcript, es geht auch über Lazarus -> Werkzeuge -> Beispielprojekte -> samplepostscriptcanvas.
Das ist ähnlich dem was du willst. Es erzeugt auf einem Canvas (zB: A4) ein Postscriptfile. Mit GsView kann man es sich ansehen und drucken. Das Beispiel zeigt auch einfach wie man am Canvas arbeitet.
Auch hier: Vielen Dank - und ein Aber ...
Die Ausgaberoutinen werden hilfreich sein, wenn ich selber was bastele.

Leider funktioniert das Beispiel nicht einfach so, wenn ich unter Win 8 Ghostview und Ghostscript installiere.
Der Zugriff auf die Exe fluppt nicht wie gewünscht.
Das würde ja wieder prima Recherche ergeben, wie man das hinbekommt (Und dann in eine Installationsdatei für den Normalsterblichen verpackt.). :(
Außerdem ist die Ausgabe in eine PS oder PDF ganz witzig, aber nur so mittel elegant. :)
'Ne PDF anzeigen kann jeder. :wink:
(Na ok, das Postscriptbeispiel jetzt mal gerade nicht ... )

Grüße,
Klaros

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6858
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Druckvorschau - (jahaaa - mal wieder ...)

Beitrag von af0815 »

Die Beispiele zeigen eigentlich den Weg für Dein Programm auf. Ich kenne das Buch und auch die Hintergründe warum dort so gearbeitet wird.

Es geht darum, das etwas dargestellt werden soll, unabhängig von der Auflösung des Gerätes. Besonders bei Druckern ist es ja die Arbeit in px problematisch, da jeder Drucker seine eigenen Auflösungen hat, bzw. haben kann. Das Problem ist so alt wie die Ausgabetechniken. Mittlerweile ist es ja auch bei den Bildschirmen auch so.

Was ist die Botschaft für Dich. Erstelle die Ausgabe so, da sie mit neutralen Werten arbeitet (zB in Millimeter) und lass deine Ausgaberoutinen das auf die Auflösung des Canvas umrechnen. Wenn es entsprechend gelöst ist, so ist es egal ob du den Bildschirm oder den Drucker verwendest.

Dein Beispiel von Anfang des Threads probiert das mittels (Delphi-)Windowsboardmittel zu tun. Man darf auch nicht vergessen das es jetzt teilweise bessere Möglichkeiten gibt einen Canvas zu erstellen der geeignet ist. In dem Besipiel aus den Examples von Lazarus wird das viel schöner und vor allen Betriebssystemunabhängig gezeigt.
Das Beispiel von Lazarus sollte sich auf andere Contexte (Bildschirm, Drucker) umschreiben lassen.

Übrigends kann man mit ps2pdf die PostScriptDatei in PDF umwandeln.

Wegen mittel elegant: Umschreiben, das es auf den Bildschirm oder Drucker direkt geht :-)

PS: Dein Beispiel lässt sich bei mir (Win7/Lazarus 1.0.4) gar nicht betreiben, da ich keine Drucker in der VM habe.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten