Hallo,
an diesem Problem knabbere ich nun schon lange:
Meine Anwendung soll die Bildschirmausgabe in eine wmf-Datei exportieren.
Auf Rechner 1 läuft's, auf Rechner 2 stimmt zwar die Größe des Metafile noch, aber die Grafik darin ist deutlich größer.
Beide Rechner sind Win XP SP2.
Ich hab das Problem auf ein Mini-Beispiel reduziert:
Delphi-Quellcode:
procedure TForm1.MetafileBtnClick(Sender: TObject);
var i: integer;
Pict: TPicture;
mfc: TMetafileCanvas;
begin
Pict := TPicture.Create;
Pict.Metafile.MMWidth := 21000;
Pict.Metafile.MMHeight := 29700;
Pict.Metafile.Inch := 1440;
mfc := TMetafileCanvas.Create(Pict.Metafile,0);
{ ab hier wird eine Beispielzeichnung ausgegeben }
mfc.Brush.Color := clRed;
mfc.Ellipse(300,300,400,600);
mfc.Brush.Color := clWhite;
mfc.Font.Name := 'Arial';
mfc.Font.Height := -20;
for i := 1 to 10
do mfc.TextOut(50,i*50,'Text auf (50,'+IntToStr(i*50)+')');
mfc.Font.Name := 'Courier New';
mfc.Font.Size := 15;
for i := 1 to 10
do mfc.TextOut(500,i*50,'Text auf (500,'+IntToStr(i*50)+')');
mfc.TextOut(50,600,'Inch='+IntToStr(Pict.Metafile.Inch));
{ Ende Beispielzeichnung }
mfc.Free;
Pict.Metafile.SaveToFile('MFTest.wmf');
Pict.Free;
end;
Ich hab' sowohl mit dem Parameter Inch als auch mit dem Gerätekontext-
Handle in TMetafileCanvas.Create experimentiert - ohne Erfolg.
Hat jemand eine Idee?
Anbei das Projekt sowie die beiden unterschiedlichen WMF's.