C# 在使用PDFsharp/Migradoc时,有没有办法使页面背景颜色不同?

C# 在使用PDFsharp/Migradoc时,有没有办法使页面背景颜色不同?,c#,background-color,pdfsharp,migradoc,C#,Background Color,Pdfsharp,Migradoc,我正在使用C#应用程序生成一个PDF文件,我正在尝试确定是否可以将整个页面颜色设置为黑色(而不是默认的白色)。我知道如何更改字体等样式,但我不知道在哪里可以更改整个页面的背景色 如果可能的话,请告诉我。我知道我可以有背景图像(所以我想我可以创建一个纯色的图像,但我想会有一个更简单的方法。在很多谷歌搜索之后我找不到任何东西) < P>我可以想到两种我认为值得尝试的方法。 一种方法是使用PDFsharp为每个新页面调用AddPage(),并在调用RenderPage()绘制文档内容之前,以您喜欢的颜

我正在使用C#应用程序生成一个PDF文件,我正在尝试确定是否可以将整个页面颜色设置为黑色(而不是默认的白色)。我知道如何更改字体等样式,但我不知道在哪里可以更改整个页面的背景色


如果可能的话,请告诉我。我知道我可以有背景图像(所以我想我可以创建一个纯色的图像,但我想会有一个更简单的方法。在很多谷歌搜索之后我找不到任何东西)

< P>我可以想到两种我认为值得尝试的方法。 一种方法是使用PDFsharp为每个新页面调用AddPage(),并在调用RenderPage()绘制文档内容之前,以您喜欢的颜色绘制一个矩形

以下示例在单个PDFsharp页面上以缩略图大小绘制了九个文档页面:

您可以调用AddPage/RenderPage以完整大小绘制每个页面

另一种仅使用MigraDoc的方法是:在页眉中添加一个TextFrame(),并将该TextFrame的填充格式设置为您的背景色。设置文本框以填充整个页面。
这应该是可行的,它只需要MigraDoc(不需要PDFsharp代码)


我想我应该使用第一种方法。

一个例子-创建文档,添加页面,用黑色填充整个页面,然后保存文档

using(PdfDocument doc = new PdfDocument()){
    PdfPage page = doc.AddPage();
    using(XGraphics gfx = XGraphics.FromPdfPage(page)){
        gfx.DrawRectangle(XBrushes.Black, new XRect(0, 0, page.Width.Point, page.Height.Point));
    }
    doc.Save("pdfDocument.pdf");
}