Главная страница
    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.04 c
4-1171380174
niko_
2007-02-13 18:22
2007.07.29
Блокировка кнопок WIN и Alt+Tab


15-1183469880
@!!ex
2007-07-03 17:38
2007.07.29
Добавить пункт в меню программы на Taskbar e.


2-1183344188
Grademax
2007-07-02 06:43
2007.07.29
Как отследить "выключение системы"?


2-1183647394
AlexanderMS
2007-07-05 18:56
2007.07.29
Представить число в двоичном виде.


15-1183167604
iamgeorg
2007-06-30 05:40
2007.07.29
Как определить обороты вентилятора CPU?





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