2

我试图从 HTML 生成一个 pdf,其中包含使用 PdfSharp 和 HTMLRenderer 的表格。下面显示代码。

            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。

4

3 回答 3

3

您可以使用该方法的PdfGenerateConfig参数GeneratePdf来指定使用该ManualPageSize属性的自定义页面大小。

使用PageOrientation获取横向的标准页面大小。

评论中的代码:

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

pdf = PdfGenerator.GeneratePdf(html, config);
于 2017-06-07T11:25:23.733 回答
0

我只是这样说:

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

PdfDocument pdf = PdfGenerator.GeneratePdf(html, config); 
于 2019-12-06T12:13:25.213 回答
-1

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

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

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

等等...

于 2017-06-07T11:13:09.820 回答