Друк документів Програматично або за допомогою ділогів

У статті описано, як друкувати документ обробки слів з ASP.NET або Windows Сервісний додаток за допомогою Aspose.Words і XpsPrint APIй Також продемонстровано методи друку документа з налаштуваннями, переглядом друку та діалогами про прогресування друку, а також пояснює, як зменшити час першого виклику для друку документа.

Друк документів на документі Server через XpsPrint API

Цей розділ призначений для користувачів, які хочуть подати заявку XPS документ на некерований XpsPrint API з .NET Застосування Aspose.Wordsй

Обмеження друку документа в ASP.NET або Windows Сервісні програми

При розробці .NET додаток, який виробляє деякі друковані дані, ви можете зазвичай використовувати класи, що надаються в System.Drawing.Printing простір імен, або Windows Презентація програм (WPF) Однак, якщо додаток є ASP.NET або Windows Застосування послуг, варіанти друку обмежені, оскільки Microsoft Дискурування за допомогою цього підходу. Про нас .NET Framework Класи друку не підтримуються застосуванням послуг. Це включає ASP сторінки, які зазвичай виконуються в умовах серверного сервісу.

Про класи System.Drawing.Printing простір імен не підтримується для використання в межах Windows Послуги або послуги ASP.NET Заявка або сервіс, а також спроба їх використання може виробляти знижену продуктивність сервісу, винятку та інші проблеми. Використання WPF для побудови Windows послуги не підтримується. Оскільки WPF є технологією презентації, Windows Послуга вимагає відповідних дозволів на виконання візуальних операцій, пов’язаних з взаємодією користувача. Якщо Windows Послуга не має таких дозволів, можуть бути несподівані результати.

Про нас Aspose.Words Document об’єкт забезпечує сім’ю Print методи друку документів. Ці методи використовують .NET класи друку, визначені в System.Drawing.Printing простір імен. Є багато Aspose.Words Клієнти, які успішно використовують для друку в своїх серверних додатках. Тим не менш, ця стаття демонструє альтернативний метод друку, який відповідає MicrosoftРекомендації.

Способи друку документів на документі Server

Правильний спосіб друку документів відповідно до Microsoft за допомогою некерованих XpsPrint APIй Про нас API доступна на Windows 7,7 км Windows Server 2008 рік R2, й Windows Vista Надано оновлення платформи для Windows Vista встановлюється.

З Aspose.Words може легко конвертувати будь-який документ у XPS, > Вам потрібно лише написати код, який проходить XPS документ до документа XpsPrint APIй Єдина проблема полягає в тому, що XpsPrint API - це незахищений і вимагає певних знань технології платформи.

Для друку документа, Aspose.Words надає послуги XpsPrintHelper клас містить простий метод друку, де потрібно лише вказати такі параметри (див. докладніше в статті Друкувати документ через XPS API):

  • Ви хочете друкувати.
  • Назва принтера.
  • Ім’я користувача (за бажанням).
  • Boolean значення, вказавши, що програма повинна чекати до завершення роботи друку. Таким чином, система перевірить, чи друкується документ успішно або повернеться негайно після відправки на друк. В останньому випадку неможливо визначити, чи успішно пройшла робота друку.

При виникненні будь-яких проблем, які подають або друкують документ, метод кине виняток.

Приклад коду нижче показує, як друкувати документ за допомогою XpsPrintHelper клас:

Коли ви запустіть проект, він друкує зразок документа на вказаному принтері і відкриває вікно консолі для відображення результатів друку. Коли робота друку завершує або вичерпає помилки, система буде відображати повідомлення про успішність або текст винятків.

Ви також можете встановити деякі налаштування друку за допомогою PageSetup клас. Наприклад, в Microsoft Word, Принтерні лотки визначаються для кожного розділу і є принтером. Таким чином, ви можете запрограмовано змінити ці значення для кожного розділу через FirstPageTray і OtherPagesTray властивості.

Є два перевантаження XpsPrintHelperйPrint метод. Перше перевантаження займає Document об’єкт і зберігає його в MemoryStream в XPS Формат. Друге перевантаження приймає Stream об’єкт. Потік повинен містити документ у документі XPS Формат.

Ви можете завантажити приклади перевантаження способу з Aspose.Words GitHubй

Ви можете завантажити файл зразок цього прикладу з Aspose.Words GitHubй

Друк документів з налаштуваннями та друком ділогів

При роботі з документами часто потрібно друкувати їх на обраний принтер. Ви можете використовувати діалогове вікно попереднього перегляду друку, щоб візуально зрозуміти, як буде виглядати друкований документ і вибрати відповідні параметри друку.

Про нас Aspose.Words не має вбудованих діалогів або форм, але реалізує AsposeWordsPrintDocument клас, на основі .NET PrintDocument клас. Приклад цього класу може бути переданий до PrintPreviewDialog у вигляді попереднього перегляду та друку документа. Також, ДрукПоглядДіалог клас визначає вихід для передачі принтера.

Наступний приклад показує, як використовувати ці класи для друку документа з Aspose.Words через вікно попереднього перегляду та налаштування друку:

Щоб оптимізувати зовнішній вигляд діалогових налаштувань, вкажіть властивості PrintPreviewDialog клас.

Друк кількох сторінок на одному аркуші

Завжди вигідно мати більш гнучкість при друку документів. Використання .NET і Aspose.Words Ви можете легко відхилити роботу друку, щоб реалізувати вашу логіку, визначивши спосіб, документ буде з’являтися на друкованій сторінці.

Як в попередньому розділі, Aspose.Words впроваджує MultipagePrintDocument клас, який базується на .NET PrintDocument клас. Це означає, що існуючий .NET Друк інфраструктури може бути використана таким чином, що діалоги попереднього перегляду друку та друку дозволять візуалізувати документ до друку. Про нас MultipagePrintDocument клас надає можливість друкувати кілька сторінок на одному аркуші паперу.

Приклад даного коду показано нижче:

print-a-document-programmatically-or-using-dialogs-aspose-words-net

При друку документа

Діалог щодо друку Прогрес не відображається при друку документа через Print метод. Тим не менш, це діалог з’являється під час друку з іншим Print метод. У цьому випадку, щоб запобігти діалоговому вікні з’являються, ви повинні вказати дійсні налаштування принтера і стандартний контролер друку в цьому методі, як показано на прикладі нижче:

Ви можете завантажити файл зразок цього прикладу з Aspose.Words GitHubй

Як зменшити час першого виклику для друку документів

Aspose.Words Читання та кешування деяких полів PrinterSettings скоротити час друку. Ви можете досягти цього за допомогою виклику CachePrinterSettings метод. Цей метод називається до друку починається, якщо він не був виконаний раніше. Зауважте, що загальний час друку з і без виклику цього способу майже однаково. Мета використання цього методу полягає в скороченні часу першого виклику Print метод. Приклад коду показує, як використовувати цей метод:

Дивитися ще