如何为 PdfSharp 生成的 Pdf 提供自定义大小

How to give custom size to PdfSharp generated Pdf

我正在尝试使用 PdfSharp 和 HTMLRenderer 从 HTML 生成包含 table 的 pdf。代码如下。

            pdf = PdfGenerator.GeneratePdf(html, PageSize.A3);

            byte[] fileContents = null;
            using (MemoryStream stream = new MemoryStream())
            {
                pdf.Save(stream, true);
                fileContents = stream.ToArray();
                return new FileStreamResult(new MemoryStream(fileContents.ToArray()), "application/pdf");
            }

我是否可以为 PDF 提供自定义尺寸并更改页面方向。我正在使用内存流直接在浏览器显示屏上显示 PDF。

如果我没记错的话,PageSize.A3 不是枚举而是 Rectangle 值。因此,您可以提供自己的矩形而不是传递预定义的矩形,例如:

new Rectangle(1191, 842) // 相册 A3

new Rectangle(842, 595) // 相册 A4

等等...

您可以使用 GeneratePdf 方法的 PdfGenerateConfig 参数使用 ManualPageSize 属性.

指定自定义页面大小

使用 PageOrientation 获取横向标准页面尺寸。

来自评论的代码:

var config = new PdfGenerateConfig();
config.PageOrientation = PageOrientation.Landscape;
config.ManualPageSize = new PdfSharp.Drawing.XSize(1080, 828);

pdf = PdfGenerator.GeneratePdf(html, config);

我是这样说的:

var config = new PdfGenerateConfig()
{
    MarginBottom = 100,
    MarginLeft = 20,
    MarginRight = 20,
    MarginTop = 100,
    PageSize = PageSize.A4
};         

PdfDocument pdf = PdfGenerator.GeneratePdf(html, config);