3

有沒有辦法在Linux的無頭版Chrome中啓用simulated device modeemulated print media mode如何在無頭Chrome中啓用打印介質模擬?

可以在DevTools手工完成,像這樣:

Enable print media emulation

的目標是採取模擬印刷媒體模式全頁面截圖不注射或修改任何CSS。我已經可以通過Node.js截取網頁截圖,但不能在模擬打印媒體模式下截圖。我搜索了,但我也無法找到有用的CLI switch

例子:StackOverflow print emulation

如何通過CLI或Node.js的做到這一點編程?它甚至有可能嗎?


使用Node.js的與無頭的Chrome DevTools協議交互參考:https://developers.google.com/web/updates/2017/04/headless-chrome

-

更新:我已經研究了Chrome DevTools Protocol Viewer文檔下仿真,有是Emulation.setEmulatedMedia的一項規定。設置 Emulation.setEmulatedMedia({media: "print"});呈現處於打印模擬模式的頁面。

回答

2

仿真的最新文章Chrome DevTools Protocol Viewer文檔中,有關於仿真介質的部分。這一條線將使打印介質仿真:如果視口寬度被設置爲紙張的8.5in片(〜816px @ 96 DPI)的

Emulation.setEmulatedMedia({media: "print"}); 

此外,,則屏幕截圖將類似於彩色打印預習。

const viewportWidth = 816; // 8.5 in 
const viewportHeight = 1056; // 11 in 

const deviceMetrics = { 
    width: viewportWidth, 
    height: viewportHeight, 
    deviceScaleFactor: 0, 
    mobile: false, 
    fitWindow: false 
}; 
Emulation.setDeviceMetricsOverride(deviceMetrics); 
Emulation.setVisibleSize({width: viewportWidth, height: viewportHeight});