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

Вниз

Работа печати через "Begindoc...EndDoc"   Найти похожие ветки 

 
Василий   (2006-06-09 05:46) [0]

Здравствуйте, уважаемые мастера. Столкнулся с очень интересным вопросом касательно вывода графики на печать. Вот в чем дело.
1. Кидаю на главную форму метки и картинку (в TImage на форме). После всех вычислений метки заполняются.. Теперь мне надо все это "хозяйство" вывести на печать посредством операторов BeginDoc...EndDoc.  Для этого я создаю переменную типа TBitmap в которую копирую полученное  изображение. А на Printer.Canvas его переношу из TBitmap(это делаю только из-за того что мне нужен ,содержащий все элементы на форме).
  И что интересно: методом Draw,StrechDraw, CopyRect - на матричном распечаталось, а вот лазерный показал "бесконечные просторы Tcanvas", то есть ничего на распечатал.
 У меня сложилось впечатление что Copyrect не копирует содержимое Bitmap на канву принтера. Но скопировал в Clipboard - Bitmap не пуст!.
2. Решил по совету перейти на функции canvas.TextOut(x,y,string). Все сделал. Однако все равно не печатает через переменную типа Bitmap. Но поставил вместо переменной Bitmap в StrechDraw в качестве исходного изображения Image1.Picture.Graphic, так все распечаталось. Но ведь Bitmap не пуст.
Подскажите пожалуйста, что за система при распечатке посредством операторов BeginDoc..EndDoc. И как можно нормально распечатать изображение через дин-ую переменную Tbitmap. Может здесь есть какие-то тонкости при использовании данных операторов.

С уваженеим, Василий.


 
AlexanderMS ©   (2006-06-09 10:15) [1]

F1


 
Василий   (2006-06-10 06:17) [2]

Интересный конечно ответ.

В помощи все просто написано, однако не работает


 
AlexanderMS ©   (2006-06-10 10:46) [3]


>  Теперь мне надо все это "хозяйство" вывести на печать


То есть распечатать содержимое формы, я правильно понимаю? Или, всё-таки, Bitmap?
Ещё есть метод PaintTo(DC: HDC; X, Y: Integer); у объектов TWinControl и его наследников.


> Для этого я создаю переменную типа TBitmap в которую копирую
> полученное  изображение.

Какое именно?

Может, создавать TPicture, а не TBitmap?


 
DrPass ©   (2006-06-10 19:04) [4]


>  И что интересно: методом Draw,StrechDraw, CopyRect - на
> матричном распечаталось, а вот лазерный показал "бесконечные
> просторы Tcanvas", то есть ничего на распечатал.

А еще все может быть проще - у матричного разрешение 72dpi от силы, а у лазерника сколько? 1200? Тогда картинка 100*100 пикселей у него, если принудительно не масштабировать, займет квадрат 2 мм в углу листа :) Вполне вероятно, что автор просто ее не заметил


 
Василий   (2006-06-10 23:21) [5]

>>> То есть распечатать содержимое формы, я правильно понимаю? Или, всё- таки, Bitmap? Ещё есть метод PaintTo(DC: HDC; X, Y: Integer); у объектов TWinControl и его наследников.

Не содержимое формы напрямую. Дело в том что на форме имеются метки, которые заполняются соответствующей информацией(и картинка получается как бы "многослойной"), а для того чтобы сформировалась одна "картинка" я использовал переменную Tbitmap(если просто выражаться, аналогично операции копирования экрана в Windows), в которую сохранил изображение методом Form.Canvas.CopyRect. То есть Bitmap имеет в себе "фотографию" которую и нужно вывести на печать (а Bitmap копирую на канву объекта Tprinter методом CopyRect). Пробывал использовать PaintTo не получилось, или тут тоже есть своя тонкость.

>>>А еще все может быть проще - у матричного разрешение 72dpi от силы, а у лазерника сколько? 1200? Тогда картинка 100*100 пикселей у него, если принудительно не масштабировать, займет квадрат 2 мм в углу листа :) Вполне вероятно, что автор просто ее не заметил.

Отнюдь. Все прекрасно заметил. Ничего нету. Даже изображения в 1мм :). Проверил. Просто вывел методом Draw на печать без масштабирования. Картинка 5х5 см.

Это еще половина вопроса. Это хорошо если на экране все умещается, а если нет? То есть компонент Image больше по размерам чем экран. Как я ни пробывал, в ClipBoard "фотографируется" все, что есть на экране вместе с Windows, а надо только содержимое клиентской части формы.

С уважением, Василий.


 
jb   (2006-06-11 19:08) [6]

У меня однажды возникла такая проблема. Печатаю картинку смасштабированную на весь лист, а из принтера чистый лист вылазиет. И тоже на лазернике такая ерунда, а на струйнике печатается нормально. Оказывается у HP1100 памяти маловато, я картинку уменьшил и все заработало, попробуй тожу так сделать, может поможет. Еще вотчто попробуй (правда неуверен что получится) лазерник всеравно в цвете не печатает, сделай картинку черно-белой так она весить меньше будет. Кстати пропечать есть хорошая статья на www.asportal.h16.ru


 
Василий   (2006-06-13 06:11) [7]

Спасибо за ссылку, jb.  Прочитаю ее повнимательней. Попробую разобраться.
Касательно изображения: оно черно-белое(монохромное).

Мне другое теперь интересно, а как часто народ пользуется моетодом Begindoc..enddoc для вывода графики на печать.

С уважением, Василий.



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

Форум: "Начинающим";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.078 c
1-1148325243
Цукор5
2006-05-22 23:14
2006.07.02
сжатие данных


2-1150270186
novill
2006-06-14 11:29
2006.07.02
Надо написать прогу в виде службы Windows. С чего начать?


6-1133100822
SergProger
2005-11-27 17:13
2006.07.02
Установить соединение с инетом


2-1150421663
Anonymous2
2006-06-16 05:34
2006.07.02
Удаление файлов из папки.


15-1149258002
AlexanderMS
2006-06-02 18:20
2006.07.02
Задачка





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