Текущий архив: 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.45 MB
Время: 0.035 c