WPF - экспорт содержимого XAML в файл (PDF или Word) - PullRequest
0 голосов
/ 07 ноября 2019

У меня довольно простое приложение WPF, но с множеством форм, около 80, распределенных по файлам UserCcontrol xaml и с помощью TabControl в главном файле Window. Некоторые из этих форм содержат много данных, но в основном все разбито на элементы управления TextBlock, TextBox, Label, Grid, RadioButton и ComboBox.

Я сделал все, но есть требование, чтобы все вконец должен быть экспортирован в файл - либо PDF, либо Word. Есть ли простой способ сделать это? У меня нет требования иметь одинаковый стиль и форматирование. Мне нужен только текст - вопрос и заданный ответ, либо текст, либо выбранный вариант.

Я искал в Интернете и видел много решений, но PdfSharp, я считаю, был лучшим. Тем не менее, у меня есть много форм, и было бы излишним отображать каждый пользовательский элемент управления в цикле или что-то еще, чтобы записать в файл. Создание растрового изображения или изображения и печать в файл не помогли бы, поскольку у меня есть текстовые поля с прокруткой, и весь текст не будет виден в таких случаях.

Для меня лучше всего подойдет библиотека, котораяпринимает, скажем, пользовательский элемент управления, а затем печатает его содержимое на странице (ах) файла. Еще раз - мне не нужны никакие стили или форматирование или изображения, просто текст.

Вот небольшой пример того, как выглядит одна из форм, просто чтобы дать вам представление: enter image description here

Заранее спасибо!

1 Ответ

0 голосов
/ 07 ноября 2019

Я искал подобные инструменты, и там не так много, особенно если вы ищете что-то с открытым исходным кодом.

Самый простой подход будет использовать инструменты, найденные в System.Windows.Automation пространство имен. Это должно помочь вам написать некоторые вспомогательные функции, которые могут захватывать текст со всех элементов в ваших элементах управления.

Эта ссылка должна быть полезной: https://docs.microsoft.com/en-us/dotnet/framework/ui-automation/obtain-text-attributes-using-ui-automation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...