AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Drucken mittels Code statt printer.canvas
Thema durchsuchen
Ansicht
Themen-Optionen

Drucken mittels Code statt printer.canvas

Ein Thema von MStoll · begonnen am 19. Mär 2006 · letzter Beitrag vom 19. Mär 2006
Antwort Antwort
MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#1

Drucken mittels Code statt printer.canvas

  Alt 19. Mär 2006, 21:38
Hallo

besteht die Möglichkeit in Delphi auf ne andere Art + Weise zu drucken als printer.canvas mit Zeichenoperationen zu benutzen? Am liebsten wäre mir, wenn es einen standardisierten Code gibt, den man vll mittels einer API-Funktion zu den Druckertreibern schickt. Dieses Zeichnen auf dem Canvas wirft so manches Problem auf, besonders was die Skalierung von Schriften angeht. Ich habe früher bereits mit PCL-Code gearbeitet, aber ist ja bekanntlich geräteabhängig.

Vielen Dank im vorraus.

Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Drucken mittels Code statt printer.canvas

  Alt 19. Mär 2006, 22:32
Hey.

Was willst du denn drucken? Schon mal an den QuickReport gedacht?! Musst mal im Forum danach suchen - gibt es massig Themen: Hier im Forum suchenQuickReport

mfg shark
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Drucken mittels Code statt printer.canvas

  Alt 19. Mär 2006, 22:35
Hi,

eine Möglichkeit ist, das Windows-GDI direkt zu verwenden, wodurch einige Funktionen zur Verfügung stehen, die in Canvas nicht vorhanden sind.

Man kann vor allem das Koordinatensystem auf Millimeter umstellen, wodurch die Probleme mit unterschiedlichen Druckerauflösungen verschwinden:
Delphi-Quellcode:
Printer.BeginDoc;
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC);
Anschließend sind alle Größen in Millimeter anzugeben. Der Ursprung liegt oben links und positive y-Werte werden nach oben angetragen.
  Mit Zitat antworten Zitat
MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Drucken mittels Code statt printer.canvas

  Alt 19. Mär 2006, 23:35
@s.h.a.r.k: Hab ich schon davon gehört, aber ich möchte die Druckausgabe selbst aufbauen. Drucken möchte ich Ergebnislisten, d.h. Text, Tabellen mit Text in einzeiligen Zellen und absolut positionierte Grafiken.

@Niko: Das mit der Windows-GDI hab ich alles schon soweit ausprobiert und so. Aber das ist ja trotzdem Drucken per Zeichnen. Ich will allerdings Drucken per Code (ähnlich wie beim PCL), wo ich den Text direkt reinschreiben kann mit Codes für Schriften etc, nur die Grafiken müssten dann noch positioniert werden. Dann bräuchte ich mir keine Gedanken zu machen, wo genau der Text hinpositioniert werden muss.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz