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

无法在R中将kableExtra表格保存为PNG格式的问题求助

问题:kableExtra导出PNG失败,OpenSSL相关依赖错误

我在R Markdown中编写代码,试图将kableExtra生成的表格导出为PNG格式以插入Word文档(直接编织为Word文件不可行),但执行保存操作时失败。

代码示例

library(kableExtra)
library(magrittr)
filtering <- data.frame(
  "1" = c("Yes", "Yes", "Yes"),
  "2" = c("Yes", "Yes", "Yes"),
  "3" = c("14-28 days", "28-84 days", ">84 days"),
  "4" = c("No/I don't know", "No/I don't know", "No/I don't know"),
  "5" = c("Valid", "Valid", "Valid"),
  "6" = c("Yes", "Yes", "Yes"),
  "7" = c("Yes", "Yes", "Yes")
)


filtering %>%
  kbl(align = "l", escape = F) %>%
  kable_classic(full_width = F, html_font = "Times New Roman") %>%
  row_spec(0, background = "#B2DACC") %>%
  save_kable(file = "Variables.png")

错误信息

Auto configuration failed
140507277977536:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libproviders.so): libproviders.so: cannot open shared object file: No such file or directory
140507277977536:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
140507277977536:error:0E07506E:configuration file routines:MODULE_LOAD_DSO:error loading dso:conf_mod.c:285:module=providers, path=providers
140507277977536:error:0E076071:configuration file routines:MODULE_RUN:unknown module name:conf_mod.c:222:module=providers
Error in webshot::webshot(file_temp_html, file, ...) :
webshot.js returned failure value: 1 

当前使用的包版本

packageVersion("webshot")
[1] ‘0.5.4’

packageVersion("kableExtra")
[1] ‘1.3.4’

解决建议

1. 修复系统OpenSSL依赖

错误提示找不到libproviders.so,这是OpenSSL的核心库文件,需要确保系统已正确安装OpenSSL开发包:

  • Debian/Ubuntu系统:
    sudo apt-get update && sudo apt-get install libssl-dev
    
  • CentOS/RHEL系统:
    sudo yum install openssl-devel
    

2. 重新安装webshot包

卸载并重新安装webshot,确保编译时链接正确的OpenSSL库:

remove.packages("webshot")
install.packages("webshot")

3. 替换为webshot2(推荐)

webshot已停止维护,webshot2是官方替代版本,兼容性更好:

install.packages("webshot2")
# 修改代码,指定使用webshot2导出
filtering %>%
  kbl(align = "l", escape = F) %>%
  kable_classic(full_width = F, html_font = "Times New Roman") %>%
  row_spec(0, background = "#B2DACC") %>%
  save_kable(file = "Variables.png", webshot = "webshot2")

4. 手动指定OpenSSL配置路径

如果系统已安装OpenSSL但R无法识别,可手动指定配置文件路径:

# 根据系统实际路径调整,常见路径为/etc/ssl/openssl.cnf
Sys.setenv(OPENSSL_CONF = "/etc/ssl/openssl.cnf")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:47:41