logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • О нас
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Как распечатать картинку из отчета по клику
  • Как распечатать несколько раз одну страницу отчета

    24 февраля 2022 г.

    Если вам нужно распечатать отдельные страницы отчета в нескольких экземплярах, то придется прибегнуть к

    Подробнее
  • Как сделать интерактивный отчет с детальной страницей в FastReport VCL 5

    15 октября 2017 г.

    В FastReport VCL 5 появилось много нововведений. Одно из них - новые опции гиперссылки. Теперь

    Подробнее
  • Интерактивный отчёт с предварительным вводом данных в таблицу

    4 апреля 2022 г.

    Как вы уже знаете, отчеты FastReport .NET могут иметь диалоговые формы, которые выводятся перед

    Подробнее
  • Работа с NuGet пакетами FastReport

    22 ноября 2021 г.

    UPD: Актуально до версии FastReport .NET 2022.2. Теперь лицензионные пакеты доступны на нашем NuGet-сервере.

    Подробнее
  • Семейство генераторов отчетов FastReport - быстрый обзор

    23 марта 2020 г.

    Отчетность – без нее невозможно вести деятельность ни в одной сфере жизнедеятельности. Бюрократия является неодолимой

    Подробнее

Как распечатать картинку из отчета по клику

29 апреля 2020 г.

Многим пользователям генераторов отчетов достаточно штатной функциональности в повседневной работе. Но порой им приходится сталкиваться с нетривиальными задачами, и тогда поиск решения может занять немало времени и сил. Но, пожалуй, лучшим решением будет обратиться с вопросом к разработчикам для получения наиболее квалифицированной помощи. Это и сделал один из пользователей генератора отчетов Telerik Reporting. А проблема его состояла в том, чтобы распечатать картинку из объекта изображения в отчете:

https://www.telerik.com/forums/print-a-picture-from-a-picturebox

Отчет может содержать изображения, не только загруженные при проектировании, но те, которые хранятся в бинарном виде в базе данных. Представьте себе ситуацию, когда вам нужно распечатать только нужные изображения из отчета со многими страницами данных. На первый взгляд это большая проблема. Можно экспортировать отчет в формат HTML, скопировать нужное изображение в графический редактор и только тогда отправить на печать. А можно сделать интерактивный отчет, который позволит печатать картинки по клику мышью. Такое решение и предложено специалистами компании Telerik, в ответ на вопрос пользователя.

Это отличное решение. Давайте рассмотрим, как решить эту задачу в отчете FastReport.Net. На самом деле нет ничего проще. Вам нужно лишь создать обработчик события нажатия на объект картинки:

 

И добавить пару методов в скрипт отчета:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//Объект картинка
 public Image img;
 //Метод печати
 public void Print()
 {
 System.Drawing.Printing.PrintDocument picture = new System.Drawing.Printing.PrintDocument(); 
 picture.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(picture_PrintPage); 
 DialogResult result = new PrintDialog().ShowDialog();
 if (result == System.Windows.Forms.DialogResult.OK)
 {
 picture.Print();
 }
 }
 
 private void picture_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
 { 
 e.Graphics.DrawImage(img, new Point(0, 0)); //картинка и позиция на печатном листе
 }
 
 private void Picture1_Click(object sender, EventArgs e)
 {
 img = (sender as PictureObject).Image; //Получаем картинку из выбранного объекта
 Print(); //Вызываем печать
 }

Как видите, нужно лишь получить картинку из выбранного объекта и вызвать печать документа. В методе печати мы создали свой обработчик события печати документа, в котором использовали полученную картинку. Теперь, при просмотре отчета в просмотрщике можно кликнуть по картинке и отправить ее на печать:

 

А если вам нужно не печатать, а сохранять картинку на локальном диске, то можно по аналогии сделать так:

1
2
3
4
private void Picture1_Click(object sender, EventArgs e)
 {
 (sender as PictureObject).Image.Save("C:\\Temp\\image.bmp");
 }

Таким образом, печать картинки по клику, в отчетах FastReport.Net реализуется крайне просто.

О продукте Купить
avatar
Dmitriy Fedyashov
Технический писатель
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport Interactivity Report Printing

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • FAQ
  • Видео уроки
  • Форум
  • Условия оказания поддержки
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • Нестандартное лицензирование
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2023 ООО «Быстрые отчеты»

  • Согласие с обработкой персональных данных
  • Политика в отношении обработки персональных данных
  • Не является публичной офертой