Какой смысл XPS?

Когда я прочитал книги о WPF, я видел, что авторы упомянули, что XPS как он был чем-то важным. Windows также включает свое средство просмотра XPS, и я видел, что перечислил как "функцию" Windows.

Но почему? Какой смысл? Кто, черт возьми использование это? Это - мое понимание, что XPS, в основном, как PDF, xhtml, или ePub (который является просто xhtml)... или даже docx формат Word. Многими функциями является то же среди тех форматов.

Это, кажется, не обладает никакими главными преимуществами по сравнению ни с одним из тех других форматов. Мне кажется, что xhtml был бы настолько более полезным, чем XPS как способ сохранить и загрузить FlowDocuments из RichTextBox. Я посмотрел на несколько блогов о преобразовании между двумя. Большинство или весь обогащенный текст в Интернете (x) HTML. Кроме того, я не думаю, что любой использует его только для публикации их документов; PDF предпочтен. Кажется, что XPS является просто некоторым случайным форматом, который MS сделал и решенный для продвижения. Я обычно люблю MS, но у них действительно есть привычка к такой вещи. Разве MS, возможно, не сделал API с помощью xhtml вместо этого? Это было бы более полезно в большом количестве ситуаций, я буду думать.

Так, есть ли точка к использованию XPS, особенно по сравнению с одним из других форматов, которые я упомянул (или кто-либо, которого я не имею)? Вы когда-либо использовали XPS в своих программах или иначе?

16
задан pnuts 23 September 2014 в 01:53
поделиться

4 ответа

Как уже было сказано в U62, WPF поставляется с элементом управления DocumentViewer, который позволяет просматривать документы XPS. DocumentViewer также имеет некоторые полезные функции, такие как Print, Zoom, FitToPage и т. Д. Так что вам не нужно реализовывать это или использовать сторонний инструмент.

То, что я закончил час назад, используя XPS и DocumentViewer, было своего рода «предварительным просмотром печати адресных этикеток». Разрешите пользователю выбрать некоторые контакты из списка контактов, нажмите «Предварительный просмотр». Это открывает новое окно XAML, которое содержит элемент управления DocumentViewer и ListBox с выбором различных меток (например, 1 лист с 12 метками [2 столбца, 6 строк], 1 лист с одной меткой, ширину и высоту которой можно определить пользователем) . На основе выбора пользователей я создаю документ XPS в макете, выбранном пользователем, с адресами выбранных контактов. Если, например, пользователь выбрал 4 контакта и желает распечатать их на «SingleLabelSheet», я создаю 1 документ XPS с 4 страницами, каждая страница содержит 1 адрес. Затем я отображаю XPS в DocumentViewer, и пользователь может распечатать этикетки на нашем принтере этикеток.

Как только я понял, как работает XPS API (по крайней мере, основы), мне потребовалось два часа, чтобы запустить его.

В общем, я рассматриваю XPS как простой в использовании API для отображения фиксированных документов, которые должны быть созданы на лету. Но я бы лично не стал сохранять их на свой жесткий диск или как-то изменять их или что-то еще, что вы обычно делаете с документами.

8
ответ дан 30 November 2019 в 22:17
поделиться

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

кстати. Я много знаю о EPUB, но XPS не имеет напрямую сопоставление с XHTML, это больше похоже на PDF в том, что он предназначен для фиксированного макета.

3
ответ дан 30 November 2019 в 22:17
поделиться

XPS в WPF похож на WMF для Win32 / WinForms, это постоянный формат, который позволяет хранить и печатать родную графику WPF.

XPS используется для печати из WPF (даже если вы печатаете прямо из приложения без сохранения, внутренняя система печати построена на XPS), так что MS должна делать:

  1. Создайте новый формат файла, который точно соответствует тому, что они пытаются сделать
  2. Создать 100% идеальный переводчик из WPF в формат, который они не контролируют, например PDF (и надеемся, что Adobe не сломает все приложения WPF в следующем выпуске Acrobat Reader).

Что бы вы сделали?

Сохранение файлов XPS - просто приятный бонус.

3
ответ дан 30 November 2019 в 22:17
поделиться

Послушайте, я могу быть пессимистом в отношении XPS как решения для генерации отчетов, но я попробовал и обнаружил, что исходную документацию трудно понять, с меньшим количеством реальных образцов, чем то, что мне хотелось бы. Когда я поместил его в реальное бизнес-приложение, я обнаружил, что это разочаровывает, особенно в LOB-приложениях, которым требуются таблицы, занимающие несколько страниц.

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

С тех пор все могло измениться (около 8 месяцев назад), но я перешел от XPS к использованию ITextSharp, и это было намного менее болезненно.

Таким образом, единственное преимущество, которое я бы сказал, как и все остальные, - это встроенная программа просмотра в WPF - но кроме этого, я чувствую, что API, возможно, потребуется немного «доработать», прежде чем я попытаюсь что-то еще в нем сделать.

3
ответ дан 30 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: