求助:在Windows系统下为无头Chrome设置时区以正确打印PDF
Windows下无头Chrome打印PDF设置时区的方案
临时环境变量启动法
Windows里可以在启动Chrome前临时配置TZ环境变量,指定终端用户的时区,再启动无头Chrome打印PDF:
- CMD命令:
set TZ=Asia/Shanghai start chrome --headless --print-to-pdf="C:\目标路径\输出文件.pdf" https://需要打印的页面地址
- PowerShell命令:
$env:TZ = "Asia/Shanghai" Start-Process chrome -ArgumentList "--headless --print-to-pdf='C:\目标路径\输出文件.pdf' https://需要打印的页面地址"
时区需用IANA标准名称,比如America/New_York(纽约时区)、Europe/Paris(巴黎时区),根据用户实际时区替换即可。
Chrome 94+专属参数法
从Chrome 94版本开始,支持直接通过启动参数指定时区,无需修改环境变量,更简便:
chrome --headless --timezone="Asia/Shanghai" --print-to-pdf="C:\目标路径\输出文件.pdf" https://需要打印的页面地址
验证时区设置
可以准备一个简单的测试页面(内包含console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)代码),用以下命令加载并查看输出,确认时区是否生效:
chrome --headless --timezone="Asia/Shanghai" --dump-dom https://你的测试页面地址
内容的提问来源于stack exchange,提问作者EGN
相关产品推荐
相关产品推荐

