1

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

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

4

2 回答 2

2

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

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

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

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

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

于 2013-10-14T13:52:16.187 回答
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");
}
于 2016-11-01T20:50:16.720 回答