none
Печать таблицы. RRS feed

  • Вопрос

  • Здравствуйте. Использую wpf. На форме есть DataGrid. Пробую ее печатать с помощью printvisual , но кусок обрезается(Так как сдвинута влево на форме) и само ее изображение не нравится, и место не заполненное печатает. Можно ли как-то напечатать просто таблицу с данными (ну как в word или excel)? 
    5 января 2018 г. 12:54

Ответы

  • В общем случае следует печатать данные, а не по сути снимок экрана как вы делайте. Снимок экрана на бумаге всегда будет выглядеть неважно, а часто и вовсе не правильно.

    Для печати используются классы Document (который будет содержать данные для печати) и DocumentPaginator (который будет создавать страницы). Собственно печать будет выполнена вызовом PrintDialog.PrintDocument().

    Вопрос тут конечно в создании документа. Все необходимое для вывода таблиц имеется, но придется поработать. Изучайте содержимое System.Windows.Documents, там имеется все что надо. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    8 января 2018 г. 17:27
    Модератор

Все ответы

  • Здравствуйте,

    Возможно как предложено здесь: How to print a DataGrid in WPF, not a DataGridView


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    8 января 2018 г. 13:44
    Модератор
  • Вот как раз этим способом и пробовал(как написал в вопросе). Но так как DataGrid слева , то половина при печати обрезается.
    8 января 2018 г. 17:09
  • В общем случае следует печатать данные, а не по сути снимок экрана как вы делайте. Снимок экрана на бумаге всегда будет выглядеть неважно, а часто и вовсе не правильно.

    Для печати используются классы Document (который будет содержать данные для печати) и DocumentPaginator (который будет создавать страницы). Собственно печать будет выполнена вызовом PrintDialog.PrintDocument().

    Вопрос тут конечно в создании документа. Все необходимое для вывода таблиц имеется, но придется поработать. Изучайте содержимое System.Windows.Documents, там имеется все что надо. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    8 января 2018 г. 17:27
    Модератор
  • Или подготовить таблицу в виде HTML, и напечатать с помощью COM-объектов Internet Explorer (проще всего использовать невидимый WinForms WebBrowser, у него есть специальный метод Print, или через WPF WebBrowser вот так). 
    8 января 2018 г. 18:42
  • Или подготовить таблицу в виде HTML, и напечатать с помощью COM-объектов Internet Explorer (проще всего использовать невидимый WinForms WebBrowser, у него есть специальный метод Print, или через WPF WebBrowser вот так). 

    Печать в бразузерах и так весьма убогая, а уж в сочетании с IE, COM и WinForm определенно за чертой самоистязания. :) 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    8 января 2018 г. 19:50
    Модератор
  • Убогость печати в IE касается сайтов со сложной графикой и стилями, но не обычной текстовой таблицы.
    9 января 2018 г. 3:23