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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.043 c
15-1183108735
vovnor
2007-06-29 13:18
2007.07.29
Team Source - среда многопользовательской разработки


15-1183027152
Ega23
2007-06-28 14:39
2007.07.29
Class vs Record


2-1183302519
Qzzma
2007-07-01 19:08
2007.07.29
Как узнать путь запущенного приложения?


9-1157052402
Ketmar
2006-08-31 23:26
2007.07.29
http://shmup-dev.com/ -- конкурс начался


2-1183361301
Dyakon_Frost
2007-07-02 11:28
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский