Распечатать блок FlowDocument на разных страницах - PullRequest
0 голосов
/ 11 сентября 2009

Я печатаю FlowDocument, используя следующий код:

        PrintDialog dialog = new PrintDialog();
        var value = dialog.ShowDialog();

        if (value.HasValue && value.Value == true)
        {
            XpsDocumentWriter writer = PrintQueue.CreateXpsDocumentWriter(dialog.PrintQueue);
            PageImageableArea imageArea = dialog.PrintQueue.GetPrintCapabilities().PageImageableArea;
            PrintTicket ticket = dialog.PrintTicket;

            if (writer != null && imageArea != null)
            {
                DocumentPaginator paginator = (doc as IDocumentPaginatorSource).DocumentPaginator;
                paginator.PageSize = new Size((double)ticket.PageMediaSize.Width, (double)ticket.PageMediaSize.Height);
                var padding = doc.PagePadding;
                doc.PagePadding = new Thickness(
                      Math.Max(imageArea.OriginWidth, padding.Left),
                      Math.Max(imageArea.OriginHeight, padding.Top),
                      Math.Max((double)ticket.PageMediaSize.Width - (double)(imageArea.OriginWidth + imageArea.ExtentWidth), padding.Right),
                      Math.Max((double)ticket.PageMediaSize.Height - (double)(imageArea.OriginHeight + imageArea.ExtentHeight), padding.Bottom));
                doc.ColumnWidth = double.PositiveInfinity;
                // Send DocumentPaginator to the printer.
                writer.Write(paginator);
            }
        }

Теперь я хочу напечатать отдельный блок документа на другой странице, как я могу это сделать?

1 Ответ

0 голосов
/ 07 декабря 2009

Вы можете использовать элемент или элемент MSDN .

В зависимости от того, что вы действительно хотите сделать, вам нужно добавить блок в документ:

doc.AddBlocks(newblock)
...