Firefox headless 是否包含打印为 PDF 的选项? Chrome headless 支持它,但我不确定 Firefox 是否支持。
我似乎没有找到任何关于 Firefox 无头模式打印 PDF 的参考。但是,从 Firefox 57 开始,有一个选项可以截取页面屏幕截图:
/path/to/firefox -headless -screenshot https://developer.mozilla.com
您可以使用 GeckoDriver 打印为 PDF。
例如,使用 Node.js Selenium 绑定,您可以编写如下脚本:
(async function() {
const {Builder} = require('selenium-webdriver');
const firefox = require('selenium-webdriver/firefox');
const {writeFileSync} = require('fs');
let options = new firefox.Options().addArguments('--headless');
let driver = await new Builder().forBrowser('firefox').setFirefoxOptions(options).build();
try {
await driver.get(process.argv[2]);
let printResult = await driver.printPage({background: true, width: 21.0, height: 29.7}); // A4
let printResultDecoded = Buffer.from(printResult, 'base64')
writeFileSync(process.argv[3], printResultDecoded);
} finally {
await driver.close();
}
})();
然后像这样简单地调用它:
node pdf-driver.js https://example.com/URL/TO/PRINT ./PDF-RESULT.pdf