Главная страница
    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.037 c
2-1183552580
Bad_B
2007-07-04 16:36
2007.07.29
Создать и уничтожить


15-1182850117
sergeyst
2007-06-26 13:28
2007.07.29
Можно ли в поток добавить данные?


15-1183313271
DillerXX
2007-07-01 22:07
2007.07.29
Несколько вопросов по Java


11-1166449550
TAHKEP
2006-12-18 16:45
2007.07.29
Можно как-то "впихнуть" ProgressBar ы в StatusBar ?


2-1183383561
авыф
2007-07-02 17:39
2007.07.29
MS SQL 2005





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