Commit e12cd6da authored by Fred Chasen's avatar Fred Chasen

Merge branch 'feature/force-transparent-background' into 'master'

Feature/force transparent background

See merge request !13
parents e55a27ad fc9843d3
Pipeline #627 passed with stages
in 1 minute and 14 seconds
......@@ -18,6 +18,7 @@ program
.option("-s, --page-size [size]", "Print to Page Size [size]")
.option("-w, --width [size]", "Print to Page Width [width] in MM")
.option("-h --height [size]", "Print to Page Height [weight] in MM")
.option("--forceTransparentBackground", "Print with transparent background")
// .option("-m, --page-margin [margin]", "Print with margin [margin]")
// .option("-n, --hyphenate [lang]", "Hyphenate with language [language], defaults to "en-us"")
// .option("-hi, --hypher_ignore [str]", "Ignore passed element selectors, such as ".class_to_ignore, h1"")
......@@ -107,14 +108,20 @@ if (typeof input === "string") {
}
(async () => {
let printer = new Printer({
const printerOptions = {
headless: headless,
allowLocal: allowLocal,
allowRemote: !program.blockRemote,
allowedPaths: program.allowedPaths,
allowedDomains: program.allowedDomains,
additionalScripts: program.additionalScript,
});
};
if (program.forceTransparentBackground) {
printerOptions.overrideDefaultBackgroundColor = { r: 0, g: 0, b: 0, a: 0 }; // Workaround to get a transparent background in the resulting PDF. See https://bugs.chromium.org/p/chromium/issues/detail?id=498892 for more information.
}
let printer = new Printer(printerOptions);
printer.on("page", (page) => {
if (page.position === 0) {
......
......@@ -25,6 +25,7 @@ class Printer extends EventEmitter {
this.allowedDomains = options.allowedDomains || [];
this.ignoreHTTPSErrors = options.ignoreHTTPSErrors;
this.browserWSEndpoint = options.browserEndpoint;
this.overrideDefaultBackgroundColor = options.overrideDefaultBackgroundColor;
this.pages = [];
}
......@@ -34,7 +35,7 @@ class Printer extends EventEmitter {
headless: this.headless,
args: ["--disable-dev-shm-usage"],
ignoreHTTPSErrors: this.ignoreHTTPSErrors
}
};
if (this.allowLocal) {
puppeteerOptions.args.push("--allow-file-access-from-files");
......@@ -63,6 +64,10 @@ class Printer extends EventEmitter {
const page = await this.browser.newPage();
if (this.overrideDefaultBackgroundColor) {
page._client.send('Emulation.setDefaultBackgroundColorOverride', { color: this.overrideDefaultBackgroundColor });
}
let uri, url, relativePath, html;
if (typeof input === "string") {
try {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment