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
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.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?)
-
- 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
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?carli hat geschrieben:Es ist ja egal, was du als Höhe und was als Breite definierst
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: 7192
- 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" onclick="window.open(this.href);return false;
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" onclick="window.open(this.href);return false;
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
Leider habe ich nichts verwertbares gefunden...pluto hat geschrieben:Hast du schon in einem Delphi Forum nach dem Problem gesucht oder z.b. nach TPrinter?
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.Christian hat geschrieben:Drucker direkt ansteuern ist ja auch irgendiwie n stück weit pervers
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: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Drucker - Papiergroesse
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.Nur - das geht eben alles voll in die Hose, wenn die Maße, die TPrinter liefert,
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
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...pluto hat geschrieben: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.Nur - das geht eben alles voll in die Hose, wenn die Maße, die TPrinter liefert,
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.


Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Drucker - Papiergroesse
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*.und denn Manuell durcken? ich glaube er wollte Direkt ein Druckmenü nutzen,
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
Gut da weiß ich ja, das noch auf mich zukommen wird.pluto hat geschrieben: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*.und denn Manuell durcken? ich glaube er wollte Direkt ein Druckmenü nutzen,
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
und der Kreis Segeberg meine LIEBE 


-
- 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
Ich hab schon genug Lowlevel zeug gemacht, glaub mirNur - 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


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
Ok danke für den wink. weiß ich schon mal, was ich in meinen µC Nie machen werde.Christian hat geschrieben:Ich hab schon genug Lowlevel zeug gemacht, glaub mirNur - 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...
linusUnd 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.


Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Beiträge: 351
- 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: 726
- 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.
Edit: Und die Ränder vom Blatt muss auch richtig eingestellt sein.