gpt4 book ai didi

c# - 如何设置 Xps 文档的页面大小?

转载 作者:太空狗 更新时间:2023-10-29 23:33:07 25 4
gpt4 key购买 nike

我正在尝试使用 FixedDocument 保存 XPS 文档.到目前为止,我未能更改页面大小。 如何将其更改为自定义尺寸?

我的代码基于 the first answer to this question ,更具体地说,我正在使用这段代码:

        if (File.Exists(filename)) {
File.Delete(filename);
}

var oldParent = LogicalTreeHelper.GetParent(this) as ContentControl;
try {
oldParent.Content = null;

FixedDocument doc = new FixedDocument();

PageContent pageCnt = new PageContent();
FixedPage page = new FixedPage();

page.Children.Add(this);
try {
((System.Windows.Markup.IAddChild)pageCnt).AddChild(page);
doc.Pages.Add(pageCnt);

XpsDocument xpsDoc = new XpsDocument(filename, FileAccess.ReadWrite);
try {
var writer = XpsDocument.CreateXpsDocumentWriter(xpsDoc);
writer.Write(doc);
}
finally {
xpsDoc.Close();
}
}
finally {
page.Children.Clear();
}
}
finally {
((ContentControl)oldParent).Content = this;
}

它将用户控件复制到 XPS 文档中并成功完成,但正如我所说,它使用默认纸张大小。

我尝试使用 DocumentPaginator.PageSize 属性来设置新的页面大小(在实例化 FixedDocument 之后),但是我分配给该属性的任何内容似乎都被忽略了;生成的 XPS 文档中的页面保留其默认纸张大小。

当逐步执行时,我可以看到 PageSize 属性的值确实发生了变化,所以它不像 DocumentPaginator 不接受新值.

我已经找到了各种在线资源,但都没有解决我的问题:

  • This forum posting at MS Social坚持认为设置 PageSize 属性是有效的,但据我所知它并没有起作用。
  • The docs声称设置 PageSize 属性有效,并提供了一个与我尝试过的相同的示例。 (除此之外,基于此文档页面,我什至无法告诉要使用的数字单位。)
  • 文档还指向 DocumentPage.Size property ,但是该属性不能公开更改。我真的必须在将页面添加到文档之前覆盖某些页面类以获得不同的页面大小吗?
  • This forum posting描述了同样的问题,但答案对我来说似乎毫无意义。我只使用过一次 DocumentPaginator 属性,因此没有“再次调用 (...).DocumentPaginator” 我可以为其保存一个实例。
  • This question听起来很有希望,但实际上这与页面大小无关,而是与给定页面上图像的比例有关。
  • 除了前面提到的 PageSize 属性(这里似乎设置为默认大小),this tutorial使用 FixedPageWidthHeight 属性。但是,为快速测试分配一些正的随机值会导致我的 XPS 文档明显损坏,并且 XPS 查看器在打开它时显示错误消息。

最佳答案

FixedDocuments 有固定的页面。 FixedPage 的高度和宽度是可以控制的。有点像这样:

        FixedPage pageOne = new FixedPage();
pageOne.Height = 20;
pageOne.Width = 10;

或在 XAML 中:

高度="20"宽度="10"

关于c# - 如何设置 Xps 文档的页面大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com