首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并XPS横向

合并XPS横向
EN

Stack Overflow用户
提问于 2012-03-09 19:34:29
回答 1查看 965关注 0票数 1

我已经实现了这个解决方案,它对我很有效:Can multiple xps documents be merged to one in WPF?

我的问题是我想要合并的页面是横向的。添加ContainerVisual时,默认情况下会在垂直方向上创建一个页面。如何将方向更改为ContainerVisual?

代码语言:javascript
复制
private void AddXPSDocument(string sourceDocument, SerializerWriterCollator vxpsd)
    {
        XpsDocument xpsOld = new XpsDocument(sourceDocument, FileAccess.Read);
        FixedDocumentSequence seqOld = xpsOld.GetFixedDocumentSequence();
        foreach (DocumentReference r in seqOld.References)
        {
            FixedDocument d = r.GetDocument(false);
            foreach (PageContent pc in d.Pages)
            {
                FixedPage fixedPage = pc.GetPageRoot(false);
                double width = fixedPage.Width;
                double height = fixedPage.Height;

                Size sz = new Size(width, height);
                fixedPage.Width = width;
                fixedPage.Height = height;
                fixedPage.Measure(sz);

                fixedPage.Arrange(new Rect(new Point(), sz));


                //fixedPage.UpdateLayout();

                ContainerVisual newPage = new ContainerVisual();
                newPage.Children.Add(fixedPage);

                vxpsd.Write(newPage);

            }
        }
        xpsOld.Close();
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-09 20:21:56

您需要向页面视觉添加一个RotateTransform

代码语言:javascript
复制
Visual originalPage = Paginator.GetPage(pageNumber).Visual;

var pageContentVisual = new ContainerVisual();

TransformGroup group = new TransformGroup();
group.Children.Add(new RotateTransform { Angle = 90.0 });

pageContentVisual.Transform = group;
pageContentVisual.Children.Add(originalPage);

注意:上面的代码是从一个自定义的DocumentPaginator中复制过来的,但是你应该能够根据你的情况来应用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9633380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档