gpt4 book ai didi

node.js - 如何使用 Node JS/Webdriver.io/Chimp 打印为 PDF?

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:08 30 4
gpt4 key购买 nike

我正在尝试在 Node JS 中使用 Chimp/Webdriver.io/Selenium 来测试我的 @media print CSS,以确保当人们从我的网站打印时,所有内容都能正确显示。

如何以编程方式让 Chrome/Firefox 打印为 PDF?我不想将屏幕截图转换为 PDF。我希望 PDF 看起来像打印时的样子。

那么,如何扫描 PDF 来确保结果正确呢?

最佳答案

成功!我必须安装/使用以下工具:

npm install html-pdf-chrome --save-dev
npm install pdfreader --save-dev

html-pdf-chrome用于神奇地调用 Chrome 以 Chrome 通常用于打印的方式将某些给定的 HTML 转换为 PDF。 pdfreader是一个读取 PDF 并提供其中文本的包。

浏览到我想要使用 webdriver 打印的页面后,我可以调用:

this.When(/^I print the page to a PDF named "([^"]*)"$/,
async function(outputFilename) {

console.log("Getting the html...");
let sourceHTML = await browser.getSource();

console.log("Printing the html using Chrome...");
let pdf = await HtmlPdf.create(sourceHTML);

console.log("Saving the PDF to " + outputFilename + "...");
await pdf.toFile(path.join(DEFAULT_PRINT_PATH, outputFilename));
});

然后,为了获取 PDF 中的文本,我调用此函数:

function readPdfText(filename) {
return new Promise((resolve, reject) => {
let pdfText = "";
new pdfReader.PdfReader().parseFileItems(path.join(DEFAULT_PRINT_PATH, filename), function(err, item){
if (err){
console.log("Error received on parsing PDF: " + err, err.stack);
reject(err);
}
else if (!item) {
resolve(pdfText);
}
else if (item.text) {
if(item.text.trim() === ":") {
pdfText += item.text;
} else {
pdfText += "\n" + item.text;
}
}
});
});
}

关于node.js - 如何使用 Node JS/Webdriver.io/Chimp 打印为 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50166936/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com