我正在使用 MigraDoc 编程生成包含文本、图片和表格的PDF文件。
我需要在文档对象中为所有页面设置Document
方向,使其为横向(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;
非常感谢!
-Shiva
更新:
解决方案:这是可行的代码,基于下面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...