diff --git a/packages/slidev/node/cli.ts b/packages/slidev/node/cli.ts index 816b59f0eb..0a0987a274 100644 --- a/packages/slidev/node/cli.ts +++ b/packages/slidev/node/cli.ts @@ -534,6 +534,10 @@ function exportOptions(args: Argv) { type: 'boolean', describe: 'slide slides slide by slide. Works better with global components, but will break cross slide links and TOC in PDF', }) + .option('scale', { + type: 'number', + describe: 'scale factor for image export', + }) } function printInfo( diff --git a/packages/slidev/node/export.ts b/packages/slidev/node/export.ts index 53e477b0ae..89ccc75aea 100644 --- a/packages/slidev/node/export.ts +++ b/packages/slidev/node/export.ts @@ -33,6 +33,7 @@ export interface ExportOptions { * @default false */ perSlide?: boolean + scale?: number } function addToTree(tree: TocItem[], info: SlideInfo, slideIndexes: Record, level = 1) { @@ -161,6 +162,7 @@ export async function exportSlides({ executablePath = undefined, withToc = false, perSlide = false, + scale = 1, }: ExportOptions) { const pages: number[] = parseRangeString(total, range) @@ -174,7 +176,7 @@ export async function exportSlides({ // Calculate height for every slides to be in the viewport to trigger the rendering of iframes (twitter, youtube...) height: perSlide ? height : height * pages.length, }, - deviceScaleFactor: 1, + deviceScaleFactor: scale, }) const page = await context.newPage() const progress = createSlidevProgress(!perSlide) @@ -449,6 +451,7 @@ export function getExportOptions(args: ExportArgs, options: ResolvedSlidevOption executablePath, withToc, perSlide, + scale, } = config outFilename = output || options.data.config.exportFilename || outFilename || `${path.basename(entry, '.md')}-export` if (outDir) @@ -468,6 +471,7 @@ export function getExportOptions(args: ExportArgs, options: ResolvedSlidevOption executablePath, withToc: withToc || false, perSlide: perSlide || false, + scale: scale || 1, } } diff --git a/packages/types/src/cli.ts b/packages/types/src/cli.ts index 079bd5d0b3..143888f3a4 100644 --- a/packages/types/src/cli.ts +++ b/packages/types/src/cli.ts @@ -13,6 +13,7 @@ export interface ExportArgs extends CommonArgs { 'executable-path'?: string 'with-toc'?: boolean 'per-slide'?: boolean + scale?: number } export interface BuildArgs extends ExportArgs {