@d-zero/print 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +3 -2
- package/dist/png-to-pdf.d.ts +2 -2
- package/dist/png-to-pdf.js +1 -3
- package/dist/print-pdf-with-note.d.ts +1 -1
- package/dist/print-pdf.d.ts +1 -1
- package/dist/print-pdf.js +2 -3
- package/dist/print-png.d.ts +1 -1
- package/dist/print.d.ts +1 -0
- package/dist/print.js +13 -39
- package/package.json +12 -9
package/dist/cli.js
CHANGED
|
@@ -10,14 +10,15 @@ const cli = minimist(process.argv.slice(2), {
|
|
|
10
10
|
});
|
|
11
11
|
const limit = cli.limit ? Number.parseInt(cli.limit) : undefined;
|
|
12
12
|
const debug = !!cli.debug;
|
|
13
|
+
const verbose = !!cli.verbose;
|
|
13
14
|
const type = cli.type === 'note' ? 'note' : cli.type === 'pdf' ? 'pdf' : 'png';
|
|
14
15
|
if (cli.listfile?.length) {
|
|
15
16
|
const { urlList, hooks } = await readConfig(cli.listfile);
|
|
16
|
-
await print(urlList, { type, limit, debug, hooks });
|
|
17
|
+
await print(urlList, { type, limit, debug, verbose, hooks });
|
|
17
18
|
process.exit(0);
|
|
18
19
|
}
|
|
19
20
|
if (cli._.length > 0) {
|
|
20
|
-
await print(cli._, { type, limit, debug });
|
|
21
|
+
await print(cli._, { type, limit, verbose, debug });
|
|
21
22
|
process.exit(0);
|
|
22
23
|
}
|
|
23
24
|
process.stderr.write([
|
package/dist/png-to-pdf.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
+
import type { Page } from '@d-zero/puppeteer-page';
|
|
1
2
|
import type { Screenshot } from '@d-zero/puppeteer-screenshot';
|
|
2
|
-
|
|
3
|
-
export declare function pngToPdf(browser: Browser, screenshots: Record<string, Screenshot>, update: (log: string) => void): Promise<void>;
|
|
3
|
+
export declare function pngToPdf(page: Page, screenshots: Record<string, Screenshot>, update: (log: string) => void): Promise<void>;
|
package/dist/png-to-pdf.js
CHANGED
|
@@ -2,9 +2,7 @@ import { rm } from 'node:fs/promises';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import c from 'ansi-colors';
|
|
4
4
|
import { printPdfWithNote } from './print-pdf-with-note.js';
|
|
5
|
-
export async function pngToPdf(
|
|
6
|
-
const page = await browser.newPage();
|
|
7
|
-
page.setDefaultNavigationTimeout(0);
|
|
5
|
+
export async function pngToPdf(page, screenshots, update) {
|
|
8
6
|
for (const [sizeName, screenshot] of Object.entries(screenshots)) {
|
|
9
7
|
if (!screenshot.filePath) {
|
|
10
8
|
continue;
|
package/dist/print-pdf.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
+
import type { Page } from '@d-zero/puppeteer-page';
|
|
1
2
|
import type { PageHook } from '@d-zero/puppeteer-page-scan';
|
|
2
|
-
import type { Page } from 'puppeteer';
|
|
3
3
|
export declare function printPdf(page: Page, url: string, filePath: string, update: (log: string) => void, hooks?: readonly PageHook[]): Promise<void>;
|
package/dist/print-pdf.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { beforePageScan } from '@d-zero/puppeteer-page-scan';
|
|
2
|
-
import { screenshotListener } from '@d-zero/puppeteer-screenshot';
|
|
1
|
+
import { beforePageScan, pageScanListener } from '@d-zero/puppeteer-page-scan';
|
|
3
2
|
export async function printPdf(page, url, filePath, update, hooks) {
|
|
4
3
|
await beforePageScan(page, url, {
|
|
5
4
|
name: 'pdf',
|
|
6
5
|
width: 1400,
|
|
7
|
-
listener:
|
|
6
|
+
listener: pageScanListener(update),
|
|
8
7
|
hooks,
|
|
9
8
|
});
|
|
10
9
|
update('📄 Save as PDF');
|
package/dist/print-png.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
+
import type { Page } from '@d-zero/puppeteer-page';
|
|
1
2
|
import type { PageHook } from '@d-zero/puppeteer-screenshot';
|
|
2
|
-
import type { Page } from 'puppeteer';
|
|
3
3
|
export declare function printPng(page: Page, url: string, fileId: string, filePath: string, update: (log: string) => void, hooks?: readonly PageHook[]): Promise<Record<string, import("@d-zero/puppeteer-screenshot").Screenshot>>;
|
package/dist/print.d.ts
CHANGED
package/dist/print.js
CHANGED
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
import { mkdir } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { deal } from '@d-zero/dealer';
|
|
3
|
+
import { deal } from '@d-zero/puppeteer-dealer';
|
|
4
4
|
import c from 'ansi-colors';
|
|
5
|
-
import puppeteer from 'puppeteer';
|
|
6
5
|
import { pngToPdf } from './png-to-pdf.js';
|
|
7
6
|
import { printPdf } from './print-pdf.js';
|
|
8
7
|
import { printPng } from './print-png.js';
|
|
9
8
|
export async function print(urlList, options) {
|
|
10
|
-
const browser = await puppeteer.launch({
|
|
11
|
-
headless: true,
|
|
12
|
-
args: [
|
|
13
|
-
//
|
|
14
|
-
'--lang=ja',
|
|
15
|
-
'--no-zygote',
|
|
16
|
-
'--ignore-certificate-errors',
|
|
17
|
-
],
|
|
18
|
-
});
|
|
19
9
|
const dir = path.resolve(process.cwd(), '.print');
|
|
20
10
|
await mkdir(dir, { recursive: true }).catch(() => { });
|
|
21
11
|
const type = options?.type ?? 'png';
|
|
@@ -25,41 +15,25 @@ export async function print(urlList, options) {
|
|
|
25
15
|
return { id: null, url };
|
|
26
16
|
}
|
|
27
17
|
return url;
|
|
28
|
-
}), (
|
|
29
|
-
return
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
await page.setExtraHTTPHeaders({
|
|
33
|
-
'Accept-Language': 'ja-JP',
|
|
34
|
-
});
|
|
35
|
-
const fileId = id || index.toString().padStart(3, '0');
|
|
18
|
+
}), (_, done, total) => {
|
|
19
|
+
return `${c.bold.magenta('🎨 Print pages')} ${c.bgBlueBright(` ${type} `)} ${done}/${total}`;
|
|
20
|
+
}, {
|
|
21
|
+
async deal(page, id, url, logger) {
|
|
36
22
|
const ext = type === 'pdf' ? 'pdf' : 'png';
|
|
37
|
-
const fileName = `${
|
|
23
|
+
const fileName = `${id}.${ext}`;
|
|
38
24
|
const filePath = path.resolve(dir, fileName);
|
|
39
|
-
const lineHeader = `%braille% ${c.bgWhite(` ${fileId} `)} ${c.gray(url)}: `;
|
|
40
|
-
update(`${lineHeader}🔗 Open%dots%`);
|
|
41
25
|
if (type === 'pdf') {
|
|
42
|
-
await printPdf(page, url, filePath,
|
|
43
|
-
|
|
44
|
-
await page.close();
|
|
26
|
+
await printPdf(page, url, filePath, logger, hooks);
|
|
27
|
+
logger('🔚 Closing');
|
|
45
28
|
return;
|
|
46
29
|
}
|
|
47
|
-
const result = await printPng(page, url,
|
|
30
|
+
const result = await printPng(page, url, id, filePath, logger, hooks);
|
|
48
31
|
if (type === 'png') {
|
|
49
|
-
|
|
50
|
-
await page.close();
|
|
32
|
+
logger('🔚 Closing');
|
|
51
33
|
return;
|
|
52
34
|
}
|
|
53
|
-
await pngToPdf(
|
|
54
|
-
|
|
55
|
-
await page.close();
|
|
56
|
-
};
|
|
57
|
-
}, {
|
|
58
|
-
limit: options?.limit,
|
|
59
|
-
debug: options?.debug,
|
|
60
|
-
header(_, done, total) {
|
|
61
|
-
return `${c.bold.magenta('🎨 Print pages')} ${c.bgBlueBright(` ${type} `)} ${done}/${total}`;
|
|
35
|
+
await pngToPdf(page, result, logger);
|
|
36
|
+
logger('🔚 Closing');
|
|
62
37
|
},
|
|
63
|
-
});
|
|
64
|
-
await browser.close();
|
|
38
|
+
}, options);
|
|
65
39
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@d-zero/print",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Print web pages to PDF or image files.",
|
|
5
5
|
"author": "D-ZERO",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,19 +23,22 @@
|
|
|
23
23
|
],
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsc",
|
|
26
|
+
"watch": "tsc --watch",
|
|
26
27
|
"clean": "tsc --build --clean"
|
|
27
28
|
},
|
|
28
29
|
"dependencies": {
|
|
29
|
-
"@d-zero/
|
|
30
|
-
"@d-zero/
|
|
31
|
-
"@d-zero/puppeteer-page-scan": "
|
|
32
|
-
"@d-zero/puppeteer-screenshot": "
|
|
33
|
-
"@d-zero/readtext": "1.1.
|
|
30
|
+
"@d-zero/html-distiller": "1.0.1",
|
|
31
|
+
"@d-zero/puppeteer-dealer": "0.2.0",
|
|
32
|
+
"@d-zero/puppeteer-page-scan": "2.0.0",
|
|
33
|
+
"@d-zero/puppeteer-screenshot": "2.0.0",
|
|
34
|
+
"@d-zero/readtext": "1.1.1",
|
|
34
35
|
"ansi-colors": "4.1.3",
|
|
35
36
|
"dayjs": "1.11.13",
|
|
36
37
|
"front-matter": "4.0.2",
|
|
37
|
-
"minimist": "1.2.8"
|
|
38
|
-
"puppeteer": "23.5.0"
|
|
38
|
+
"minimist": "1.2.8"
|
|
39
39
|
},
|
|
40
|
-
"
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@d-zero/puppeteer-page": "0.2.0"
|
|
42
|
+
},
|
|
43
|
+
"gitHead": "1eb1c03400580040119121e11ffb33acd876fe1b"
|
|
41
44
|
}
|