C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 Здравствуйте, гость ( Вход | Регистрация )   Скачать форум | Поиск по Форуму | Участники | Помощь
 Поиск по:   сайтy   
   архиву форума   
  ОтветитьНовая тема
Работа с принтером, Подача матрицы пикселей
« предыдущая тема | следующая тема » Подписаться на тему | Отправить тему на E-mail | Распечатать тему
VainahskiyPapa
Отправлено: 15.09.2004, 20:05 Цитировать


Дежурный стрелочник


Группа: Участник
Сообщений: 46
Пользователь № 194
Регистрация: 26.07.03



Здравствуйте.
Не могли бы подсказать как мне отправлять на принтер векторное изображение в виде матрицы с разрешением принтера, т.е. хочу избежать лестничного эффекта (Алгоритм построения матрицы из векторов использовался для построения матрицы). Я точно не знаю, но предполагаю, чтоможно создать временый файл bmp и написать коротенькую прогу которая создавала бы bmp файл с тем разрешением которе требуется. А затем это изображение подать на принтер. Проблема в том что я не знаю как изображение распечатается - с разрешением принтера или с разрешением экрана? Поэтому и хочу отдавать драйверу принтера собственно созданный файл.
Всем заранее спасибо - буду лелеять надежду что ктонибудь владеет этой темой.
 
Послать сообщение E-mail адрес  Top
tusha
Отправлено: 23.12.2004, 18:19 Цитировать


Unregistered









доброго дня всем!
я тут пробовал разобраться с печатью в Билдере, вышла такая штука:
(прошу не судить строго, я многого не знаю поэтому и спрашиваю)
**********************************************************
TPrinter *MY_PRINTER;
Graphics::TBitmap *MY_PICTURE;
//TRect
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------



void __fastcall TForm1::FormCreate(TObject *Sender)
{
MY_PRINTER = new TPrinter();
MY_PICTURE = new Graphics::TBitmap();
MY_PICTURE->LoadFromFile("at90s8535.bmp");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(PrintDialog1->Execute())
{
MY_PRINTER = Printer();
MY_PRINTER->Title = "MY_SIMPLE_PRINTING";
MY_PRINTER->BeginDoc();
MY_PRINTER->Canvas->Draw(MY_PRINTER->PageWidth/2,MY_PRINTER->PageHeight/2,MY_PICTURE);
MY_PRINTER->EndDoc();
}
}
************************************************************
но вся трабла в том, что картинка выходит какаято чаморошная - ну очень маленькая
идея про то, что надо растянуть Rect картинки - не подходит.(к картинке - вернее к ее координатам привязаны очень много обектов, и всю эту хрень довольно неудобно будет пересчитывать, - прога строит схемы по типу електроник воркбенч с множеством элементов с их ножками и проводами).
буду благодарен за предложения
 
Top
Guest
Отправлено: 24.12.2004, 09:52 Цитировать


Unregistered









Занималсе подобным черте когда.
Шел по пути - уточнить тип принтера и систему команд и размер бумаги (не забыть поля).
По возможной плотности печати и размеру бумаги получить масштабные множители.
Рассчет точек в памяти.
Формирование команд принтера для построчного вывода (если принтер может работать в режиме графопостроителя - подарок судьбы).

Все это такая головная боль, что лучше найти готовую систему. Например делать файл с векторным изображением по стандарту системы, а затем средствами системы его печатать.
 
Top
2 ответов с: 15.09.2004, 20:05 Подписаться на тему | Отправить тему на E-mail | Распечатать тему

Back to Работа с внешними устройствами
ОтветитьНовая тема