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

时间:2013-10-14 01:12:40

标签: c# background-color pdfsharp migradoc

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

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

2 个答案:

答案 0 :(得分:2)

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

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

这是一个在一个PDFsharp页面上以缩略图大小绘制九个MigraDoc页面的示例:
http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx
您可以调用AddPage / RenderPage以完整大小绘制每个页面。

仅使用MigraDoc的另一种方法:将TextFrame()添加到页眉,并将该TextFrame的FillFormat设置为背景颜色。设置TextFrame以填充整个页面 这应该工作,它只需要MigraDoc(不需要PDFsharp代码)。

我想我会使用第一种方法。

答案 1 :(得分:0)

示例 - 创建文档,添加页面,用黑色填充整个页面并保存文档。

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");
}