Drukowanie Image bez Image

0

Mam scan obrazka na formie umieściłem go w Componecie Image na Image umieściłem kilka Editów chciałbym:

  • zrobić podgląd wydruku
  • wydrukować to wszystko lecz bez drukowania image ale żeby edity były w odpowiednim miejscu po wydrukowaniu

Cos nie jasne napiszcie to wyjaśnię dokładniej

Pozdro

0

miło, że nam powiedziałeś co masz i co byś chciała ale zapomniałeś chyba zadać pytania....
BTW żeby wyprzedzić najbardziej prawdopodobny tok tego wątku to najpierw POSZUKAJ!

0

Mam prostu Scan nazwijmy to dyplomu i mam do wypelnienia ich okolo 20 i to jest dosc czesto dlatego tez chialbym zrobic program ktory wypelnialby mi to na forimie umiescilem Image tylko dla wobrazenia sobie gdzie sa puste pola. Chcialbym zeby tylko to co wpisze w Editach zostalo wydrukowane. Wielkosc Dyplomu jest A4 i nie wiem jak to po prostu wydrukowac i jeszcze zeby zachowac proporcje oraz zeby text wpisany w Editach był w odpowienich miejsca po wydrukowaniu formy.

0
  1. zmież sobie dokładnie, co do mm położenie i wymiary wszystkich pól na text
  2. pobierasz DPI drukarki (GetDeviceCaps(Printer.Handle, LOGPIXELSX))
  3. przeliczas położenie i rozmiar każdego "wirtualnego edita" na pixele
    x, y - wsp. w mm na kartce
    w, s - wys i szer w mm na kartce
    xp = x * (10 / 254 * DPI);
    yp = y * (10 / 254 * DPI);
    wp = w * (10 / 254 * DPI);
    sp = s * (10 / 254 * DPI);
    tworzysz sobie z tego rect

var
r: TRect;
s: String;
...
begin
...
rect.Left := xp;
rect.Right := xp + sp;
rect.Top := yp;
rect.Bottom := yp + wp;

//i rysujesz text w tym obszarze + wyrównanie

Printer.Canvas.Font.Name := 'nazwa czcionki';
Printer.Canvas.Font.Style := [fsBold, fsItalic, fsUnderLine]; //oczywiście nie wszystkie muszą być zaznaczone
Printer.Canvas.Font.Size := 20; //rozmiar czcionki

Printer.BeginDoc; //rozpoczęcie wydruku

s := 'text do drukowania';
DrawText(Printer.Canvas.Handle, PChar(s), Length(s), rect, DT_CENTER);
*DT_CENTER - to wyśrodkowanie textu, więcej tu http:*msdn2.microsoft.com/en-us/library/ms533909.aspx

//następna linia
Printer.EndDoc; //zakończenie i fizyczne wysłanie wydruku na drukarkę

0

Dzięki serdeczne za ten kod Misiekd ale czy wiesz jak wydrukowac ten tekst pionowo (obrocic o 90 stopni w prawo) a nie poziomo ?

0

Dziekuje Misiekd jestes bardzo serdeczny i postaram sie lepiej precyzowac moje pytania. See ya 'round

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