Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод на печать изображения, печать картинки из bmp 
V
    Опции темы
BOB4uK
  Дата 23.4.2010, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 28.2.2004

Репутация: нет
Всего: нет



Всем привет!
Подскажите, как можно в своей программе вывести на печать картинку?
Вот пример:
Код

  TPrinter *prn = Printer();
  TRect rect(0,0,prn->PageWidth,prn->PageHeight);

  prn->Copies=1;
  prn->Title="Test";
  prn->BeginDoc();

  //prn->Canvas->FrameRect(rect);

  TRect SRect;
  SRect.left=500;   SRect.top=500;
  SRect.right=3500; SRect.bottom=3500;

  Graphics::TBitmap *bmp=new Graphics::TBitmap();
  bmp->Width=fabs(SRect.right-SRect.left);
  bmp->Height=fabs(SRect.bottom-SRect.top);

  bmp->Canvas->Pen->Color=clRed;
  bmp->Canvas->Pen->Width=20;

  bmp->Canvas->MoveTo(0,0);
  bmp->Canvas->LineTo(rect.right,rect.bottom);

  prn->Canvas->Draw(500,500,bmp);
  prn->EndDoc();

  bmp->SaveToFile("C:\\TestPrint.bmp");
  delete bmp;

При открытии файла  TestPrint.bmp красная линия есть, а вот на печать не выводится!
Что я делаю не так?


Это сообщение отредактировал(а) BOB4uK - 23.4.2010, 19:18
PM MAIL ICQ   Вверх
Domain
Дата 24.4.2010, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



могу кинуть свой исходник по канве. там и печать найдешь и все что только есть... куда кидать?
PM MAIL   Вверх
BOB4uK
Дата 24.4.2010, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 28.2.2004

Репутация: нет
Всего: нет



мыло написал в личку!
PM MAIL ICQ   Вверх
Domain
Дата 24.4.2010, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



кароч. для печати используй и TPrinterSetupDialog и TPrintDialog. 
я делал так:
Код

 TPrinter *Prntr = Printer();
        Prntr->BeginDoc();
        Prntr->Canvas->Draw(10,
             10, Image1->Picture->Graphic);
        Prntr->EndDoc();


Если траблы с размерами при печати, то глянь это, мжет поможет. smile 
Код

        if (!Form1->PrintDialog1->Execute()) return;
    int PPIx = GetDeviceCaps(Printer()->Handle, LOGPIXELSX);
        int PPIy = GetDeviceCaps(Printer()->Handle, LOGPIXELSY);

    int SmX = PPIx / 2, SmY = PPIy / 3;
        int WInch = 10, HInch = 7; // размер в дюймах картинки

        Printer()->Orientation = poLandscape;

        int x = Printer()->PageWidth;
        int y = Printer()->PageHeight;

        Printer()->BeginDoc();

        Printer()->Canvas->StretchDraw(TRect(SmX,SmY,SmX + WInch * PPIx , SmY + HInch * PPIy),scope->get_source());
    /*
        Printer()->Canvas->CopyRect(TRect(off,off,off+scope->get_source()->Width,off+scope->get_source()->Height)
         ,scope->get_source()->Canvas,
         TRect(0,0,scope->get_source()->Width,scope->get_source()->Height) ); /**/
        Printer()->EndDoc(); /**/


Код может и кривой, ну лучше чем ничего. А если че по рисованию нада, то спрашивай. Мой исходник 70 метров весит и я его писал сам для себя, так что там сам черт ногу сломит))) поэтому лучше просто спрашивай, а я чем смогу тем помогу)))
PM MAIL   Вверх
BOB4uK
Дата 25.4.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 28.2.2004

Репутация: нет
Всего: нет



В том то и дело что с размерами пока все понятно, с выводом картинки из TImage тоже работает,
а как вывести на печать напрямую из BMP? 
PM MAIL ICQ   Вверх
BOB4uK
Дата 27.4.2010, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 28.2.2004

Репутация: нет
Всего: нет



Проблема решена!
Помогло преобразование в аппаратно независимое изображение (DIB)...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.