Drukowanie-skalowanie grafiki

0

Witam

Mam taki problem i nie specjalnie wiem jak go rozwiazac.
Mam do wydrukowanie formularz do ktorego wprowadza sie dane etc.
Formularz ma wymiary kartki A4. I teraz tak. Aby ten formularz byl dobrze widoczny na komputerze ( ostre czcionki ) musi miec rozdzielczosc dajmy na to 800x600 przenosze go na plutno drukarki metoda StrechDraw to jest przykladowy kod:

   
 Rect.top = 0;
    Rect.left = 0;
    Rect.right = Prn->PageWidth;
    Rect.bottom = Prn->PageHeight;
    Prn->BeginDoc();
    Prn->Canvas->StretchDraw( Rect, FMain->Image1->Picture->Bitmap );
    Prn->EndDoc();

Problem polega na tym ze jakosc wydruku po takim przeskalowaniu jest marna. Poradzilem sobie z tym w ten sposob ze utworzylem bitmape o rozdzialce 400 dpi i na niej rysuje a potem ja kopiuje na plutno drukarki tylko ze teraz jak chce zobic podglad to wiadomo ze obraz jest poterzny i przy skalowaniu tak aby sie zmiescil na ekran traci detale.

Jakies sugestie co mozna z tym zrobic. To rozwiazanie wydaje mi sie niezbyt dobre.

Slyszalem cos o grafice wektorowej wtedy nie ma problemu ze skalowaniem ale nie bardzo wiem jak "jej" uzyc do tego projektu. Pisze w srodowisku C++ Builder

Pozdrawiam

0

Spróbuj użyć metafile - można pobrać ze schowka.

W VCL jest jakiś TMetafile lub TEnhMetafile...
LoadFromClipboard + CF_ENHMETAFILE też powinno być.

0

A musisz to robić na bitmapie? Są inne lepsze rozwiązania... jak właśnie metapliki...

0

Kolorystyka.

Mam plik emf ktorego kolorystyka to skala szarosci, przy podgladzie w windowsie wszystko jest ok i teraz:

Mam plik emf wycztuje go do

TMetafile *mf = new TMetafile();

mf->LoadFromFile("plik.emf");

Image1->Canvas->StrechDraw( Image1->ClientRect, Mf );

to kolorystyka jest monochromatyczna ;/

o co biega ???

0

Pewnie ten plik emf jest mono.
Próbowałeś podejrzeć go w innym programie?

0

Witam

Wszystko juz w ok, nie bardzo wiem co bylo ale juz jest ok.

Dzieki wszystkim za podpowiedzi

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