Drucker - Papiergroesse
-
- Beiträge: 22
- Registriert: Di 19. Okt 2010, 17:23
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Kaiserstuhl
Drucker - Papiergroesse
Hallo Experten - ich habe ein echt trickreiches Problem mit Ausdrucken. Also: Ich benutze einen CAB-Etikettendrucker zur Ausgabe von Endlosetiketten unter Suse 11.4 (Lazarus 0.9.28.2). Die Etiketten sind im PPD-File des Druckers entsprechend definiert, der CUPS-Testseitenausdruck ist OK.
Etiketten-Format ist B=75mm, H=58mm. Postscriptmaessig auf 1/72-Zoll umgerechnet ergibt das also B=75/25.4*72=213 , H analog dazu 165. Soweit - sogut und auch so im PPD-File fixiert.
Lt. Doku im Unit Printers liefert die Methode TPrinter.GetPageWidth (bzw. .GetPageHeight) die Groesse der Seite in Points/Pixels. Bei meiner Etikettengroesse und einer Druckeraufloesung von 300 dpi (die wird von TPrinter auch korrekt ermittelt) sollte man also B=75/25.4*300=885 dots, bzw. H=669 dots erwarten.
ABER: TPrinter.PageWidth liefert 2550 und .PageHeight liefert 3300 dots zurueck?! Also - erstens sind die Werte fuer Breite/Hoehe offensichtlich vertauscht und zweitens irgendwie falsch. Und dementsprechend sind anschliessend die Werte fuer die BoundingBox im erzeugten PostScript-Dokument auch falsch (wenn ich die zurueckrechne komme ich auf ein Format von 11" x 8.5" - ist das ein LETTER-Format? Und falls ja - warum?)
Entweder ich habe irgendwas nicht oder falsch verstanden oder etwas laeuft hier schief...
So - let me know...
Etiketten-Format ist B=75mm, H=58mm. Postscriptmaessig auf 1/72-Zoll umgerechnet ergibt das also B=75/25.4*72=213 , H analog dazu 165. Soweit - sogut und auch so im PPD-File fixiert.
Lt. Doku im Unit Printers liefert die Methode TPrinter.GetPageWidth (bzw. .GetPageHeight) die Groesse der Seite in Points/Pixels. Bei meiner Etikettengroesse und einer Druckeraufloesung von 300 dpi (die wird von TPrinter auch korrekt ermittelt) sollte man also B=75/25.4*300=885 dots, bzw. H=669 dots erwarten.
ABER: TPrinter.PageWidth liefert 2550 und .PageHeight liefert 3300 dots zurueck?! Also - erstens sind die Werte fuer Breite/Hoehe offensichtlich vertauscht und zweitens irgendwie falsch. Und dementsprechend sind anschliessend die Werte fuer die BoundingBox im erzeugten PostScript-Dokument auch falsch (wenn ich die zurueckrechne komme ich auf ein Format von 11" x 8.5" - ist das ein LETTER-Format? Und falls ja - warum?)
Entweder ich habe irgendwas nicht oder falsch verstanden oder etwas laeuft hier schief...
So - let me know...
Wer mehr denkt hat mehr vom Hirn...
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Drucker - Papiergroesse
linus hat geschrieben:ABER: TPrinter.PageWidth liefert 2550 und .PageHeight liefert 3300 dots zurueck?! Also - erstens sind die Werte fuer Breite/Hoehe offensichtlich vertauscht und zweitens irgendwie falsch. Und dementsprechend sind anschliessend die Werte fuer die BoundingBox im erzeugten PostScript-Dokument auch falsch (wenn ich die zurueckrechne komme ich auf ein Format von 11" x 8.5" - ist das ein LETTER-Format? Und falls ja - warum?)
Es ist ja egal, was du als Höhe und was als Breite definierst. Der Testseitenausdruck scheint das ganze wohl auch erst um 90° gedreht zu haben. Und eine Drehung um 90° sollte ja dann kein Problem darstellen.
-
- Beiträge: 22
- Registriert: Di 19. Okt 2010, 17:23
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Kaiserstuhl
Re: Drucker - Papiergroesse
carli hat geschrieben:Es ist ja egal, was du als Höhe und was als Breite definierst
Nö - ist es natürlich nicht. Denn stell Dir mal vor, eine Textanwendung bekommt falsche Informationen über die Seitenbreite - wie soll die Anwendung korrekte Zeilenumbrüche erzeugen oder einen ordentlichen Blocksatz machen? Und wenn die Seitenhöhe nicht stimmt - wie soll denn dann ein "weicher" Seitenumbruch in einem Fließtextbereich ermittelt werden?
Außerdem ist die CUPS-Testseite richtig, gerade eben weil CUPS die Testseite als Querformat ausgibt, d.h. wenn man die so erzeugte Testseite lesbar vor sich hält, ist die lange Seite des Papiers unten quer, genauso, wie es sein soll - nur die Methoden von TPrinter (via Package Printer4Lazarus) liefern falsche Werte.
Wer mehr denkt hat mehr vom Hirn...
-
- Beiträge: 22
- Registriert: Di 19. Okt 2010, 17:23
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Kaiserstuhl
Re: Drucker - Papiergroesse
Nachtrag: Also, das ist ja noch viel schlimmer, als ich dachte: Ich habe jetzt (so rein spaßeshalber) das selbe für meinen Brother-Drucker ausprobiert, der standardmäßig mit A4-Papier bestückt ist und auch so eingerichtet ist. Und es sieht so aus, als ob TPrinter.PageWidth immer den Wert 2550 und .PageHeight immer den Wert 3300 dots zurück liefert. Die selben Werte kommen auch, wenn ich diesen Drucker z.B. auf A5 einrichte. (Interessanterweise wechselt der Rückgabewert von TPrinter.PaperSize.PaperName, wenn ich das Papierformat wechsle - also irgendwas wird da schon ausgewertet).
Stehen diese Werte womöglich hart im Printer-Package drin, weil der Entwickler garnicht daran dachte, daß es auch Europäer gibt, die mit US-Letter nix am Hut haben??? Bin ich ernsthaft der erste, der sich das genauer anschaut? Kann ich kaum glauben...
Stehen diese Werte womöglich hart im Printer-Package drin, weil der Entwickler garnicht daran dachte, daß es auch Europäer gibt, die mit US-Letter nix am Hut haben??? Bin ich ernsthaft der erste, der sich das genauer anschaut? Kann ich kaum glauben...
Wer mehr denkt hat mehr vom Hirn...
-
- Lazarusforum e. V.
- Beiträge: 7180
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Drucker - Papiergroesse
Vielleicht hat TPrinter Probleme mit den Seiten-Format. Also ob Quer oder Hochkannt. Hast du mal geschaut, welche Einheiten Verwendet wird?
Hast du schon in einem Delphi Forum nach dem Problem gesucht oder z.b. nach TPrinter? Wenn du Glück hast, geht die dortige Lösung auch hier in Lazarus.
http://www.delphipraxis.net/dp_search.php
Vielleicht ist da was dabei.
Hast du schon in einem Delphi Forum nach dem Problem gesucht oder z.b. nach TPrinter? Wenn du Glück hast, geht die dortige Lösung auch hier in Lazarus.
http://www.delphipraxis.net/dp_search.php
Vielleicht ist da was dabei.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Drucker - Papiergroesse
Probeier das ganze bitte mal mit Lazreport, das würde erklären warum das bei TPrinter itself niemandem aufällt. Drucker direkt ansteuern ist ja auch irgendiwie n stück weit pervers
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 22
- Registriert: Di 19. Okt 2010, 17:23
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Kaiserstuhl
Re: Drucker - Papiergroesse
pluto hat geschrieben:Hast du schon in einem Delphi Forum nach dem Problem gesucht oder z.b. nach TPrinter?
Leider habe ich nichts verwertbares gefunden...
Christian hat geschrieben:Drucker direkt ansteuern ist ja auch irgendiwie n stück weit pervers
Also - unter meinem Projekt liegen ziemlich ausgereifte Objektstrukturen (die ich projektunabhängig eingesetze, weil sie robust, zuverlässig und universell sind) und diese Strukturen beinhalten auch eine Art Report-Generator. Der ist zwar sicher nicht so umfangreich wie LazReport, aber doch so gut, daß ich bisher alle Anforderungen damit abdecken konnte (u.a. automatische Listenerzeugung, Datenintegration für Tabellen, Einzel-Objekte und Datenfelder über Platzhalter, Format-Anweisungen für die Datendarstellung, Grafik-Ausgabe, milimetergenaues Positionieren von Elementen Text/Grafik, freie Skalierbarkeit/Zoomen, u.v.a.m.) Und weil dieses Tool eben so unkompliziert und wunderbar mit meinen Basis-Objekten arbeiten kann, will ich das auch unter Linux haben.
Nur - das geht eben alles voll in die Hose, wenn die Maße, die TPrinter liefert, nicht stimmen. Außerdem will ich ja nicht den Drucker itself steuern, sondern ich benutze eben die Schnittstelle (CUPS), die vom Betriebssystem genau dafür bereitgestellt wird. Und obendrein ist die Ansteuerung von Druckern nicht pervers, sondern eingentlich auch nur eine Geräteansteuerung wie viele andere auch. @Christian: Hast Du sowas schonmal gemacht? Das ist nix für HighLevel-Anwender, da muß man i.d. Regel tief in die Eingeweide blicken...
Wer mehr denkt hat mehr vom Hirn...
-
- Lazarusforum e. V.
- Beiträge: 7180
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Drucker - Papiergroesse
Nur - das geht eben alles voll in die Hose, wenn die Maße, die TPrinter liefert,
Hast du schon im FPC Forum nach geschaut? Vielleicht ist das ein Bekannter BUG. Du kannst dir auch mal den Code dazu anschauen. Vielleicht fällt dir ein Fehler auf.
Es könnte noch einen Grund geben: Bei Google "Erde" hatte ich mal den Fehler, dass die Position Angaben nicht gestimmt haben. Warum? Ganz einfach: Es wurden Falsche Einheiten Verwendet. Vielleicht wäre das ein Hinweis bzw. eine grobe Spur. Weißt du wie ich meine?
Ich könnte mir vorstellen, dass es beim TPrinter den selben Fehler gibt. Ich muss aber gestehen: Ich habe noch nicht viel mit TPrinter gemacht.
Ich würde inzwischen einfach alles nach HTML && CSS Exportieren und das drucken den Web-Browser überlassen. Wäre vermutlich das einfachste und sicherste.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: Drucker - Papiergroesse
pluto hat geschrieben:Nur - das geht eben alles voll in die Hose, wenn die Maße, die TPrinter liefert,
Hast du schon im FPC Forum nach geschaut? Vielleicht ist das ein Bekannter BUG. Du kannst dir auch mal den Code dazu anschauen. Vielleicht fällt dir ein Fehler auf.
Es könnte noch einen Grund geben: Bei Google "Erde" hatte ich mal den Fehler, dass die Position Angaben nicht gestimmt haben. Warum? Ganz einfach: Es wurden Falsche Einheiten Verwendet. Vielleicht wäre das ein Hinweis bzw. eine grobe Spur. Weißt du wie ich meine?
Ich könnte mir vorstellen, dass es beim TPrinter den selben Fehler gibt. Ich muss aber gestehen: Ich habe noch nicht viel mit TPrinter gemacht.
Ich würde inzwischen einfach alles nach HTML && CSS Exportieren und das drucken den Web-Browser überlassen. Wäre vermutlich das einfachste und sicherste.
und denn Manuell durcken? ich glaube er wollte Direkt ein Druckmenü nutzen, sag ich aber gleich im Vorfeld, das ich da auch noch massen zu lesen habe... TStrinGrid inkl. extra daten drucken. aber zum Test, werd ich des ja erst mal via PDF machen. ist ja analog des selbe.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D
-
- Lazarusforum e. V.
- Beiträge: 7180
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Drucker - Papiergroesse
und denn Manuell durcken? ich glaube er wollte Direkt ein Druckmenü nutzen,
Stimmt. Aber ich glaube es wäre leichter dem Browser ein Tasten Code zu senden: z.b. strg+p als den Fehler bei TPrinter zu suchen *G*.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: Drucker - Papiergroesse
pluto hat geschrieben:und denn Manuell durcken? ich glaube er wollte Direkt ein Druckmenü nutzen,
Stimmt. Aber ich glaube es wäre leichter dem Browser ein Tasten Code zu senden: z.b. strg+p als den Fehler bei TPrinter zu suchen *G*.
Gut da weiß ich ja, das noch auf mich zukommen wird.
a) Grid to HTML/CSS
b) aus dem Proggi heraus browser öfen, Drucken und Browser schleißen. ^^
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Drucker - Papiergroesse
Nur - das geht eben alles voll in die Hose, wenn die Maße, die TPrinter liefert, nicht stimmen. Außerdem will ich ja nicht den Drucker itself steuern, sondern ich benutze eben die Schnittstelle (CUPS), die vom Betriebssystem genau dafür bereitgestellt wird. Und obendrein ist die Ansteuerung von Druckern nicht pervers, sondern eingentlich auch nur eine Geräteansteuerung wie viele andere auch. @Christian: Hast Du sowas schonmal gemacht? Das ist nix für HighLevel-Anwender, da muß man i.d. Regel tief in die Eingeweide blicken...
linus
Ich hab schon genug Lowlevel zeug gemacht, glaub mir Und ja ich hab vor 18 Jahren auch schonmal etliches mit TPrinter gemacht und ja ich steure auch Drucker mit Mikrocontrollern an, deswegen kann ich auch behaupten das das pervers ist .
Worumms mir eher ging ist das Lazreport das korrekt macht, und er verwendet auch TPrinter. Deswegen hab ich dich gebeten das bei dir mal zu probieren. Ich würde mich nicht erdreisten dir vorschreiben zu wollen was du nutzen sollst. Dort kannst du dir aber anschauen wie die das gelöst haben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: Drucker - Papiergroesse
Christian hat geschrieben:Nur - das geht eben alles voll in die Hose, wenn die Maße, die TPrinter liefert, nicht stimmen. Außerdem will ich ja nicht den Drucker itself steuern, sondern ich benutze eben die Schnittstelle (CUPS), die vom Betriebssystem genau dafür bereitgestellt wird. Und obendrein ist die Ansteuerung von Druckern nicht pervers, sondern eingentlich auch nur eine Geräteansteuerung wie viele andere auch. @Christian: Hast Du sowas schonmal gemacht? Das ist nix für HighLevel-Anwender, da muß man i.d. Regel tief in die Eingeweide blicken...
linus
Ich hab schon genug Lowlevel zeug gemacht, glaub mir Und ja ich hab vor 18 Jahren auch schonmal etliches mit TPrinter gemacht und ja ich steure auch Drucker mit Mikrocontrollern an, deswegen kann ich auch behaupten das das pervers ist .
Worumms mir eher ging ist das Lazreport das korrekt macht, und er verwendet auch TPrinter. Deswegen hab ich dich gebeten das bei dir mal zu probieren. Ich würde mich nicht erdreisten dir vorschreiben zu wollen was du nutzen sollst. Dort kannst du dir aber anschauen wie die das gelöst haben.
Ok danke für den wink. weiß ich schon mal, was ich in meinen µC Nie machen werde.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D
-
- Beiträge: 336
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Drucker - Papiergroesse
Guten Morgen,
ich bin zu blöd und stehe auf dem Schlauch. Ich möchte über einen Lazarus-Report Schlüsselanhänger bedrucken. Diese Dinger hier:
https://www.realgarant-shop.de/Schluess ... Weiss.html
23 dieser Streifen ergeben in etwa eine DIN-A4-Seite.
Ich habe einen Lazreport mit Masterband und darauf die Felder die gedruckt werden sollen. Ich bekomme auch 23 auf die Seite, nur die Aufteilung passt nicht. Es kommt zu Verschiebungen.
Wie muß ich das anstellen, dass das passt?
Vielen Dank und viele Grüße
Volker
ich bin zu blöd und stehe auf dem Schlauch. Ich möchte über einen Lazarus-Report Schlüsselanhänger bedrucken. Diese Dinger hier:
https://www.realgarant-shop.de/Schluess ... Weiss.html
23 dieser Streifen ergeben in etwa eine DIN-A4-Seite.
Ich habe einen Lazreport mit Masterband und darauf die Felder die gedruckt werden sollen. Ich bekomme auch 23 auf die Seite, nur die Aufteilung passt nicht. Es kommt zu Verschiebungen.
Wie muß ich das anstellen, dass das passt?
Vielen Dank und viele Grüße
Volker
-
- Beiträge: 624
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: Drucker - Papiergroesse
Wichtig ist die Bandhöhe, du musst es es genauso hoch wie die Schlüsselanhänger einstellen und alle " Streched, Autosize" oder ähnliche Eigenschaften von allen Objekten, auch von Band-Objekte, auf False setzen. LazReport rechnet ab und zu die Größen falsch.ErnstVolker hat geschrieben: ↑Do 7. Sep 2023, 06:23..
Wie muß ich das anstellen, dass das passt?
..
Edit: Und die Ränder vom Blatt muss auch richtig eingestellt sein.