我正在使用MigraDoc /PDFsharp从 C# 应用程序生成 PDF 文件我试图弄清楚我是否可以让整个页面颜色为黑色(而不是默认的白色)。我知道如何更改字体样式等,但我看不到在哪里可以更改整个页面的背景颜色。
请让我知道这是否可能。我看到我可以有背景图像(所以我想我可以创建一个纯色图像,但认为会有更简单的方法。经过大量谷歌搜索后我找不到任何东西)
我正在使用MigraDoc /PDFsharp从 C# 应用程序生成 PDF 文件我试图弄清楚我是否可以让整个页面颜色为黑色(而不是默认的白色)。我知道如何更改字体样式等,但我看不到在哪里可以更改整个页面的背景颜色。
请让我知道这是否可能。我看到我可以有背景图像(所以我想我可以创建一个纯色图像,但认为会有更简单的方法。经过大量谷歌搜索后我找不到任何东西)
我可以想到两种我认为值得尝试的方法。
一种方法是使用 PDFsharp 为每个新页面调用 AddPage() 并以您喜欢的颜色绘制一个矩形,然后再调用 RenderPage() 来绘制 MigraDoc 内容。
这是一个在单个 PDFsharp 页面上以缩略图大小绘制九个 MigraDoc 页面的示例:
http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx
您可以调用 AddPage/RenderPage 以全尺寸绘制每个页面。
仅使用 MigraDoc 的另一种方法:将 TextFrame() 添加到页眉并将该 TextFrame 的 FillFormat 设置为背景颜色。设置 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");
}