You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 5 MVC项目中依赖注入引入的wkhtmltopdf如何配置参数

.NET 5 MVC 项目 Wkhtmltopdf 参数配置方案

你使用的是NuGet封装的免独立安装wkhtmltopdf包,无需在VS命令行执行全局命令,参数可直接在服务注册阶段或PDF生成代码中传入:

1. 全局参数配置(Startup.cs 服务注册阶段)

以常用的Rotativa.AspNetCore、Wkhtmltopdf.NetCore两类封装包为例:

  • Rotativa.AspNetCore 配置示例:
services.AddRotativa(config =>
{
    // 基础格式配置
    config.PageSize = Rotativa.AspNetCore.Options.Size.A4;
    config.PageOrientation = Rotativa.AspNetCore.Options.Orientation.Portrait;
    config.Margins.Top = 10;
    config.Margins.Bottom = 10;
    // 自定义命令行参数,官方文档的所有命令行参数可直接写在这里,多参数空格分隔
    config.CustomSwitches = "--disable-smart-shrinking --encoding utf-8 --zoom 1";
});
// 配置wkhtmltopdf二进制文件路径,若你用的包自带运行文件,填写项目内对应相对路径即可
RotativaConfiguration.Setup(env.WebRootPath, "wkhtmltopdf");
  • Wkhtmltopdf.NetCore 配置示例:
services.AddWkhtmltopdf("wkhtmltopdf文件相对路径", new Wkhtmltopdf.NetCore.Options.GlobalOptions
{
    MarginTop = 10,
    MarginBottom = 10,
    EnableSmartShrinking = false,
    Encoding = "utf-8"
});

2. 单PDF实例独立参数配置

如果部分PDF需要特殊配置,可在生成代码中单独传参,优先级高于全局配置:

public IActionResult ExportPdf()
{
    var pdfResult = new ViewAsPdf("报表视图名", 视图模型)
    {
        PageSize = Rotativa.AspNetCore.Options.Size.Legal,
        // 单独指定当前PDF的页眉页脚等特殊参数
        CustomSwitches = "--footer-center \"第[page]页/共[topage]页\" --footer-font-size 9"
    };
    return pdfResult;
}

常用参数说明

  • --disable-smart-shrinking:关闭智能缩放,解决内容显示过小错位问题
  • --encoding utf-8:指定编码,解决中文乱码问题
  • --zoom 1:固定缩放比例,适配不同分辨率下的显示效果

官方所有命令行参数都可以直接放入CustomSwitches字段传入,不需要执行外部命令行操作。


内容的提问来源于stack exchange,提问作者Jacob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:51:03