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

使用Select.HtmlToPdf.NetCore.Blink转PDF失败:找不到Chromium二进制文件

解决Select.HtmlToPdf.NetCore.Blink无法找到Chromium二进制文件的问题

你遇到的核心问题是Blink渲染引擎依赖的Chromium二进制文件没被正确部署到IIS Express的运行目录——毕竟你的bin文件夹里只有Select.Html.dep,缺失完整的Chromium文件目录。下面给你几个实用的解决步骤:

1. 手动部署Chromium二进制文件

这个NuGet包安装后,Chromium的文件其实存放在你的NuGet缓存目录里。你可以按这个路径查找:
你的解决方案目录\packages\Select.HtmlToPdf.NetCore.Blink.{具体版本号}\content\Chromium
把整个Chromium文件夹完整复制到项目的输出目录中(比如bin\Debug或bin\Release,取决于当前的编译配置),确保IIS Express能访问到这个目录。

2. 代码中手动指定Chromium路径

如果自动加载路径还是有问题,你可以在代码里明确指定Chromium的位置,避免程序找不到文件。修改后的代码示例如下:

// 获取当前应用程序的根目录
string chromiumPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Chromium");

// 实例化HTML转PDF转换器对象
var converter = new HtmlToPdf() { 
    Options = { 
        RenderingEngine = RenderingEngine.Blink, 
        ChromiumBasePath = chromiumPath, // 手动指定Chromium所在路径
        PdfPageSize = PdfPageSize.A4, 
        PdfPageOrientation = PdfPageOrientation.Portrait, 
        MarginTop = 20, 
        MarginRight = 20, 
        MarginBottom = 20, 
        MarginLeft = 20, 
        DisplayFooter = true 
    } 
}; 

// 转换URL生成新的PDF文档
var doc = converter.ConvertUrl(url); 
// 保存PDF文档
byte[] response = doc.Save(); 
// 关闭PDF文档
doc.Close();

3. 配置项目文件的复制规则

有时候NuGet安装后,Chromium的文件不会自动设置为“复制到输出目录”。你可以把Chromium文件夹添加到项目中,选中文件夹内的所有文件,在属性窗口里把复制到输出目录设置为始终复制,这样每次编译都会自动同步文件到bin目录。

4. 验证IIS Express的权限

确保IIS Express运行的应用池账号对Chromium文件夹有读取权限。本地开发环境下一般用当前用户账号,权限通常没问题,但如果遇到权限报错,可以右键Chromium文件夹,给IIS_IUSRS或当前用户添加读取权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:26:19