Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Поиграть со стилями печати, скрыть всё что не нужно и надеяться, что всё будет хорошо. Только кнопки, фильтры и подобное распечатаются как есть. А ещё, если таблиц много, надо чтобы каждая была на отдельной странице. И лично меня бесят добавленные ссылки, даты и т.д., которые вылезают при печати с сайта
<!--ADD_PAGE--> для разбиения страниц const puppeteer = require("puppeteer");
const path = require("path");
const base = __dirname;
(async () => {
const browser = await puppeteer.launch({});
const page = await browser.newPage();
await page.goto("file://" + path.resolve(base, "index.html"));
const height = await page.evaluate(
() => document.documentElement.clientHeight
);
await page.pdf({
path: path.resolve(base, "./output.pdf"),
margin: {
top: "2cm",
bottom: "2cm",
left: "1.5cm",
right: "2cm",
},
height: `${height}px`,
});
await browser.close();
})().catch(e => {
console.error(e);
});
const puppeteer = require("puppeteer");
const path = require("path");
const base = __dirname;
(async () => {
const browser = await puppeteer.launch({});
const page = await browser.newPage();
await page.goto("file://" + path.resolve(base, "index.html"));
const height = await page.evaluate(
() => document.documentElement.clientHeight
);
await page.addStyleTag({
content: `
button {
display: none;
}
`
});
await page.pdf({
path: path.resolve(base, "./output.pdf"),
margin: {
top: "2cm",
bottom: "2cm",
left: "1.5cm",
right: "2cm",
},
height: `${height}px`,
});
await browser.close();
})().catch(e => {
console.error(e);
});
val button = ...
on click button check { ... }
Именно жесткое сужение функционала делает ДСЛ полезным
Ещё один dsl на Kotlin или как я печатал PDF из react