添加html直接转pdf函数;图片限制最大宽度;文字添加最小限制,避免文字太小看不清
This commit is contained in:
37
main.js
37
main.js
@@ -48,6 +48,7 @@ async function main() {
|
|||||||
console.log(res);
|
console.log(res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log("完成");
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getDetail(uuid) {
|
async function getDetail(uuid) {
|
||||||
@@ -73,13 +74,21 @@ async function getDetail(uuid) {
|
|||||||
|
|
||||||
// https://wkhtmltopdf.org/
|
// https://wkhtmltopdf.org/
|
||||||
async function transferToPDF(htmlFilePath, pdfFilePath) {
|
async function transferToPDF(htmlFilePath, pdfFilePath) {
|
||||||
|
console.log(`开始转换 ${pdfFilePath}`);
|
||||||
let html = `
|
let html = `
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<style>
|
<style>
|
||||||
* {
|
* {
|
||||||
font-size: large;
|
/*
|
||||||
|
font-size: 30px;
|
||||||
|
font-size: large !important;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
@@ -87,8 +96,30 @@ async function transferToPDF(htmlFilePath, pdfFilePath) {
|
|||||||
${fs.readFileSync(htmlFilePath)}
|
${fs.readFileSync(htmlFilePath)}
|
||||||
</body>
|
</body>
|
||||||
</html>`
|
</html>`
|
||||||
wkhtmltopdf(html, { pageSize: "A4" })
|
// fs.writeFileSync(`./output/test.html`, html);
|
||||||
|
wkhtmltopdf(html, { pageSize: "A4", minimumFontSize: 10, disableSmartShrinking: true })
|
||||||
.pipe(fs.createWriteStream(pdfFilePath));
|
.pipe(fs.createWriteStream(pdfFilePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
main();
|
// ========================================================
|
||||||
|
|
||||||
|
// 遍历 output/html 文件夹下的所有html文件
|
||||||
|
async function transferHTMLToPDF() {
|
||||||
|
let files = fs.readdirSync("./output/html");
|
||||||
|
for (let i = 0; i < files.length; i++) {
|
||||||
|
const fileName = files[i];
|
||||||
|
if (!fileName.endsWith(".html")) continue; // 过滤掉 html 文件
|
||||||
|
let pdfFileName = fileName.replace(".html", ".pdf");
|
||||||
|
await transferToPDF(`./output/html/${fileName}`, `./output/pdf/${pdfFileName}`);
|
||||||
|
}
|
||||||
|
console.log("完成");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 爬取 + 转换为pdf
|
||||||
|
// main();
|
||||||
|
|
||||||
|
// 已经爬取过,只需要转pdf
|
||||||
|
transferHTMLToPDF();
|
||||||
|
|
||||||
|
// 测试调试用
|
||||||
|
// transferToPDF(`./output/html/8.3 操作系统(三).html`, `./output/test.pdf`)
|
||||||
|
Reference in New Issue
Block a user