Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Проблемы с печатью   Найти похожие ветки 

 
Woolen ©   (2004-12-22 16:28) [0]

Работаю с GDI+. Пробовал печатать, как написано у Microsoft, получая графикс из контекста устройства принтера - не получается. Пробовал так:
if GdipLoadImageFromFile(PWideChar(WideString(
     DiskFiles[DocNum].Files[ImageNum])),LocImg) = gdipOk then
     begin
     if GdipGetImageWidth(LocImg,ImgWidth) = gdipOk then
       if GdipGetImageHeight(LocImg,ImgHeight) = gdipOk then
         begin
         Bmp := TBitmap.Create;
         if (Printer.PageWidth / Printer.PageHeight) >
           (ImgWidth / ImgHeight)
           then
           begin
           InnerHeight := Printer.PageHeight - 1;
           InnerWidth := Trunc(ImgWidth / ImgHeight *
             InnerHeight);
           end
         else
           begin
           InnerWidth := Printer.PageWidth - 1;
           InnerHeight := Trunc(ImgHeight / ImgWidth *
             InnerWidth);
           end;
         Bmp.Width := InnerWidth;
         Bmp.Height := InnerHeight;
         GdipCreateFromHDC(Bmp.Canvas.Handle,LocGraph);
         if GdipDrawImageRectI(LocGraph,LocImg,0,0,Bmp.Width,
           Bmp.Height) = gdipOk then
           begin
           Printer.Canvas.CopyMode := cmSrcCopy;
           Printer.Canvas.Draw(0,0,Bmp);
           Printer.Canvas.TextOut(100,100,"test");
           Result := True;
           end;
         GdipDeleteGraphics(LocGraph);
         end;
     GdipDisposeImage(LocImg);
     end;

Не получается. На виртуальных принтерах MS Imaging System, Adobe Acrobat - два пустых листа. На сетевом HP LJ 4100  - вообще никаких телодвижений. Что это может быть?
Спасибо.


 
Woolen ©   (2004-12-24 11:32) [1]

Со вторым листом разобрался. А по поводу отсутствия вывода изображения никто не знает? Самое главное, что попиксельно выводится. Draw на форме срабатывает. Сохраняешь битмап в файл - он совершенно нормальный, такой как и должен быть. А на принтере ни как. Подскажите кто-нибудь, что можно сделать?


 
Japp   (2004-12-24 14:41) [2]

Иногда рисунки не печатаются при включеном черновом режиме печати....


 
Woolen ©   (2004-12-24 15:52) [3]

if GdipDrawImageRectI(LocGraph,LocImg,0,0,Bmp.Width,
       Bmp.Height) = gdipOk then
       begin
       Bmp.PixelFormat := pf24bit;//Все дело в этой строчке
       Printer.Canvas.Draw(0,0,Bmp);
       Result := True;
       end;

Причем, если мы формат пикселя поставим заранее, при установке высоты и ширины растра, то будет то же, что и было, то есть Draw работает на разных канвасах, но не на канвасе принтера.



Страницы: 1 вся ветка

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
11-1090955253
Владимир
2004-07-27 23:07
2005.02.13
Автозапуск программы


14-1106210888
Prohodil Mimo
2005-01-20 11:48
2005.02.13
При запуске Винды иткрываются "Control Panel" и каталоги


6-1101908945
Apolius
2004-12-01 16:49
2005.02.13
Проблема с Socket.OnRead


3-1105455009
denis24
2005-01-11 17:50
2005.02.13
создание пустой временной таблицы со структурой основной таблицы


1-1106820424
Маришка
2005-01-27 13:07
2005.02.13
поиск одинаковых данных в столбцах