[Delphi] Problemy z drukowaniem

0

Drukuję takim oto kodem:

xcentymetr:=printer.PageWidth/21;
ycentymetr:=printer.PageHeight/29.7;

printer.BeginDoc;
printer.Canvas.Rectangle(round(4xcentymetr), round(4ycentymetr), round(21xcentymetr)-round(4xcentymetr), round(29.7ycentymetr)-round(4ycentymetr));
printer.EndDoc;

Kod ten powinien wydrukować na kartce A4 ramkę odległą o 4 cm od wszystkich krawędzi. Niestety jednak z lewej i z prawej strony odległość ta wynosi 4.2 cm, a na dole 5.2 cm, natomiast na górze jest w porządku. Jak drukowałem kwadrat o boku 1 cm odległy od górnej i lewej krawędzi o 2 cm, to było w porządku, ale jak chcę wydrukować co innego (chociażby ta ramka, a docelowo obrazek rozciągnięty do odpowiednich rozmiarów), to rozmiary nie są zachowane :-|. W czym tkwi problem?

0

Po pierwsze:
Drukarka ma marginesy, więc prawdziwy rozmiar kartki, jaki mozesz zadrukować jest ograniczony
Po drugie:
Przy małym kwadraciku błąd przy zaokrągleniu jest wystarczająco mały, że prawidłowo ci pozycjonuje. Przy dużych prostokątach błędy są już bardzo duże i dlatego możesz zmieżyć te 2mm różnicy.

0

Akurat marginesy nie stanowią problemu, owszem przycina obrazek, gdy jest za blisko krawędzi, ale pozycjonuje go dobrze. A co do błędu w zaokrąglaniu, co mogę zrobić, aby błąd był mniejszy? Byłbym wdzięczny za jakieś rady.

0

A to, żeby temat nie spadł za nisko :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1