Определите размер страницы при записи в документ XPS

Я пытаюсь написать документ XPS в фоновом потоке, и я не могу использовать PageContent или FixedPage, поскольку требуется поток STA. Причина в том, что загрузка занимает довольно много времени и блокирует пользовательский интерфейс.

Это прекрасно работает, но размер страницы не правильный, или если у меня есть альбомная страница, это все еще по умолчанию?! размер в средстве просмотра документов.

Вопрос есть. Во что я должен поместить DrawingVisual, чтобы иметь возможность изменять размер страницы / ориентацию без использования PageContent или FixedPage?

            // XPS package definition
        var packetName = "undefined";
        var stream = new MemoryStream();
        var uri = new Uri($"pack://{packetName}.xps", UriKind.Absolute);
        PackageStore.RemovePackage(uri);
        var package = Package.Open(stream, FileMode.Create, FileAccess.ReadWrite);
        PackageStore.AddPackage(uri, package);

        // Creating the XPS document
        var xpsDocument = new XpsDocument(package, CompressionOption.NotCompressed, new Uri($"pack://{packetName}.xps", UriKind.Absolute).AbsoluteUri);
        // XPS document writer
        var docWriter = XpsDocument.CreateXpsDocumentWriter(xpsDocument);

        var pageCount = renderer.FormattedDocument.PageCount;
        for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++) {
            DrawingVisual drawingVisual = new DrawingVisual();
            DrawingContext drawingContext = drawingVisual.RenderOpen();

            // Populating the drawing context logic here

            drawingContext.Close();

            var container = new ContainerVisual();
            container.Children.Add(drawingVisual);

            list.Add(container);
        }

        visualcollator.BeginBatchWrite();
        foreach (var item in list) {
            visualcollator.Write(item);
        }
        visualcollator.EndBatchWrite();

        DocumentViewer = xpsDoc.GetFixedDocumentSequence();

0 ответов

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