gpt4 book ai didi

c# - 如何在 MigraDoc 库中设置文档方向(针对所有页面)?

转载 作者:太空狗 更新时间:2023-10-29 21:50:16 24 4
gpt4 key购买 nike

我正在使用 MigraDoc以编程方式生成包含文本、图像和表格的 PDF 文件。

我需要将文档对象中的Document Orientation(对于所有页面)设置为Landscape

所以我尝试了以下方法。

document.DefaultPageSetup.Orientation = Orientation.Landscape;

但我收到以下调试断言错误。

---------------------------
Assertion Failed: Abort=Quit, Retry=Debug, Ignore=Continue
---------------------------

DefaultPageSetup must not be modified

如果我点击忽略,它会通过并且方向确实是横向

但是,我想确保以正确的方式执行此操作。

所以问题是,如何使用 MigraDoc 库为 Document 中的所有页面设置文档方向?

这是其余的代码(因此它可以帮助您了解上下文)

using System.Runtime.Remoting.Messaging;
using MigraDoc.DocumentObjectModel;

namespace MyNamespace.PdfReports
{
class Documents
{
public static Document CreateDocument()
{
// Create a new MigraDoc document
Document document = new Document();
document.Info.Title = "The Title";
document.Info.Subject = "The Subject";
document.Info.Author = "Shiva";
document.DefaultPageSetup.Orientation = Orientation.Landscape;

非常感谢!
-湿婆

更新:

解决方案:这是工作代码,基于Thomas ' 在下面回答(为了其他可能正在寻找此解决方案的人的利益)。

// Create a new MigraDoc document
Document document = new Document();
//...
//......
PageSetup pageSetup = document.DefaultPageSetup.Clone();
// set orientation
pageSetup.Orientation = Orientation.Landscape;
// ... set other page setting you want here...

最佳答案

DefaultPageSetup.Clone() 分配给您的部分的 PageFormat 并对其进行修改。

然后您修改默认设置的副本,没有断言会失败。

使用您的方法,所有文档都将默认为横向 - 而不仅仅是您为其设置的文档。

此答案仅适用于 MigraDoc,因为只有 MigraDoc 使用 DefaultPageSetup

参见 this post in the PDFsharp forum其中 Clone() 用于创建 DefaultPageSetup 的副本:

关于c# - 如何在 MigraDoc 库中设置文档方向(针对所有页面)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674363/

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