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

 
Работа с принтером, Подача матрицы пикселей
VainahskiyPapa
Отправлено: 15.09.2004, 20:05


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

Группа: Участник
Сообщений: 46



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


Не зарегистрирован







доброго дня всем!
я тут пробовал разобраться с печатью в Билдере, вышла такая штука:
(прошу не судить строго, я многого не знаю поэтому и спрашиваю)
**********************************************************
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 картинки — не подходит.(к картинке — вернее к ее координатам привязаны очень много обектов, и всю эту хрень довольно неудобно будет пересчитывать, — прога строит схемы по типу електроник воркбенч с множеством элементов с их ножками и проводами).
буду благодарен за предложения
Guest
Отправлено: 24.12.2004, 09:52


Не зарегистрирован







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

Все это такая головная боль, что лучше найти готовую систему. Например делать файл с векторным изображением по стандарту системы, а затем средствами системы его печатать.

Вернуться в Работа с внешними устройствами