Описание проблемы
Для начала напомним, что генератор отчетов Stimulsoft Reports.AVALONIA появился относительно недавно – в версии наших продуктов 2023.4. Первые версии продукта не содержали возможности печати отчётов, что объясняется особенностями Avalonia UI. Дело в том, что это кроссплатформенный фреймворк, то есть, работающий под всеми основными операционными системами, что, в свою очередь, существенно осложняет реализацию функционала печати документов. Исходя из рекомендаций разработчиков платформы, единственный путь – это написание отдельного кода API для каждой операционной системы.Решение
Мы решили эту проблему обходным путём: при нажатии на кнопку Печать выполняется так называемый «тихий» экспорт документа в PDF («тихий» экспорт означает процесс экспорта документа по дефолту, без показа окна настроек) и сохранение этого документа как временного файла в специальную папку. Далее – в зависимости от операционной системы.Windows-системы
Для начала важный момент: в системе должна быть установлена любая программа для работы с PDF-файлами и, соответственно, задана ассоциация для файлов этого расширения. Мы вызываем этот файл на печать через командную строку именно с помощью данного приложения.Сейчас печать будет происходить на установленном по умолчанию принтере. Если у пользователя есть несколько принтеров, и нужно выполнить печать не на дефолтном, мы можем добавить специальный класс, в котором указывается нужное имя (для этого напишите нам в поддержку). Важно!
Необходимо учитывать одну особенность ОС Windows: после печати сам документ в приложении закрывается, но само приложение может оставаться открытым. На это мы никак повлиять не можем.
Unix-системы (macOS, Linux)
В Unix-системах реализация печати происходит проще: достаточно выполнить экспорт в PDF и сохранить файл. Далее печать происходит с помощью системной команды lp. В данном случае, эта команда есть в unix-системах по умолчанию, и ничего дополнительно устанавливать не нужно.Реализация печати в Reports.AVALONIA будет доступна в ближайшей минорной версии продуктов Stimulsoft.