Я пишу приложение для заметок в WPF, используя FlowDocument
для каждой отдельной заметки. Приложение ищет и фильтрует заметки по тегам. Я хочу напечатать все заметки в текущем отфильтрованном списке в виде отдельных документов, и я хочу показать только один диалог печати в начале задания.WPF: печать FlowDocument без диалогового окна печати
Я нашел хороший пример печати in this thread, но он предназначен для печати одного FlowDocument
, поэтому он использует перегрузку CreateXpsDocumentWriter()
, которая отображает диалоговое окно печати.
Итак, вот мой вопрос: может ли кто-нибудь предложить хороший код для печати FlowDocument
без отображения PrintDialog
? Я полагаю, что я покажу Диалог печати в начале процедуры, а затем прокручу коллекцию заметок, чтобы напечатать каждый номер FlowDocument
.
Я все еще хотел бы найти лучший способ сделать это. Если кто-нибудь может предложить его, я изменю принятый ответ. –
Вы можете попробовать использовать элементы PrintDialog.PrintQueue и PrintDialog.PrintTicket. С помощью PrintQueue вы можете создать XpsDocumentWriter, тогда вы можете использовать WriteAsync() для печати асинхронно. Кэширование очереди и билета кажется лучше кэширования PrintDialog. –
Спасибо, это полезно. +1 от меня. –