Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.037 c
6-1101376180
Chaser
2004-11-25 12:49
2005.02.13
Chaser: Помогите! Не работает отправка е-mail на Delphi


3-1106035711
Bless
2005-01-18 11:08
2005.02.13
Можна ли сделать, чтобы внутри транзакции часть кода не откатывал


9-1099832251
ASH
2004-11-07 15:57
2005.02.13
Звук для игр на Delphi..


1-1107169060
Garry_c
2005-01-31 13:57
2005.02.13
MessageBox


1-1106842407
Knoxville
2005-01-27 19:13
2005.02.13
Загрузка из ресурсов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский