pagedown::chrome_print()转PDF时HTML纯色元素变为渐变如何解决
这个问题是Chrome打印引擎渲染深色固定背景元素时的默认bug,你可以通过以下几步修复:
- 调整CSS规则
打开你的项目中的dd_cv.css文件,在文件末尾添加如下代码,强制打印模式下侧边栏使用纯色背景、禁用自动渐变:
/* 修复PDF打印侧边栏渐变异常 */ @media print { .sidebar { background: var(--sidebar-background-color) !important; background-image: none !important; /* 强制浏览器精确渲染自定义背景色 */ -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; } }
如果修改后还有异常,可以直接把var(--sidebar-background-color)替换成你实际用的色值,比如#727273。
- 调整PDF生成参数
修改你调用pagedown::chrome_print的代码,添加额外参数禁用Chrome的打印预览优化:
pagedown::chrome_print(input = tmp_html_cv_loc, output = "cv.pdf", extra_args = c("--disable-print-preview", "--disable-backgrounding-occluded-windows"))
修改完成后可以先在Chrome中打开pdf_mode=TRUE生成的临时HTML文件,手动触发打印预览确认侧边栏已经是纯色,再运行生成PDF的代码即可。
内容的提问来源于stack exchange,提问作者Jake
相关产品推荐
相关产品推荐

