Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.
PDF в Postscript на C#
Класс PdfViewer предоставляет возможность печати PDF-документов, и с помощью этого класса мы также можем конвертировать PDF-файлы в формат PostScript. Чтобы конвертировать PDF-файл в PostScript, сначала установите любой PS-принтер и просто напечатайте в файл с помощью PdfViewer. Для установки PS-принтера обратитесь к инструкциям, предоставленным вашим производителем принтера. Следующий фрагмент кода показывает, как напечатать и конвертировать PDF в формат PostScript.
Проверка статуса задания на печать
PDF-файл можно напечатать как на физическом принтере, так и на Microsoft XPS Document Writer, без отображения диалогового окна печати, с использованием класса PdfViewer. При печати больших PDF-файлов процесс может занять много времени, поэтому пользователь может не быть уверенным, завершился ли процесс печати или возникла проблема. Чтобы определить статус задания на печать, используйте свойство PrintStatus. Следующий фрагмент кода показывает, как напечатать PDF-файл в файл XPS и получить статус печати.
Получение/установка имени владельца задания на печать
Иногда возникает необходимость получить или установить имя владельца задания на печать (т.е. фактического пользователя, который нажал кнопку печати на веб-странице). Эта информация необходима при печати PDF-файла. Для выполнения этого требования используется свойство PrinterJobName.
Использование импсонации
Другой подход к получению имени владельца задания на печать — это использование импсонации (выполнение печатных процедур в контексте другого пользователя) или пользователь может изменить имя владельца напрямую, используя процедуру SetJob.
Обратите внимание, что нет возможности установить значение владельца с помощью API печати Aspose.PDF по соображениям безопасности. Свойство PrinterJobName может быть использовано для установки значения столбца имени документа в приложении для печати спулера. Приведенный выше фрагмент кода просто показывает, как пользователь может объединить имя пользователя в столбце имени документа (например, используя синтаксис UserName\documentName). Но установка столбцов владельца может быть реализована следующими способами непосредственно пользователем:
Импсонация. Поскольку значение столбца владельца содержит значение пользователя, который запускает код печати, существует способ вызвать API печати Aspose.PDF в контексте другого пользователя. Например, посмотрите решение, описанное здесь. Используя этот класс Impersonator, пользователь может достичь своей цели:
Использование API спулера и процедуры SetJob
Следующий фрагмент кода показывает, как напечатать некоторые страницы PDF-файла в простом режиме и некоторые страницы в дуплексе.