有没有办法在使用PDFsharp / Migradoc时拥有不同的彩色页面背景色

本文关键字:拥有 彩色 背景色 Migradoc PDFsharp 有没有 | 更新日期: 2023-09-27 18:35:23

我正在使用MigraDoc/PDFsharp从C#应用程序生成PDF文件,我试图弄清楚是否可以将整个页面着色为黑色(而不是默认的白色)。 我看到了如何更改字体等样式,但我看不到可以更改整个页面的背景颜色。

如果可能,请告诉我。我看到我可以有背景图像(所以我想我可以创建一个纯色图像,但认为会有更简单的方法。经过大量谷歌搜索后我找不到任何东西)

有没有办法在使用PDFsharp / Migradoc时拥有不同的彩色页面背景色

我可以想到两种我认为值得尝试的方法。

一种方法是使用 PDFsharp 为每个新页面调用 AddPage() 并在调用 RenderPage() 绘制 MigraDoc 内容之前以您喜欢的颜色绘制一个矩形。

下面是一个示例,该示例在单个PDFsharp页面上以缩略图大小绘制九个MigraDoc页面:

http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx您可以调用 AddPage/RenderPage 以全尺寸绘制每个页面。

另一种仅使用 MigraDoc 的方法:将 TextFrame() 添加到页眉,并将该 TextFrame 的 FillFormat 设置为背景颜色。设置文本框架以填充整个页面。
这应该有效,它只需要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");
}