Как печатать PDF в UWP без потери качества после растеризации в PNG

После некоторого исследования печати в UWP я выделил:

  1. Нет собственного способа печати PDF-документа прямо из вашего приложения без перенаправления этой задачи в Edge или другую аналогичную программу.
  2. Существует способ распечатать элементы XAML (например, изображение) с помощью PrintDocument.
  3. Существует встроенный способ рендеринга PDF в PNG с использованием класса PdfDocument.

Эти три пункта дают нам возможность распечатать PDF, но у нас есть проблема здесь:

  1. После растеризации в PNG качество выходного документа довольно низкое.

К счастью, PdfDocument позволяет увеличить выходное разрешение при растеризации, но...

  1. Но это потребляет память (разрешение x4 приводит к потреблению памяти x32)
  2. Но это отнимает много времени (разрешение x4 приводит к потреблению времени x7)
  3. Даже при разрешении выходного изображения x4 качество все еще так далеко от желаемого.

Итак, я создал образец, который вы можете поиграть с https://github.com/VitaliyPusan/UwpPrinting

Например, Microsoft Edge может печатать PDF в довольно хорошем качестве и делать это быстро и без дополнительного потребления памяти, но я понятия не имею, как я могу сделать то же самое.

Кто-нибудь знает лучший способ печати PDF в UWP?

0 ответов

Другие вопросы по тегам