DIN Formate und freie Formate auf Canvas
-
- Beiträge: 69
- Registriert: Sa 5. Dez 2015, 20:03
- OS, Lazarus, FPC: Win10 IDE 1.6
- CPU-Target: 64Bit
- Wohnort: Leipzig
DIN Formate und freie Formate auf Canvas
Hallo,
ich suche eine Möglichkeit DIN A3, A4 etc. und frei wählbare Formate auf einer Canvas darzustellen. Wie funktioniert die Umrechnung von Pixel in mm oder cm? ich finde da immer nur was mit dpi Abhängig Ich bräuchte die Anzeige in 25% Schritten von 25 bis 200, was bei einer bekannten Formel machbar sein sollte.
ich suche eine Möglichkeit DIN A3, A4 etc. und frei wählbare Formate auf einer Canvas darzustellen. Wie funktioniert die Umrechnung von Pixel in mm oder cm? ich finde da immer nur was mit dpi Abhängig Ich bräuchte die Anzeige in 25% Schritten von 25 bis 200, was bei einer bekannten Formel machbar sein sollte.
-
- Beiträge: 6207
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: DIN Formate und freie Formate auf Canvas
ich finde da immer nur was mit dpi Abhängig
dpi gibt die Anzahl Pixel pro Zoll an, ich denke mal, das du die dpi-Zahlen von deinem Drucker-Treiber holen kannst.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 69
- Registriert: Sa 5. Dez 2015, 20:03
- OS, Lazarus, FPC: Win10 IDE 1.6
- CPU-Target: 64Bit
- Wohnort: Leipzig
Re: DIN Formate und freie Formate auf Canvas
ich will ja nichts drucken...ich will nur maßstabsgerecht auf den Bildschirm ausgeben
-
- Beiträge: 6207
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: DIN Formate und freie Formate auf Canvas
Du könntest auch alles in ein Bitmap Zeichen und anschliessend skaliert auf dem Form-Canvas ausgeben.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 69
- Registriert: Sa 5. Dez 2015, 20:03
- OS, Lazarus, FPC: Win10 IDE 1.6
- CPU-Target: 64Bit
- Wohnort: Leipzig
Re: DIN Formate und freie Formate auf Canvas
wie groß muss das Bitmap dann sein?
weil genau vor diesem Problem steh ich immer noch.
Ich weiß ja wie groß in echt A6, 5 ,4, SR4, 3, SR3 sind..
sprich Pixel pro mm? oder hol ich die mir über die Auflösung des Bildschirms?
weil genau vor diesem Problem steh ich immer noch.
Ich weiß ja wie groß in echt A6, 5 ,4, SR4, 3, SR3 sind..
sprich Pixel pro mm? oder hol ich die mir über die Auflösung des Bildschirms?
-
- Beiträge: 6207
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: DIN Formate und freie Formate auf Canvas
Normalerweise holt man sich die Auflösung eines Papieres über den Drucker-Treiber.
Was ist dein Ziel, willst du eine Seiten Voransicht machen ?
Was ist dein Ziel, willst du eine Seiten Voransicht machen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: DIN Formate und freie Formate auf Canvas
Hartkern hat geschrieben:wie groß muss das Bitmap dann sein?
weil genau vor diesem Problem steh ich immer noch.
Ich weiß ja wie groß in echt A6, 5 ,4, SR4, 3, SR3 sind..
sprich Pixel pro mm? oder hol ich die mir über die Auflösung des Bildschirms?
Na wenn maßstabsgerecht auf dem Bildschirm ausgegeben werden soll, nimmst du natürlich die Bildschirmauflösung. Diese kannst du über Screen.PixelsPerInch oder Monitor.PixelsPerInch abfragen, also Pixel pro Zoll (2.54 cm). Mit folgender Funktion kannst du dann z.B. mm nach Pixel umrechnen:
Code: Alles auswählen
function ScaleMM(mm: Double): Integer;
const
INCH = 25.4;
begin
Result := round(mm/INCH * Screen.PixelsPerInch);
end;
Ein Quadrat mit 10 x 10 mm, dessen linke obere Ecke jeweils 20 mm vom (linken/oberen) Rand entfern sind, zeichnest du dann so, z.b. auf einer Paintbox:
Code: Alles auswählen
procedure TForm1.PaintboxPaint(Sender: TObject);
begin
with Paintbox1.Canvas do begin
Brush.Color := clWhite;
FillRect(0, 0, Paintbox1.Width, Paintbox1.Height);
Pen.Color := clBlack;
Rectangle(ScaleMM(20), ScaleMM(20), ScaleMM(30), ScaleMM(30));
end;
end;
-
- Beiträge: 69
- Registriert: Sa 5. Dez 2015, 20:03
- OS, Lazarus, FPC: Win10 IDE 1.6
- CPU-Target: 64Bit
- Wohnort: Leipzig
Re: DIN Formate und freie Formate auf Canvas
vielen Dank!!!!
Screen oder Monitor finde ich unter System?
Screen oder Monitor finde ich unter System?
Re: DIN Formate und freie Formate auf Canvas
uses Forms;