Hallo beisammen,
im Kontext "Druckvorschau / Drucken / Archivieren" möchte ich auf Vorschlag von Hagen eine Liste von TMetaFiles verwenden. Diese MetaFiles sollen dann je nach Bedarf auf den verschiedenen "Zielgeräten" ausgegeben werden.
Ich scheine jedoch noch ein grundsätzliches Verständnisproblem zu haben... folgender Code druckt nämlich einfach eine leere Seite auf meinem LaserJet5L.
Was mache ich falsch? Danke für jede Hilfe!
Ralph
<PRE>
<P>
// MetaFile anlegen (Größe: DIN A4)
FCurrentPage := TMetaFile.Create;
FCurrentPage.MMHeight := 2990;
FCurrentPage.MMWidth := 2100;
<P>
// Zeichenfläche anlegen
FCurrentCanvas := TMetaFileCanvas.Create(FCurrentPage, 0);
<P>
// Einstellungen für Zeichenfläche
FCurrentCanvas.MoveTo(0, 0);
SetMapMode(FCurrentCanvas.Handle, MM_LOMETRIC);
FCurrentCanvas.Font.Name := 'Arial';
<P>
// Testdaten ausgeben
FCurrentCanvas.TextOut(50, -50, 'TestText');
<P>
// Zeichenfläche freigeben
FCurrentCanvas.Free;
<P>
// Testdaten drucken
Printer.PrinterIndex := -1;
Printer.Copies := 1;
Printer.Orientation := poPortrait;
Printer.BeginDoc;
Printer.Canvas.Draw(0, 0, FCurrentPage);
Printer.EndDoc;
</PRE>
im Kontext "Druckvorschau / Drucken / Archivieren" möchte ich auf Vorschlag von Hagen eine Liste von TMetaFiles verwenden. Diese MetaFiles sollen dann je nach Bedarf auf den verschiedenen "Zielgeräten" ausgegeben werden.
Ich scheine jedoch noch ein grundsätzliches Verständnisproblem zu haben... folgender Code druckt nämlich einfach eine leere Seite auf meinem LaserJet5L.
Was mache ich falsch? Danke für jede Hilfe!
Ralph
<PRE>
<P>
// MetaFile anlegen (Größe: DIN A4)
FCurrentPage := TMetaFile.Create;
FCurrentPage.MMHeight := 2990;
FCurrentPage.MMWidth := 2100;
<P>
// Zeichenfläche anlegen
FCurrentCanvas := TMetaFileCanvas.Create(FCurrentPage, 0);
<P>
// Einstellungen für Zeichenfläche
FCurrentCanvas.MoveTo(0, 0);
SetMapMode(FCurrentCanvas.Handle, MM_LOMETRIC);
FCurrentCanvas.Font.Name := 'Arial';
<P>
// Testdaten ausgeben
FCurrentCanvas.TextOut(50, -50, 'TestText');
<P>
// Zeichenfläche freigeben
FCurrentCanvas.Free;
<P>
// Testdaten drucken
Printer.PrinterIndex := -1;
Printer.Copies := 1;
Printer.Orientation := poPortrait;
Printer.BeginDoc;
Printer.Canvas.Draw(0, 0, FCurrentPage);
Printer.EndDoc;
</PRE>
Comment