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

Вниз

TBitmap не выводится на принтер   Найти похожие ветки 

 
Циркуль   (2007-05-21 12:02) [0]

Собсно, есть канва принтера, есть прямоугольник где собираемся рисовать свою картинку, есть сама картинка.

Делаем так

ACanvas.StretchDraw(R, FPicture.Graphic);

(FPicture.Graphic содержит в данном случае некий TBitmap)

На выходе из принтера - чистый лист.

Стоит добавить пару строк

 FPicture.Graphic.SaveToFile("C:\1.bmp");
 FPicture.Graphic.LoadFromFile("C:\1.bmp");

 ACanvas.StretchDraw(R, FPicture.Graphic);


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


 
{RASkov} ©   (2007-05-21 13:37) [1]

Чудес не бывает, за исключением в "Начинающих".....
покажи полный код вывода на канву принтера.... и возможно "генерации" твоего рисунка...
или же попробуй так
Printer.BeginDoc;
Printer.Canvas.StretchDraw(Printer.Canvas.ClipRect, FPicture.Graphic);
Printer.EndDoc;
У тебя не понятно, что за ACanvas и что есть R - на самом деле. Ну и FPicture.Graphic - сюда-же....


 
Влад   (2007-05-21 14:26) [2]

Может проблема у тебя не такая, но я тут недавно тоже бился с печатью битмапов. Они то не печатались, то съезжала половина страницы в общем глюки необъяснимые.. Попробуй печатать через метафайл, т.е. выводи в метафайл а затем метафайл выводи на принтер. Мои проблемы это решило.


 
Циркуль   (2007-05-22 10:57) [3]


> {RASkov} ©   (21.05.07 13:37) [1]


Хм... Полный код вывода на канву принтера займет здесь кучу места. Да и не думаю, что там что-то не так...  Упоминаемый битмап - лишь часть того, что выводится на печать в отчете... Просто недавно добавлена возможность возможность в отчеты включать изображения. Кроме него на напечатанном листе все остальное видно. На превью битмап тоже видно (отрисовывается тот же самый экземпляр), а вот на канве принтера выводится только после пары пируэтов с бубном (сохранить на диск и считать обратно). Может кто-то сталкивался с таким эффектом и знает в чем может быть причина.   :(


 
Однокамушкин   (2007-05-22 11:09) [4]

Битмапы по умолчанию хранятся в формате DDB, который зависит от устройства. У вас таким устройством, видимо, является дисплей, а не принтер, вот рисунок и оказывается несовместим с принтером... попробуйте у TBitmap свойству HandleType присвоить значение bmDIB, чтобы переконвертировать его из DDB в DIB... Желательно сразу после создания, хотя можно и потом...


> канве принтера выводится только после пары пируэтов с бубном
> (сохранить на диск и считать обратно)


Это подтверждает моё предположение... на диске битмапы всегда хранятся как DIB, поэтому прочитанный с диска рисунок имеет сразу DIB-формат... а вот созданный вручную имеет по умолчанию формат DDB...


 
Циркуль   (2007-05-22 11:47) [5]


> Однокамушкин   (22.05.07 11:09) [4]


Прямое попадание!  Все заработало, спасибо! :)



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

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

Наверх




Память: 0.45 MB
Время: 0.027 c
15-1183290441
Kolan
2007-07-01 15:47
2007.07.29
Help&Manual Toggles всегда открыты, как исправить?


2-1183447174
delphino
2007-07-03 11:19
2007.07.29
Почему может долго грузится программа?


15-1183317832
c0deRR
2007-07-01 23:23
2007.07.29
Каким RSS ридером вы пользуетесь? Почему? Что [не]нравится?


11-1166288757
Psychedelic
2006-12-16 20:05
2007.07.29
Win XP Tab контрол компонент


15-1182970406
@!!ex
2007-06-27 22:53
2007.07.29
Смена буквы диска.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский